HCl
1. 테라폼이란?
terraform 은 Hashicorp에서 오픈소스로 제공하는 ICA(Infrastructure as Code)이다.
서비스가 되는 환경을 구성하는 프로비저닝 도구로 분류되며, Cloud 환경에 제약없이 사용이 가능하다.
terraform은 GUI(Graphical user interface)나 웹 콘솔을 이용해 관리하던 것을 Code로 관리할 수 있게해준다.
이로써 구성을 버젼 관리가 쉬워지고 수작업으로 인한 실수가 적어진다.
특징
- Infrastructure ad Code : 코드 베이스
- Execution Plans : 사전 테스트
- Resource Graph : 리소스 의존관계 처리
- Change Automation : 변경사항 자동화 가능하다.
2. Cloud 별 ICA
종류
- AWS : AWS Cloud Formation
- GCP : Google Cloud Deployment Manager
장점
- Cloud 별 ICA
Cloud의 신규 서비스 대응이 빠르다.
- terraform
Cloud에 종속되지 않는다.
단점
- Cloud 별 ICA
Cloud에 종속 된다.
- terraform
Cloud의 신규 서비스 대응이 상대적으로 느리다.
3. 기본 용어 정리
프로비저닝 (Provisioning)
- 서비스를 실행 하기위한 준비단계
- 네트워크, 컴퓨팅 자원을 준비 작업 & 준비된 컴퓨팅 자원에 사이트 패키지나 어플리케이션 의존성을 준비하는 단계
- terraform은 전자에 치우쳐 있다.
프로바이더 (Provider)
- 외부 서비스를 연결해주는 기능을 하는 모듈
- AWS, GCP 등등이 프로바이더(Provider)로 있다.
리소스 (Resource)
- 프로바이더가 제공하는 제품의 최소 단위.
ex> EC2 Instance, Public IP 등등
HCL (Hashicorp Configration Language)
- Terraform 에서 사용하는 언어
- 확장자는 .tf를 사용
계획 (Plan)
- .tf 파일의 내용이 실제 적용이 가능한지 확인 작업
- 리소스에 어떤 영향(create, update, delete 등)을 미칠지 보여준다.
적용 (Apply)
- 계획 (Plan)을 실제 서비스에서 수행하는 단계
4. 설치
Ubuntu
WINDOWS 10