Terraform 설명 1
2024. 4. 9. 14:14ㆍIT
일련의 선언적으로 구성파일을 정의하고 읽을 수 있는 이런 구성파일로 토폴로지를 구성 → 테라폼 config
테라폼 설정 동작 방식
- 장점
- Multi-cloud
- stateful
- version controlled
- declarative
- manual click-ops
- save money
- 개발자들이 일하는 특정시간에만 서버를 올리고 퇴근시 서버를 내려 돈을 아낄 수 있다.
- disaster recovery
- 특정 availablity-zone이 안되는 경우 다른 availability zone으로 옮길 시 엄청난 시간 단축이 있다.
- minimize error
Refresh
- 테라폼은 Refresh를 통해 테라폼으로 만들어질 세상이 어떻게 생겼는지 조정한다.
- 테라폼 View가 나오고 실제와 어떻게 다른지 비교한다.
- VMware, AWS, Azure 같은 인프라에 실제 무엇이 실행중인지 API로 물어보고 각 상태를 확인한다.
- view ↔ Real
Plan
- 현재의 상태를 원하는 상태로 구성하는 단계
- 현재와 다른것이 무엇이고 어떤 변화가 있을지
- Real → Desired
Apply
- 원하는 상태를 만들기 위해 실행하는 단계
- Plan → Real
- yes 치기 귀찮으면 terraform apply —auto-approve
Destroy
- 코드베이스로 설정한 것들은 코드로 제로의 상태로, 삭제를 할 수 있는 단계
- Plan → Real
HCL
HashiCorp Configuration Language
Terraform cloud
- Terraform의 운영환경을 cloud를 통해 관리할 수 있도록 해주는 서비스
- Terraform의 실행환경과 state를 관리해주기 때문에, 따로 terraform을 위한 instance를 운영하거나 state관리를 위해 remote 저장소가 필요 ㅇ없다.
- 즉, 사용자는 terraform 운영은 모두 terraform cloud에 맡기고 terraform code를 통해 ingrastructure를 구축하는 일에 집중할 수 있게 된다.
terraform.state
- 테라폼은 코드를 인프라로 반영하면, 반영 상태를 파일로 관리한다. .tfstate
- terraform plan , terraform apply 적용시
terraform.tfstate라는 파일이 생긴다. - Terraform 설정 파일로 실제 인프라에 적용하면서 나온 결과를 기억하고 있는 상태 파일로 이후 설정 파일을 수정하거나 하면 “설정파일”, “상태파일”, 실제 인프라의 상태”를 비교해서 어떻게 적용할지를 판단하게 된다.
- 테라폼 버전과 상태의 버전, 적용한 인프라에 대한 다양한 정보가 있다. 또한 나중에 복구할 수 있도록 terraform.tfstate.backup 파일이 생긴다.
- 관리 방법
- 동시에 두 사람이상이 작업하면 terraform.tfstate 가 달라지게 되어 충돌이 발생하여 인프랑에 영향을 줄 수 있다.
- git pull로 가져오지 않고 작업하면 실수로 terraform.tfstate 위에서 작업할 수 있다.

'IT' 카테고리의 다른 글
Terraform 설명3 (ec2생성) (0) | 2024.04.09 |
---|---|
Terraform 설명2 (함수) (0) | 2024.04.09 |
Helm 스터디 (0) | 2024.04.09 |
Static, Dynamic Page, JSP, Servlet (0) | 2024.04.09 |
[AWS] 질문 (0) | 2024.04.09 |