하시코프(HashiCorp)란? 모던 인프라스트럭처 툴 개발

HashiCorp란? 오픈소스 모던 인프라스트럭처 개발 도구

HashiCorp 로고

HashiCorp는 2012년 미셸 하시모토Mitchell Hashimoto, 아몬 데드거Armon Dadgar가 창업한 기업으로, 오픈소스로 모던 인프라스트럭처 도구를 개발하고 이를 기반으로 클라우스 서비스를 제공하고 있습니다. 미셸 하시모토는 창업 이전부터 가상 머신으로 개발 환경 셋업을 도와주는 베이그런트Vagrant를 루비로 개발해왔으며, 현재는 HashiCorp에서 관리하는 프로젝트 중 하나가 되었습니다.*

* HashiCorp의 첫 번째 프로젝트라고 할 수 있는 베이그런트는 루비로 되어있습니다만, 현재 대부분의 프로젝트는 Go로 개발되고 있습니다.

Hashicorp는 오픈소스로 인프라스트럭처 관리 도구를 개발하는 독특한 포지션에 있습니다만, 클라우드 산업과 함께 빠르게 성장하고 있는 것으로 보입니다. 2012년 두 명의 공동창업자로 시작했습니다만, 2017년에는 100명, 2020년에는 직원이 1,000명까지 늘어났습니다. 또한 2019년 말에 발표한 자료를 참고해보면, 포춘 500 기업중 100개 기업 이상이 하시코프의 고객이라고 밝히고 있습니다. 2014년 시리즈 A 약 $10.2M(약 120억)을 시작으로, 2016년 시리즈 B, 2017년 시리즈 C, 2018년 시리즈 D 투자를 유치했습니다. 2020년 3월에는 프랭클린 템플턴 인베스트먼트Franklin Templeton Investments의 리드로 기업 가치를 $5B(약 6조)로 평가 받고, $175M(약 2,100억)의 시리즈 E 투자를 유치했습니다.

HashiCorp의 직원 수 증가

HashiCorp에서는 테라폼Terraform, 패커Packer, 베이그런트Vagrant, 볼트Vault, 바운더리Boundary, 컨설Consul, 노마드Nomad, 웨이포인트Waypoint 등을 주력 제품으로 개발 및 서비스하고 있으며, 이러한 제품들을 클라우드 서비스로 제공하고 있습니다.

HashiCorp의 제품군

HashiCorp 제품 들에 대해서는 공식 웹사이트에 Learn 사이트에서 더 자세히 알아볼 수 있습니다.

HashiCorp와 제품들에 대한 새로운 소식은 공식 블로그에서 확인할 수 있습니다.

44BITS 소식과 클라우드 뉴스를 전해드립니다. 지금 5,000명 이상의 구독자와 함께 하고 있습니다 📮

HashiCorp의 제품 / 오픈소스 프로젝트들

Hashicorp의 주요 프로젝트/제품들에 대해서 소개합니다.

테라폼(Terraform)

테라폼Terraform은 하시코프Hashicorp에 개발중인 코드로서의 인프라스트럭처Infrastructure as Code를 구현하는 도구입니다. 테라폼은 HashiCorp에서 개발한 설정 언어인 HCL을 사용해 클라우드와 인프라스트럭처 리소스들을 선언하고, 이를 실제로 적용하는 방식으로 사용합니다. 테라폼에 대한 더 자세한 정보는 다음 페이지에서 소개합니다.

44BITS 로고

테라폼(Terraform)이란?

🏷️ 키워드, 2020-08-29 - 테라폼(Terraform)은 하시코프(Hashicorp)에서 오픈소스로 개발중인 클라우드 인프라스트럭쳐 자동화 중의 하나로 Infrastructure as code를 구현한 애플리케이션입니다. 아마존 웹 서비스, 구글 클라우드 플랫폼, 마이크로소프트 애저와 같은 메이저 클라우드를 비롯해 VPS 서비스나 모니터링 서비스 등 다양한 서비스들을 코드로 관리할 수 있도록 도와줍니다.

44BITS에서도 AWS 리소스를 만들어보는 튜토리얼을 공개하고 있으니 참고해주세요.

'테라폼(Terraform) 기초 튜토리얼: AWS로 시작하는 Infrastructure as Code' 대표 이미지

테라폼(Terraform) 기초 튜토리얼: AWS로 시작하는 Infrastructure as Code

🗒 기사, 2020-03-14 - 테라폼(Terraform)은 인프라스트럭처를 선언적인 코드로 작성하고 관리할 수 있게 해주는 도구입니다. 이 글에서는 테라폼에 대해 소개하고, 이를 사용해 AWS 리소스를 정의하고 프로비저닝하는 방법을 소개합니다.

테라폼은 단순히 특정 리소스를 관리할 뿐만 아니라, 프로바이더와 모듈로 확장이 가능합니다. 프로바이더는 클라우드 서비스는 애플리케이션 등의 리소스를 테라폼에서 정의할 수 있도록 해주며, 모듈은 이러한 리소스들을 묶어서 추상화할 수 있는 기능을 제공해줍니다. 테라폼에서는 프로바이더와 모듈을 관리하는 테라폼 레지스트리 서비스도 함께 제공하고 있습니다.

테라폼은 기본적으로 로컬에서 사용합니다만, 프로젝트와 함께 인프라를 관리하는 사용자가 많아지면 관리가 어려워질 수 있습니다. 이러한 문제를 해결하기 위해 테라폼에서는 테라폼 클라우드 서비스를 제공하고 있습니다. 테라폼 클라우드에서는 원격에서 테라폼을 실행하고, 리모트 스테이트를 관리해주고, 팀을 관리하는 기능도 제공해줍니다.

베이그런트(Vagrant)

베이그런트는 가상 머신으로 개발 환경을 관리할 수 있도록 도와주는 도구입니다. 베이그런트는 버추얼박스VirtualBox와 같은 가상 머신 도구와 함께 사용할 수 있습니다. 이 때 가상 머신 도구를 프로바이더라고 하며, 가상 머신에 개발 환경을 준비하는 도구를 프로비저너라고 부릅니다. 프로바이더와 마찬가지로 셸 스크립트Shell Script, 앤서블Ansible, 셰프Chef 등 다양한 프로비저너를 사용해서 개발 환경을 구축할 수 있습니다.

CLI로 프로젝트 별로 가상 머신을 관리할 수 있으며, Vagrantfile이라는 독자적인 DSL로 가상 머신의 스펙 및 머신에 프로비저닝할 내용을 작성할 수 있습니다. 아래는 가장 기본적인 Vagrantfile의 예제입니다.

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/bionic64"
end

베이그런트의 기본적인 사용법은 다음 글에서 소개합니다.

44BITS 로고

베이그런트(Vagrant) 튜토리얼: 개발 환경 공유와 가상 머신 관리 도구

🗒 기사, 2021-01-25 - 베이그런트(Vagrant) 미셸 하시모토가 루비 언어로 개발한 가상 머신 기반 개발 환경 관리 도구입니다. 커맨드라인을 통해 가상 머신을 관리하거나, 가상 머신 기반으로 프로젝트의 개발환경을 팀원들 간에 손쉽게 공유할 수 있도록 도와주는 도구입니다. 이 글에서는 베이그런트의 기본적인 사용법과 Vagrantfile 작성 방법, 개발환경 구축을 위한 기초적인 프로비저닝 방법을 소개합니다.

패커(Packer)

패커Packer는 가상 머신, 클라우드, 컨테이너 이미지 작성을 자동화할 수 있는 도구입니다. 패커는 베이그런트와 비슷하게 다른 도구들과 함께 사용할 수 있습니다. 가상 머신, 클라우드와 같이 이미지를 만드는 대상을 빌더라고 하고, 이미지의 내용을 셋업하는 도구를 프로비저너라고 합니다.

다음 글에서는 패커를 사용해 앤서블을 프로바이더로, 도커 빌더와 AMI 빌더로 각각의 이미지를 만드는 예제를 소개합니다.

44BITS 로고

패커(Packer)를 사용한 도커 이미지와 AMI 만들기(feat. Ansible)

🗒 기사, 2015-09-30 - 패커는 하시코프에서 만든 범용 가상머신, 컨테이니 이미지 생성 도구입니다. 패커는 시스템의 특정 상태를 저장하는 대신 복원 가능한 방식으로 이미지 생성을 자동화할 수 있게 도와줍니다. 이 글에서는 패커를 사용해 도커 이미지와 AMI 이미지를 빌드하는 방법을 소개합니다.

그 외의 도구들

이외에도 HashiCorp에서는 보안, 네트워킹, 애플리케이션 분야 등 인프라스트럭처와 관련된 다양한 도구들을 개발하고 있습니다. 아래에서는 간략하게 HashiCorp의 제품들에 대해서 소개합니다.

볼트(Vault)
볼트는 비밀 정보를 다루는 도구입니다. UI, CLI, HTTP API 등의 인터페이스를 제공하고 있으며, 저장된 비밀 정보를 안전하게 사용할 수 있는 방법들을 제공해줍니다
바운더리(Boundary)
바운더리는 사용자 인증을 기반으로 시스템과 서비스들에 안전하게 접근할 수 있는 방법을 제공해주는 도구입니다.
컨설(Consul)
컨설은 마이크로서비스와 클라우드 인프라스트럭처의 네트워크 이슈를 해결하기 위한 서비스 메시 솔루션입니다.
노마드(Nomad)
노마드는 애플리케이션 배포와 스케줄링을 하는 오케스트레이션 도구입니다. 비교적 심플한 아키텍처로 구성되어있으며, 컨테이너와 컨테이너가 아닌 워크로드를 지원하며, 온프레미스와 클라우드 환경을 지원합니다.
웨이포인트(Waypoint)
웨이포인트는 다양한 플랫폼에서 빌드, 배포, 릴리스를 위한 워크플로우를 관리할 수 있도록 도와주는 도구입니다.

현재는 개발이 진행되지 않는 프로젝트

현재는 사실상 혹은 공식적으로 개발이 멈춘 프로젝트들입니다.

서프(Serf)

Serf는 HashiCorp에서 개발한 탈중앙화된 경량 서비스 디스커버리 및 오케스트레이션 도구입니다. 현재는 개발이 활발하지 않으며 2020년 10월 0.9.5 릴리스 이후에 업데이트가 되지 않는 것으로 보입니다. 공식으로 개발 중단을 선언하지는 않았지만, HashiCorp 공식 사이트 제품 목록에서는 빠진 것으로 보입니다.

오토(Otto)

Otto는 최근에 공개된 Waypoint와 비슷한 문제를 해결하기 위한 오픈소스로 애플리케이션 개발부터 배포에 대한 고수준의 추상화를 제공하는 도구입니다. 2016년 8월 공식적으로 개발 중단을 발표했습니다. Otto와 Waypoint의 차이에 대해서는 HashiCorp의 창립자인 미셸 하시모토Mitchell Hashimoto의 대답에서 확인할 수 있습니다.

HashiCorp 한국 사용자 모임

HashiCorp User Group Seoul

HashiCorp에서 만드는 도구를 사용하는 한국 사용자 모임이 있습니다. 주로 페이스북에서 운영되고 있으며, 44BITS에서도 밋업 기록 등을 지원하고 있습니다.

2018년부터 지금까지 3번의 밋업이 열렸으며, 발표 자료와 영상은 아래 페이지에서 확인하실 수 있습니다.

44BITS 로고

HashiCorp 한국 사용자 모임 첫 번째 밋업 개최 및 발표 자료

🗒 기사, 2018-11-27 - 2018년 7월 28일에 첫 번째 하시코프 한국 사용자 모임 첫 번째 밋업이 열렸습니다. 발표영상과 발표자료를 간단한 요약과 함께 정리했습니다.
44BITS 로고

HashiCorp 한국 사용자 모임 두 번째 밋업 개최 및 발표 자료

🗒 기사, 2018-11-03 - 2018년 10월 23일에 열렸던 하시코프 한국 사용자 모임 두 번째 밋업의 발표를 간단한 요약과 함께 정리했습니다.
44BITS 로고

HashiCorp 한국 사용자 모임 세 번째 밋업 개최 및 발표 자료

🗒 기사, 2019-07-17 - 2019년 7월 10일에 열렸던 하시코프 한국 사용자 모임 세 번째 밋업의 발표를 간단한 요약과 함께 정리했습니다.
44BITS 로고

HashiCorp 한국 사용자 모임 네 번째 밋업 개최 및 발표 자료

🗒 기사, 2019-09-20 - 2019년 9월 18일에 열렸던 하시코프 한국 사용자 모임 네 번째 밋업의 발표를 간단한 요약과 함께 정리했습니다.

이외에도 참가자 모두가 발표하는 라이트닝 토크 등의 행사도 진행하였습니다.