당신의 첫 번째 미니 Terraform 프로젝트: 설치, 구성 및 AWS에 배포

발행: (2025년 12월 3일 오전 03:20 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Cover image for Your First Mini Terraform Project: Install, Configure, and Deploy on AWS

Terraform이란?

HashiCorp의 Terraform은 인프라스트럭처를 코드(IaC) 형태로 관리하는 도구로, 다음을 수행합니다:

  • AWS / Azure / GCP 리소스 프로비저닝
  • 인프라 자동화
  • 반복 가능하고 버전 관리된 배포 유지
  • 리소스를 쉽게 삭제하고 재생성

자체 DSL인 HCL(HashiCorp Configuration Language)를 사용합니다.

이 가이드에서는 다음을 수행합니다:

  1. Terraform 설치
  2. AWS 접근 설정
  3. Terraform 프로젝트 생성
  4. AWS 인프라 배포

단계 1 – Ubuntu에 Terraform 설치

sudo apt update
sudo apt install -y wget unzip
wget https://releases.hashicorp.com/terraform/1.6.3/terraform_1.6.3_linux_amd64.zip
unzip terraform_1.6.3_linux_amd64.zip
sudo mv terraform /usr/local/bin/
terraform -v   # verify installation

단계 2 – AWS CLI 설치

sudo apt install -y awscli
aws --version   # verify installation

단계 3 – AWS 자격 증명 구성

aws configure

다음 항목을 입력하라는 메시지가 표시됩니다:

Enter AWS Access Key ID     : 
Enter AWS Secret Access Key : 
Default region name         : ap-south-1
Default output format       : json

Note: AWS 콘솔에서 액세스 키를 생성하거나 가져옵니다 → IAM → Users → Your User → Security credentials → Access keys → Create access key. 가장 가까운 데이터 센터와 일치하는 리전을 선택하세요.

단계 4 – Terraform 프로젝트 구조 생성

mkdir -p terraform_demo/terraform
cd terraform_demo/terraform

폴더 구조:

terraform_demo/
└── terraform/
    ├── provider.tf
    ├── main.tf
    ├── variables.tf
    ├── terraform.tfvars
    └── outputs.tf

단계 5 – Terraform 파일 작성

provider.tf

provider "aws" {
  region = var.region
}

variables.tf

variable "region" {}
variable "instance_type" {}
variable "key_name" {}

terraform.tfvars

region        = "ap-south-1"
instance_type = "t2.micro"
key_name      = "nagios"

main.tf

resource "aws_instance" "web" {
  ami           = "ami-0a0f1259dd1c90938"
  instance_type = var.instance_type
  key_name      = var.key_name

  tags = {
    Name = "Terraform-Web"
  }
}

올바른 AMI 찾기
최신 Ubuntu AMI(권장):

aws ec2 describe-images --owners canonical \
  --filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-*" \
  --query 'Images[*].[ImageId,Name]' --output table

최신 Amazon Linux 2 AMI:

aws ec2 describe-images --owners amazon \
  --filters "Name=name,Values=amzn2-ami-hvm-*-x86_64-gp2" \
  --query 'Images[0].ImageId' --output text

적절한 AMI ID를 선택하고 main.tf의 값을 교체하세요.

outputs.tf

output "public_ip" {
  value = aws_instance.web.public_ip
}

단계 6 – Terraform 초기화

terraform init

단계 7 – 실행 계획 생성

terraform plan

Terraform이 생성하려는 리소스를 표시합니다.

단계 8 – 적용 및 인프라 생성

terraform apply

프롬프트가 뜨면 yes를 입력하세요. 적용이 완료되면 출력에 EC2 인스턴스의 퍼블릭 IP가 표시됩니다.


🎉 Terraform 설정 완료!
이제 AWS 인프라가 Terraform을 사용해 자동으로 배포되었습니다.

Back to Blog

관련 글

더 보기 »

AWS Terraform 라이프사이클 규칙

소개 인프라스트럭처 코드(IaC)는 업데이트, 교체 및 삭제 시 리소스가 어떻게 동작하는지에 대한 완전한 제어가 있을 때 가장 강력합니다. Terr...

S3에 Terraform 상태 저장

S3를 Terraform 백엔드로 구성하기 Terraform은 상태를 S3 버킷에 저장할 수 있습니다. 아래는 S3 백엔드를 설정하는 최소 구성 예시입니다: hcl terrafor...