회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
클라우드 인프라 교육 목적으로 아주 많이 쓰이는 ‘베이그런트(Vagrant)’라는 도구가 있습니다. IaC(infrastructure as code) 도구 중에 하나로, 이 영역에서 현업 개발자에게 더 유명한 도구로는 테라폼(Terraform)이 있습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
클라우드 인프라 교육 목적으로 아주 많이 쓰이는 ‘베이그런트(Vagrant)’라는 도구가 있습니다. IaC(infrastructure as code) 도구 중에 하나로, 이 영역에서 현업 개발자에게 더 유명한 도구로는 테라폼(Terraform)이 있습니다.
베이그런트는 테스트 환경을 위한 가상 머신을 만들어 주는 도구입니다. 동작 방식을 간단히 설명하면 아래와 같습니다.
이 과정에서 코드(Vagrantfile)야 가상 머신의 생성과 배포를 원하는 사용자/개발자가 제공한다 해도, 가상 머신을 생성하기 위한 이미지는 어디서 내려받을 수 있을까요? 도커처럼 베이그런트에 쓸 이미지는 그동안 베이그런트 클라우드(Vagrant Cloud)라는 곳에서 검색하고 내려받을 수 있었습니다.
그런데 이러한 베이그런트 클라우드가 지난 2024년 5월, HCP(HashiCorp Cloud Platform)로 이전한다는 공지가 나왔습니다. 그에 따라 현재는 다음과 같이 이미지 검색 창이 바뀌었습니다.
이러한 변화가 클라우드 인프라 생태계, 특히 이 도구를 운영하는 하시코프의 변화를 보여준다고 생각했습니다. 그래서 순서대로 아래 주제를 알아보려고 합니다.
HCP는 클라우드 인프라 생태계에 다양한 도구를 제공하는 기업, 하시코프(HashiCorp)에서 만든 플랫폼입니다. 하시코프가 제공하는 많은 제품을 클라우드에서 SaaS 형태로 제공하는 것이 HCP의 목적입니다. 이런 방식은 최근 많은 기업이 선호하는 비즈니스 형태입니다. 대표적으로 관측 가능성으로 유명한 그라파나 클라우드 등이 있습니다.
하시코프가 제공하는 대표적인 도구는 아래 8가지로 말할 수 있습니다. (볼트(Vault)는 제품화* 과정에서 세분화되었습니다.)
*상업적인 목적으로 도구를 패키징한 경우, 이를 제품화라고 표현했습니다.
이처럼 다양한 인프라 관리 도구는 온프레미스뿐만 아니라 클라우드에 아주 큰 영향을 끼치고 있습니다. 특히 테라폼은 클라우드 인프라를 코드로 배포할 때 거의 표준처럼 쓰이는 도구입니다. 또 볼트는 클라우드에서 특정 서비스 제공자에 종속되지 않는 상태로 시크릿 키를 관리할 수 있게 해줍니다.
다만 하시코프가 처음부터 플랫폼 기반의 제품 비즈니스를 제공한 것은 아니었습니다. 2010년 3월, 베이그런트 제품의 첫 머지가 발생한 이후, 하시코프는 다양한 도구를 출시하며 제품화했습니다. 다만 하시코프에게는 수익 모델(BM, Business Model)이 큰 고민이 되었을 겁니다. 기존 하시코프의 수익원은 서포트와 라이센스였습니다. 그러다 볼트를 SaaS 형태로 추가/변경하고 나서 수익이 매우 좋아졌고, 이에 따라 SaaS 전환이 가속화되었을 것으로 보입니다.
이처럼 SaaS 전환이 이어지면서 출시 제품들을 모아서 관리할 필요가 생겼습니다. 이를 위해 하시코프는 HCP를 2020년 6월에 세상에 내놓았습니다. 그러한 통합 정책에 따라 이제 베이그런트 클라우드도 HCP로 이전하도록 권고하고 있습니다.
베이그런트 클라우드에서 HCP로 마이그레이션하지 않으면 언젠가는 모든 이미지가 자동으로 옮겨질 겁니다. 그때 이미지를 내려받는 경우 문제가 생길 수 있습니다. 마이그레이션이 필요한 분들을 위해 간단히 그 과정을 소개합니다.
HCP 마이그레이션 과정은 모두 GUI에서 진행되므로 크게 부담스러운 내용은 없습니다.
가장 먼저 HCP에 계정을 만들어야 합니다. 해당 계정은 베이그런트 클라우드의 계정과 동일하게 생성합니다. 로그인한 다음, 조직(ORG, 예시에서는 k8s)을 생성합니다. 저는 주로 사용하는 이름인 sysnet4admin을 사용했으나, 실제로 베이그런트 클라우드에서 HCP로 마이그레이션할 때는 베이그런트 클라우드의 조직 이름으로 생성하게 됩니다. 그러니 필요에 따라 프로젝트 이름을 생성해도 무방합니다. (이에 따라 뒤에 sysnet4admin이라는 이름이 중복해서 나옵니다.)
생성된 프로젝트로 하시코프에서 제공하는 다양한 제품을 확인할 수 있습니다. 여기서 우리는 베이그런트 클라우드가 마이그레이션 될 예정인 베이그런트 레지스트리(Vagrant Registry)의 현재 상태를 확인해 보겠습니다.
마이그레이션이 전혀 진행되지 않았다면, 베이그런트 레지스트리에는 아무 내용도 없을 겁니다.
HCP의 상태를 확인했으면, 이제 베이그런트 클라우드에서 HCP로 마이그레이션을 시작하겠습니다.
마이그레이션 대상을 선택할 때는 베이그런트 클라우드 상의 조직(sysnet4admin)을 유지합니다. 만약 조직이 1개라면 따로 선택할 필요는 없습니다. 마이그레이션 목적지는 HCP로 앞서 만든 조직(k8s)과 프로젝트(sysnet4admin)를 선택합니다. 이어 왼쪽 하단 마이그레이션 버튼을 누릅니다.
물론 이미지의 갯수에 따라 다르겠지만, 마이그레이션은 매우 빠른 속도로 이뤄집니다. 제 경우, 7개 이미지가 2~3분만에 옮겨졌습니다.
마이그레이션이 끝났다면, 우선 베이그런트 클라우드에 있던 이미지를 HCP의 베이그런트 레지스트리에서 확인할 수 있는지 살펴야 합니다. 베이그런트 레지스트리의 기존 베이그런트 클라우드 조직 이름(예시의 경우, sysnet4admin) 메뉴를 선택해서 들어갑니다.
옮겨진 이미지를 클릭하면, 상세 페이지를 확인할 수 있습니다. 베이그런트파일(Vagrantfile)로 이미지를 불러오는 방법이 바뀌었는지도 확인합니다. 특별히 변경된 내용은 없을 것입니다. 각 이미지 이름을 누르면 여러 버전이 함께 옮겨졌는지 역시 확인할 수 있습니다.
가상 머신 이미지가 옮겨진 것을 확인했으면, 실제로 이미지를 직접 코드로 내려받아 동작하는 지도 확인하면 좋습니다. 이때는 vagrant up 명령을 사용하기 이전에 vagrant box remove <박스 이미지>를 통해서 한 차례 지우고 하는 것이 좀 더 확실합니다.
HCP의 프로젝트 이름HCP 상의 프로젝트 이름은 조직 하위의 구분을 위해 지정된 이름입니다. 따라서 해당 이름을 변경해도 베이그런트 레지스트리 사용 방법에는 영향이 없습니다. 아래 예시에서는 프로젝트 이름을 sysnet4admin에서 edu로 변경해 보았습니다.
프로젝트를 edu로 변경하고 vagrant box update를 실행해 다시 이미지를 내려받아도 문제 없음을 확인했습니다.
|
베이그런트는 하시코프의 근본이자 시작점이었습니다. 따라서 지금 당장 베이그런트에 큰 변화가 일어나지는 않을 것입니다.
다만 최근 하시코프의 가장 중요한 설립자 중 한 명인 하시모토가 퇴사함에 따라 남은 설립자들이 어떤 방향성을 가질지 주목할 필요가 있습니다. 또한 하시코프는 올해 초, IBM에 8조 원 가치로 인수되었습니다. 이번 인수로 하시코프의 여러 도구들이 IBM의 하이브리드 클라우드(Hybrid Cloud) 포트폴리오에 통합될 가능성이 높아 보입니다. 또, 시기적으로 볼 때, 인수 합병과 하시모토의 퇴사가 크게 차이 나지 않으니 무언가 영향이 있었다고 보이기는 합니다.
현재 알려져 있기로는 거의 제한 없이 사용할 수 있는 스토리지 등 베이그런트의 기존 정책에는 변화가 없을 거라고 합니다. 실제로 HCP 마이그레이션 이후, 여러 테스트를 해봤지만 일반 사용자 입장에서 큰 차이는 없었습니다. 오히려 HCP에 통합하며 보너스 크레딧 50$를 주는 혜택이 있습니다.
그러나 하시모토의 퇴사, 그리고 IBM 인수합병으로 베이그런트에는 적극적인 지원이 이뤄지지 않을 가능성이 높아졌습니다. 예를 들어 하시코프는 지난 2021년 6월, 코드(Vagrantfile)의 언어를 Ruby에서 Go로 변경한다고 공지했었습니다. 그와 함께 베이그런트 3.0이 나올 것도 예고했습니다. 하지만, 현재로는 3.0 프로젝트(마일스톤)에는 별다른 업데이트가 없는 상태입니다.
*베이그런트 2.5 및 다른 버전들의 상태는 링크에서 확인할 수 있습니다.
베이그런트는 하시코프의 시작점으로 설립자가 애정을 가진 제품이 아니었을까 싶습니다. 하지만 기업 입장에서는 계륵(鷄肋)과 같은 제품이기도 합니다. 특히 IBM 인수로 인한 수익화를 생각하면, 베이그런트에 대한 투자를 줄이거나 운영 비용을 최소화할 수도 있어 보입니다. 이번 HCP 통합 역시 그런 맥락의 연장선일 것입니다. 유저들의 HCP 이동을 자연스럽게 유도하며, 기존에 쓰던 S3 스토리지를 HCP에서 쓰는 스토리지로 통합해 비용도 낮췄을 것으로 추정됩니다.
따라서 베이그런트를 만들고 배포하며 사용하는 방법은 한동안 바뀌지 않을 것으로 예상됩니다. HCP 마이그레이션만 마쳤다면 지금 쓰는 방식을 유지해도 좋을 것입니다. 한.동.안 말입니다.
(위의 내용은 개인적인 이해와 추정이 포함되어 있으며, 관련 회사와는 공식적인 관계가 없음을 밝힙니다.)
작가
조훈(CNCF 앰버서더)
시스템/네트워크 IT 벤더의 경험 이후, 메가존 GCP 클라우드 팀에서 쿠버네티스와 연관된 모든 프로젝트에 대한 Tech Advisor 및 Container Architecture Design을 제공하고 있다. 페이스북 ‘IT 인프라 엔지니어 그룹’의 운영진을 맡고 있으며, 오픈 소스 컨트리뷰터로도 활동한다. 지식 공유를 위해 인프런/유데미에서 앤서블 및 쿠버네티스에 관한 강의를 하기도 한다. 책 <컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커> 등 3권을 썼다. CNCF(Cloud Native Computing Foundation) 앰버서더로서 쿠버네티스 생태계가 더 활발하게 퍼질 수 있도록 기여하고 있다.
심근우
LG유플러스 CTO부문에서 대고객 비즈니스 시스템의 DevOps를 담당하는 UcubeDAX팀의 팀장으로 일하고 있다. 퍼블릭 클라우드와 프라이빗 클라우드에 걸친 쿠버네티스 클러스터를 안정적으로 운영하기 위해 노력하고 있으며, 특히 주니어 DevOps 엔지니어들의 육성에 큰 관심을 가지고 있다.
문성주
체커(CHEQUER) 사의 DevOps Engineer로서 쿠버네티스의 멀티 클러스터 관리 방법론과 쿠버네티스 구현체(CAPI, OCI)에 대한 명세와 컨테이너 리소스 격리 방법에 대한 연구를 병행하고 있다. 이런 연구 활동을 기반으로 쿠버네티스 볼륨 테스트 파트에 컨트리뷰션했다. 본업은 쿠버네티스 오퍼레이터와 같은 CRD(커스텀 리소스)를 개발해 현업에서 쿠버네티스를 좀 더 편리하게 사용할 수 있도록 돕는 일이다. 또한, 페이스북 그룹 ‘코딩이랑 무관합니다만'과 ‘IT 인프라 엔지니어 그룹'의 운영진을 맡고 있다.
이성민
미국 넷플릭스(Netflix) 사의 Data Platform Infrastructure 팀에서 사내 플랫폼 팀들과 데이터 사용자들을 어우르기 위한 가상화 및 도구들을 개발하는 일들을 하고 있다. 과거 컨테이너와 쿠버네티스에 큰 관심을 두고 ingress-nginx를 비롯한 오픈 소스에 참여했으며, 현재는 데이터 분야에 일하게 되면서 stateful 한 서비스들이 컨테이너화에서 겪는 어려움을 보다 근본적으로 해결하기 위한 많은 노력을 하고 있다.
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.