IaC/IaC_Service

[IaC] Terraform 기본 명령어

달콤한달팽이 2023. 11. 23. 11:03
반응형

안녕하세요, 달콤한달팽이입니다.🐌😝

 

이번 실습에는 IaC에서 주로 사용하는 명령어에 대해 알아보도록 하겠습니다.


 

1. terraform init

1) terraform init

테라폼 구성 파일이 있는 작업 디렉터리를 초기화하는 명령어입니다.

 

최초 실행 시 실행에 필요한 아티팩트나 라이브러리를 다운받고 준비시키는 역할을 수행합니다.

 

만약 init 명령어 수행 없이 다른 명령어를 시도할 경우 아래와 같이 에러가 발생합니다!

 

2) terraform init -upgrade

0.14 버전 이후부터 종속성을 고정하는 .terraform.lock.hcl 파일이 추가되었습니다.

 

때문에 init을 수행할 경우 이에 명시된 버전의 모듈이 자동으로 설치되는데,

이를 다른 버전으로 임의 변경을 하고 싶을 경우 사용합니다.

 

2. terraform validate

1) terraform validate

문법이나 종속성에 대한 정확성을 확인하는 명령어입니다.

 

아래 예시와 같이 필수 인자(filename)의 부재 등을 출력해줍니다.

 

2) terraform validate -json

validate를 통해 수행한 결과를 json 형식으로 출력하는 명령어입니다.

 

3. terraform plan

1) terraform plan

코드 적용을 실제로 적용하지는 않고, 변경 예정 사항을 미리 검토하는 데에 사용되는 명령어입니다.

 

-out={파일명}을 통해 실행계획 결과값을 바이너리 파일로 미리 생성하고, 이를 apply에 적용할 수 있습니다.

 

4. terraform apply

1) terraform apply

코드를 실질적으로 적용하는 명령어입니다.

 

아래와 같이 plan을 토대로 apply를 진행할 수 있으며,

plan 결과값이 없을 경우 적용 직전 해당 실행 계획 적용 여부를 묻습니다.

 

2) terraform apply -replace={filename}

plan과 apply명령어 적용 후 변경 사항이 없을 경우 리소스는 그대로 유지되지만,

사용자의 필요에 따라 리소스를 재생성해야할 경우가 있습니다.

 

이럴 때 replace 옵션을 사용하여 대상을 삭제 후 재생성하는 실행 계획이 발생합니다.

 

5. terraform destroy

1) terraform destroy

테라폼 구성에서 관리하는 모든 개체를 제거하는 명령어입니다.

 

apply와 마찬가지로 아래와같이 plan을 통해 실행 계획을 생성해 둔 후 적용할 수 있으며,

plan을 사용하지 않을 경우 해당 실행 계획 적용 여부를 묻습니다.

 

2) terraform destroy -auto-approve

자동 승인 기능을 부여하는 옵션으로, 해당 옵션이 있을 경우 모든 명령어는 즉시 실행됩니다.

 

6. terraform fmt

1) terraform fmt

테라폼 구성 파일의 형식을 표준 스타일로 적용시키는 명령어입니다.

 

다수의 개발자들과 협업 과정에서 작업자별로 정렬, 빈칸, 내려쓰기 등의 규칙이 다를 경우 유용합니다.


이상으로 테라폼에 필요한 기본 명령어 설명을 마치도록 하겠습니다.

 

감사합니다!

반응형