개발

Terraform의 init/plan/apply

갓생사는 김초원의 개발 블로그 2023. 12. 12. 08:15

Terraform 이란?

  • 하시코프에서 오픈소스로 개발 중인 인프라스트럭처 도구
  • IaC 도구라고도 하는데, 여기서 IaC란 Infrastructure as Code의 약자로 코드를 통해 인프라를 구축/운영할 수 있도록 만들어주는 도구라고 합니다. 

https://btcd.tistory.com/20

 

테라폼(Terraform)이란? - 개념, 장점, 관리툴

※ 목차 ▶ IAC 가상화 기술의 발전 Iac 란 Iac 종류 ▶ Terraform Terraform 개념 Terraform 장점 Terraform 구성 사용관리 툴 들어가기전에.. IT산업에 종사하면서 도구의 사용법을 익히는 것도 중요하지만, 그

btcd.tistory.com

 

 

Terraform init/plan/apply

회사에서 테라폼을 사용하고 있는데, 실제 운영 환경에 요청하기 전 init, plan, apply 명령어를 사용하여 개발 환경에 변경 사항을 적용해볼 수 있었습니다. 적용하고자하는 정책을 코드로 먼저 작성한 뒤 terraform init -> plan -> apply 순으로 명령어를 실행하였고, AWS를 테라폼의 provider로 사용하였기 때문에 실제 잘 반영되었는지는 콘솔에서 확인해봤습니다.  

 

1. terraform init

  • 테라폼 프로젝트를 초기화 합니다.
  • init을 하는 경로에 .terraform 파일이 생성되고 지정한 provider에 대한 파일을 내려받습니다. 

2. terraform plan

  • 인프라에 적용하려는 변경 사항을 미리 볼수 있수 있는 실행 계획을 생성합니다.
  • 적용하고자 하는 정책을 코드로 올바르게 작성했는지 미리 검토해볼 수 있습니다. 

3. terraform apply

  • terraform plan에서 본 실행 계획을 실제 적용합니다. 
  • terraform apply -target <resource>
    • terraform apply 를 하면 해당 테라폼 프로젝트의 내용이 전부 적용됩니다. 이렇게 되면 콘솔에서 직접 정책을 적용한 누군가의 설정이 테라폼에 의해 엎어쳐질 수가 있습니다. 그래서 저는 제가 작업한 코드만 반영될 수 있도록 -target 옵션을 함께 사용합니다. 
    • 먼저 terraform state list 로 리소스들의 address 목록을 확인하고, 반영하고자 하는 리소스에 대해  terraform apply -target <resource address>를 실행합니다.