1. Terraform ?
[Caption] Terraform Logo
•
HashiCorp에서 Go 언어로 개발한 오픈 소스 코드형 인프라스트럭처 입니다.
•
HCL(HashiCorp Configuration Language) 언어로 인프라 리소스를 선언하고, 선언된 파일을 읽고 실행합니다.
선언적 언어는
구체적인 절차를 기술하는 것이 아닌, 최종적인 상태로 도달하기 위해 정의하는 방식
•
인프라를 일정한 상태로 유지하기 위해 코드로 정의하여 멱등성(idempotency)을 보장합니다.
멱등성은
여러 번 적용하더라도 결과가 달라지지 않는 성질으로, 테라폼은 코드로 정의된 리소스를 명시된 대로 적용하여 항상 같은 결과를 도출
•
코드만 보고 인프라 구성을 확인할 수 있고, 변경 사항을 쉽게 파악할 수 있습니다.
•
코드를 통한 인프라 정의로 재사용 및 공유에 용이합니다.
•
불변 인프라(immutable infrastructure)를 제공합니다.
불변 인프라는
변경이 이루어지지 않는 인프라로, 테라폼은 새로운 코드가 배포할 때 변경이 아닌 새롭게 이미지를 배포하는 형태로 동작
•
AWS, Azure, GCP 등의 다양한 클라우드 공급자를 지원합니다.
•
GIT과 같은 버전 관리 시스템을 통해 인프라 변경 기록을 유지 관리하여 인프라 변경에 따른 버전 관리가 용이합니다.
•
Ansible, Chef, Puppet, Saltstack과 같은 툴을 활용하여 소프트웨어 설치와 인프라 구성의 자동화 구성할 수 있습니다.
2. Terraform 설치
•
아래 링크를 통하여 작업용 PC의 OS에 맞게 설치합니다.
•
설치가 완료되면 terraform version 명령어로 설치된 버전 정보를 확인 (테라폼 버전 1.6.5 기준으로 진행)
terraform version
================= output =================
Terraform v1.6.5
...
Bash
복사
테라폼 릴리즈 버전 정보 링크