어떻게 알게되었나
쿠버네티스를 배우면서 Vagrant(이하 베이그런트)를 통해 쿠버네티스 환경을 설정하였다.
베이그런트가 가상머신에 쿠버네티스 환경을 자동으로 한 번에 설치해주는 것까지는 알겠는데,
정확히 어떤 용도로 쓰이는 툴이며 무슨 역할을 담당하는지 호기심이 생겼다.
이번 포스팅에서는 베이그런트란 무엇인지, 구체적으로 어떤 용도로 쓰이는 지를 알아보려고 한다.
Vagrant란
Vagrant는 단일 워크플로우에서 가상 시스템 환경을
구축하고 관리하기 위한 도구입니다.
사용하기 쉬운 워크플로우와 자동화에 중점을 둔
Vagrant는 개발 환경 셋업 시간을 단축하고 프로덕션 패리티를 높이며
"내 시스템에서 작업"을 과거의 것으로 간주합니다.
베이그런트 공식 홈페이지에서 베이그런트에 대한 설명은 위와 같다.
모든 정의가 그렇듯 공식문서만 보고는 무슨 말인지 도통 알 수가 없는 것이 국룰.
그래도 내 조그마한 경험을 더해서 정의를 해석하면
VirtualBox나 VMware와 같은 가상머신에 시스템 환경을 편리하게 구축, 관리하기 위한 도구가
아닐까 하는 추측을 해보았다.
하지만 이는 순전히 내 추측이기 때문에 다시 한 번 정의를 찾아보기로 하였다.
정의를 찾아보면 또 다시 위와 같은 딱딱한 설명만 있을 것 같아
이번에는 방향을 바꿔 왜 베이그런트를 사용하는지 찾아보기로 하였다.
그래서 왜 사용해?
좋은 자료를 찾는데 꽤 오랜 시간이 걸릴 줄 알았는데, 아래의 블로그에 너무나도 잘 정리가 되어있었다.
아래의 자료를 바탕으로 내 나름대로의 언어로 아주아주 간략하게 정리를 해보려한다.
가상 머신을 한 번이라도 설치해본 경험이 있다면
아래 그림과 같이 준비해야 할 것들이 굉장히 많다는 것을 알 것이다.
만약 가상머신을 1대가 아니라 20대, 50대 더 늘어서 100대를 설치한다고 생각해보자.
100개 각각의 가상머신마다 이러한 설정을 하나씩 해주고, 설치도 하나하나씩 한다고 상상하면
생각만으로 끔찍하지 않은가?
베이그런트는 이러한 사태를 막기위해 사용하는 것이라고 할 수 있다.
사용자는 Vagrantfile이라는 YAML 설정 파일을 만들어서 원하는 설정의 가상머신을
아주 많은 수라도 자동으로 설치할 수 있다.
아마 도커를 사용해본 적 있는 사람들은 자연스럽게 Dockerfile을 떠올릴 것이다.
Dockerfile 역시 하나하나 일일이 컨테이너를 만드는 것이 아니라 Vagrantfile과 똑같이 YAML 형태로
한 번에 컨테이너를 생성할 수 있게 해준다.
참고
cafe-jun12님 블로그 - [Vagrant ] 1. Vagrant 기초 개념 및 Default VM (Centos 7) 생성
'개발 > 개발 지식' 카테고리의 다른 글
asyncio 완전 정복 - 1 (0) | 2022.07.23 |
---|---|
Anaconda와 JupyterLab 알아보기 (0) | 2022.07.10 |
파이썬 DB 커넥터(psycopg2) 간단한 사용법/executor과 commit 차이 (0) | 2022.04.06 |
NFS란? 정의/장단점 (0) | 2022.04.04 |
REST vs Websocket - 차이/작동방식/적절한 비유 (1) | 2022.03.29 |