인프라 프로비저닝(provisioning) 자동화 도구, 오픈소스 테라폼(Terraform) 소개 및 데모

 Infrastructure as  Code (IaC)란 표현을 요즘 많이 사용합니다. 

vm이나 네트워크, 스토리지등의 인프라를 코드로 쉽게 배포하는 것을 말합니다. 잘 알려진 툴로는 Ansible, Chef, Terraform, Puppet 등이 있습니다. 

오늘은 테라폼을 간단하게 보여드리겠습니다.  

https://github.com/hashicorp/terraform

자! 회사에서 vm 100개를 만들라고 합니다. 일일이 하나 하나 100개의 가상머신을 만드려면 시간이 많이 걸립니다. 80개쯤 만들었는데 회사에서 OS를 바꾸라고 하네요. 처음부터 수정을 해야 합니다. 만들다보면 실수를 할 때도 있고 이를 잘 알아내기도 힘들고 나중에 문제가 터져야 알 수 있는 경우도 있습니다. 테라폼처럼 인프라 프로비저닝(provisioning)을 자동화하면 닝겐 실수(human error)를 줄일 수 있고, 빠르고 쉽게 복잡한 인프라를 배포, 수정, 삭제 할 수 있습니다. 

대박이지요? 그럼 제가 한 번 직접 사용해보겠습니다. 

테라폼(Terraform)으로 인프라 프로비저닝 하기
출처: www.terraform.io

  • 구글 클라우드 쉘(shell)에는 기본적으로 Terraform이 설치되어 있습니다. (마사카! 이미 설치되어 있다는 건!) terraform -version 으로 버전을 확인합니다.
테라폼 버전확인

  • test.tf 란 파일을 하나 만들고 생성하고자 하는 인프라를 만드는 코드를 짭니다. 샘플 코드는 글 제일 밑에 넣어뒀습니다. (괜찮아 괜찮아 넣어둬~~ 허허) 테스트로 100개의 서버를 만들려고 했는데 그러면 복붙 노가다를 해야해서 3개만 만들어 보겠습니다. 3개가 100개다라고 생각하세요! (얍!)
테라폼(Terraform)으로 인프라 프로비저닝 하기

  • 만든 test.tf 파일이 잘 있는지 확인하시고 terraform init 을 실행합니다. 
terraform init 실행

  • 테라폼 초기화가 성공적으로 끝나다는 메세지를 봤으니 바로 적용(배포)하겠습니다. terraform apply 를 실행합니다. 저는 개고수라 바로 apply 하지만 코흘리개 꼬꼬마들은 실무에서 terraform plan을 먼저 실행에서 테라폼이 뭘 만들껀지 확인하는 습관을 기르도록 합시다.  근데 apply 해도 테라폼이 뭘 할건지 보여주기는 합니다. 
terraform apply 실행

  • 확인한 내용이 맞으면 yes를 칩니다.
테라폼(Terraform)으로 인프라 프로비저닝 하기

  • 어맛. 금방 브이엠 3개가 생성되었습니다. 이거 너무 빠르고 편하죠? 300개 인스턴스라도 문제 없다규!  vm 3개 생성에 14초 컷!  
테라폼(Terraform)으로 인프라 프로비저닝 하기

  • 의심이 많은 분들은 클라우드 콘솔에서 재확인하면 됩니다. (근데 엔지니어는 의심이 많아야 함! 가서 확인하라구!) 
테라폼(Terraform)으로 인프라 프로비저닝 하기

  • 블로그 글이 너무 짧으면 허전하니 terraform show 도 실행해봅니다. terraform 을 실행하면 일반적으로 사용하는 명령어 리스트와 짧은 설명을 보여줍니다. 
terraform show 실행

  • 구글 클라우드 플랫폼에서 vm을 3개 생성하는 샘플 코드입니다. 막 쓰십쇼~

Comments