<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/39d6a521-134b-48cc-bd54-134b8b000980/image-removebg-preview_(2).png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/39d6a521-134b-48cc-bd54-134b8b000980/image-removebg-preview_(2).png" width="40px" /> HashiCorp사에서 개발한 선언형 IaC 도구
</aside>
<aside> 🐄 왜 쓰나?
<aside> 😀 장점
<aside> 😦 단점
<aside> ⌚ Terraform Life Cycle
<aside> <img src="/icons/tabs_gray.svg" alt="/icons/tabs_gray.svg" width="40px" /> Terraform FLOW
<aside> <img src="/icons/emoji-winking_gray.svg" alt="/icons/emoji-winking_gray.svg" width="40px" /> Terraform 형상
</aside>
<aside> <img src="/icons/map_gray.svg" alt="/icons/map_gray.svg" width="40px" /> Terraform 디렉토리 레이아웃
.
├── backend.tf
├── ec2
│ ├── main.tf
│ ├── outputs.tf
│ └── variables.tf
├── main.tf
├── modules
├── outputs.tf
├── provider.tf
└── variables.tf
</aside>
<aside> <img src="/icons/dashboard_gray.svg" alt="/icons/dashboard_gray.svg" width="40px" /> Terraform 상태 관리
<aside> 😦 문제점
plan
/ apply
실행시 매번 로컬에 저장된 state와 API로 호출된 값을 비교-refresh=fasle
옵션을 통해서 로컬에 저장된 state만으로 비교 가능</aside>
<aside> <img src="/icons/share_gray.svg" alt="/icons/share_gray.svg" width="40px" /> state 파일 분리
여러 개의 환경을 관리할 때 locking이 발생하여 수정을 못하는 경우가 발생
환경별로 상태 파일을 분리가 필요
.
├── .dev
│ └── main.tf
├── .prd
│ └── main.tf
└── .test
└── main.tf
</aside>
</aside>