Terraform 설치 및 환경 구성
1️⃣ Terraform 설치 방법 (Windows, macOS, Linux)
Terraform은 HashiCorp 공식 사이트에서 직접 설치할 수 있으며, OS에 따라 설치 방법이 다릅니다.
1 Windows 설치
- 공식 다운로드 페이지에서 Windows 버전의
.zip
파일을 다운로드합니다. - 압축 해제 후
terraform.exe
파일을 원하는 디렉터리에 이동합니다. - 환경 변수에 해당 디렉터리를 추가합니다.
- 아래 명령어로 설치 확인:
terraform -version
✅ Tip: Chocolatey가 설치되어 있다면 다음 명령어로 설치할 수 있습니다.
choco install terraform
2 macOS 설치
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
설치 확인:
terraform -version
3 Linux 설치
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update
sudo apt install terraform
설치 확인:
terraform -version
2️⃣ Terraform 실행 구조 및 기본 CLI 명령어
Terraform은 아래와 같은 순서로 실행됩니다:
📌 Terraform 실행 흐름도
main.tf → terraform init → terraform plan → terraform apply
1 terraform init
- Terraform 작업 디렉토리 초기화
- 필요한 플러그인(Provider 등) 다운로드
terraform init
2 terraform plan
- 변경 사항을 미리 시뮬레이션
terraform plan
3 terraform apply
- 실제로 리소스를 배포
terraform apply
4 terraform destroy
- 배포된 리소스를 삭제
terraform destroy
3️⃣ Terraform 실행을 위한 환경 변수 설정
Terraform은 실행 시 AWS, Azure 등의 클라우드 인증 정보를 환경 변수로 받을 수 있습니다.
✅ AWS 예시:
export AWS_ACCESS_KEY_ID="AKIA********"
export AWS_SECRET_ACCESS_KEY="********"
export AWS_DEFAULT_REGION="ap-northeast-2"
🔐 보안을 위해 ~/.bashrc
또는 .env
파일에 저장하거나, direnv
, aws-vault
등의 도구를 사용할 수 있습니다.
4️⃣ Terraform 플러그인 및 프로바이더 개념
Terraform은 외부 리소스와 상호작용하기 위해 Provider(프로바이더) 를 사용합니다.
1 Provider란?
- AWS, Azure, GCP, Kubernetes 등의 인프라와 연결해주는 플러그인입니다.
terraform init
시 자동으로 설치됩니다.
2 Provider 예제
provider "aws" {
region = "ap-northeast-2"
}
provider "google" {
project = "my-project-id"
region = "asia-northeast1"
}
🧩 Terraform은 공식 레지스트리에서 다양한 Provider를 제공합니다:
👉 Terraform Registry
🎯 정리
항목 | 설명 |
---|---|
설치 | OS에 따라 설치 방법 다름 |
CLI 명령어 | init , plan , apply , destroy |
환경 변수 | 클라우드 인증정보 저장 |
Provider | 클라우드와 Terraform 연결해주는 플러그인 |
마지막 수정일자