Terraform 설치 및 환경 구성
1️⃣ Terraform 설치 방법 (Windows, macOS, Linux)
Terraform은 HashiCorp 공식 사이트에서 직접 설치할 수 있으며, OS에 따라 설치 방법이 다릅니다.
1 Windows 설치
- 공식 다운로드 페이지에서 Windows 버전의
.zip파일을 다운로드합니다. - 압축 해제 후
terraform.exe파일을 원하는 디렉터리에 이동합니다. - 환경 변수에 해당 디렉터리를 추가합니다.
- 아래 명령어로 설치 확인:
terraform -version✅ Tip: Chocolatey가 설치되어 있다면 다음 명령어로 설치할 수 있습니다.
choco install terraform2 macOS 설치
brew tap hashicorp/tap
brew install hashicorp/tap/terraform설치 확인:
terraform -version3 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 -version2️⃣ Terraform 실행 구조 및 기본 CLI 명령어
Terraform은 아래와 같은 순서로 실행됩니다:
📌 Terraform 실행 흐름도
main.tf → terraform init → terraform plan → terraform apply1 terraform init
- Terraform 작업 디렉토리 초기화
- 필요한 플러그인(Provider 등) 다운로드
terraform init2 terraform plan
- 변경 사항을 미리 시뮬레이션
terraform plan3 terraform apply
- 실제로 리소스를 배포
terraform apply4 terraform destroy
- 배포된 리소스를 삭제
terraform destroy3️⃣ 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 연결해주는 플러그인 |
마지막 수정일자