728x90
728x90
+ 21.10.10
더 이해 많이 하고 쓴 글 : https://honglab.tistory.com/199
참조
- 책 Terraform Up & Running
- terraform101.inflearn.devopsart.dev/preparation/terraform-basic/
목차
1. 테라폼 상태 & backend
2. Locking & Backup
실습은 다음 글에서 진행해보도록 하겠다
1. 테라폼 상태 & backend
클라우드상엔 테라폼으로 생성한 것들 외에도 다양한 리소스들이 있다
테라폼은 자신이 관리하는 리소스들을 식별해야 하는데, 이 때 사용하는 것이 .tfstate
파일이다
이 때 backend란 테라폼의 상태(.tfstate)를 저장할 Remote State Storage에 대한 설정이다
backend를 사용하면 현재 배포된 최신 상태를 외부에 저장/공유하기 때문에 다른 사람과의 협업이 가능해진다
AWS S3를 많이 사용한다고 한다
여기서 테라폼의 명령들을 다시 한 번 살펴보겠다 (backend가 지정되었을 시)
terraform init
- 지정한 backend에 상태 저장을 위한 .tfstate 파일을 생성 (가장 마지막에 적용한 테라폼 내역 저장)
- init 작업이 완료되면 .tfstate에 정의된 내용을 담은 .terraform 파일이 생성됨
- 기존에 다른 개발자가 .tfstate에 인프라를 정의해 놓았다면, init 명령을 통해 local(현재 개발자가 작성하고 있는 코드)에서 sync를 맞출 수 있다
terraform plan
- 정의한 코드가 어떤 인프라를 만들게 되는지 예측 결과를 보여주는 명령
- backend가 지정되어있지 않을 때와 동일하다
terraform apply
- 실제 인프라 배포 생성 & 작업 결과가 backend의 .tfstate 파일에 저장됨
- 해당 결과는 local의 .terraform 파일에도 저장됨
추가적으로, 이미 배포된 인프라 리소스들을 terraform state로 옮겨주는 terrform import
명령도 있다
2. Locking & Backup
Terraform 상태는 기본적으로는 로컬 스토리지에 저장을 하지만 backend를 사용해 S3, consul, etcd 등 다양한 원격 저장소를 사용할 수 있다
원격 저장소를 사용하는 이유는 아래와 같다
- Locking : 협업 시 동시에 같은 state에 접근하는 것을 막는다
- Backup : state 파일 유실 방지
따라서 다음 글에서 진행할 실습에서는 테라폼의 상태 저장을 위한 S3 뿐 아니라 Lock을 위한 DynamoDB Table도 생성해서 사용한다
끝
728x90
728x90
'공부 > IaC' 카테고리의 다른 글
[Terraform on AWS] 간단한 VPC 구성 & 웹서버용 EC2 생성하기 (0) | 2021.03.23 |
---|---|
[Terraform on AWS] 테라폼 backend, 상태 잠금 설정해보기 (0) | 2021.03.21 |
[Terraform on AWS] 테라폼 채움 참조, 변수(variable), output 사용 (0) | 2021.03.19 |
[Terraform on AWS] 테라폼 입문 (in Window) (0) | 2021.03.15 |
[AWS CloudFormation] #7 Auto Scaling Group 만들기 ( + Launch Configuration, ALB ) (0) | 2021.01.08 |
댓글