본문 바로가기

HashiCorp/Terraform

[ Terraform ] Terraform 명령어 및 활용 방법

728x90
반응형

Terraform은 인프라를 코드로 관리하기 위한 도구로서, 다양한 명령어들을 제공합니다. 아래에서 각각의 명령어에 대해 간단히 설명하고, 실습 코드 예시를 제공합니다.

1. terraform init

이 명령어는 Terraform 프로젝트를 초기화할 때 사용됩니다. 주로 처음 Terraform을 시작할 때 main.tf 파일이 있는 디렉토리에서 실행합니다.

bash
terraform init
# 이 명령어는 필요한 Terraform 플러그인(프로vider)들을 다운로드하고 초기화합니다.

2. terraform plan

terraform plan은 현재 코드로 적용될 인프라 변경 사항을 미리 보여주는 명령어입니다. 이를 통해 실제로 인프라를 변경하기 전에 예상되는 결과를 확인할 수 있습니다.

사용 예시:

main.tf 파일에 간단한 AWS EC2 인스턴스를 정의해 보겠습니다.

hcl
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }
#이 파일을 사용하여 terraform plan을 실행하면, 실제로 인프라에 어떤 변화가 생길지 미리 확인할 수 있습니다.
bash
terraform plan
출력 예시:

Terraform will perform the following actions: # aws_instance.example will be created + resource "aws_instance" "example" { + ami = "ami-0c55b159cbfafe1f0" + id = (known after apply) + instance_type = "t2.micro" + tags = (known after apply) + tenancy = (known after apply) + volume_tags = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy.
# 이렇게 terraform plan 명령어는 실제로 무엇이 변경될 것인지 명확하게 보여줍니다.

3. terraform apply

terraform apply 명령어는 실제로 인프라 변경을 적용하는 명령어입니다. terraform plan에서 미리 확인한 내용을 기반으로 리소스를 생성, 수정 또는 삭제합니다.

사용 예시:

bash
terraform apply
#위 명령어를 실행하면, Terraform은 계획된 변경 사항을 실제로 적용합니다. 변경 사항을 적용하기 전에 사용자가 확인을 요청하게 됩니다.

bash
Terraform will perform the following actions: # aws_instance.example will be created + resource "aws_instance" "example" { + ami = "ami-0c55b159cbfafe1f0" + id = (known after apply) + instance_type = "t2.micro" + tags = (known after apply) + tenancy = (known after apply) + volume_tags = (known after apply) } Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Enter "yes" to approve.
#"yes"를 입력하면 Terraform이 해당 변경 사항을 실제로 적용하고, 인프라를 프로비저닝합니다.

4. terraform fmt

terraform fmt는 Terraform 구성 파일을 자동으로 포맷하는 명령어입니다. 이를 통해 코드의 일관성을 유지하고, 가독성을 높일 수 있습니다.

사용 예시:

bash
terraform fmt
#이 명령어는 디렉토리 내의 모든 .tf 파일을 찾아서 Terraform 스타일 가이드에 맞게 자동으로 포맷을 맞춥니다.

예시:

hcl
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }

terraform fmt 실행 후:
hcl
provider "aws" { region = "us-west-2" } resource "aws_instance" "example" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" }

5. terraform validate

terraform validate 명령어는 Terraform 파일의 구문을 검사하여 오류가 있는지 확인하는 데 사용됩니다. 주로 파일을 작성한 후, 실제로 인프라를 적용하기 전에 구문 오류나 잘못된 설정이 없는지 확인하는 데 유용합니다.

사용 예시:

bash
terraform validate
# 명령어는 .tf 파일의 구문을 검사하고, 오류가 있을 경우 해당 오류 메시지를 출력합니다.

출력 예시:

bash
Success! The configuration is valid.
#류가 없으면 Success! The configuration is valid.라는 메시지가 출력됩니다.

Terraform 명령어 활용 예시

여기서 각 명령어를 사용하는 워크플로우를 정리해보겠습니다.

  1. terraform init - Terraform 프로젝트 초기화
  2. terraform validate - 코드의 구문 오류 점검
  3. terraform fmt - 코드 포맷 일관성 유지
  4. terraform plan - 인프라 변경 사항 예측
  5. terraform apply - 변경 사항 적용

결론

Terraform은 인프라를 코드로 관리하기 위한 매우 강력한 도구입니다. terraform plan, terraform apply, terraform fmt, terraform validate 명령어는 Terraform을 사용하여 인프라를 정의하고 관리하는 데 필수적인 도구들입니다. 각 명령어는 인프라 변경을 안전하게 적용할 수 있도록 도와주며, Terraform의 핵심적인 워크플로우를 구성합니다.

이 글에서 설명한 명령어들을 바탕으로 Terraform을 활용한 인프라 관리가 좀 더 명확하고 체계적일 것입니다.

728x90
반응형

'HashiCorp > Terraform' 카테고리의 다른 글

[ Terraform ] Terraform 이란  (1) 2024.11.19