TIL

Terraform으로 AWS EC2 간단히 만들기

하얀잔디 2026. 5. 14. 16:09

Terraform은 AWS 리소스를 코드로 생성/관리할 수 있는 IaC 도구임.
여기서는 가장 간단하게 EC2 인스턴스 1대 생성하는 예제만 정리함.

 

 

1. 준비물

필요한 것.

- Terraform 설치
- AWS 계정
- AWS Access Key / Secret Key
- EC2 생성 권한
- AWS CLI 설치
 

Terraform은 AWS API를 호출해서 EC2를 만들기 때문에 인증 정보가 필요함.
보통 .tf 파일에 키를 직접 적지 않고, AWS CLI profile이나 환경변수를 사용함.

 


 

2. AWS CLI 인증 설정

AWS CLI가 설치되어 있다면 아래처럼 profile을 설정함.

 
aws configure --profile dev
 

입력값.

AWS Access Key ID
AWS Secret Access Key
Default region name: ap-northeast-2
Default output format: json
 

서울 리전을 쓰려면 ap-northeast-2 사용하면 됨.

확인.

 
aws sts get-caller-identity --profile dev
 

정상적으로 계정 정보가 나오면 인증 성공임.

 


3. Terraform 디렉토리 생성

 
mkdir terraform-aws-ec2
cd terraform-aws-ec2
vi main.tf
 

4. main.tf 작성

 
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region  = "ap-northeast-2"
  profile = "dev"
}

resource "aws_instance" "test_ec2" {
  ami           = "ami-xxxxxxxxxxxxxxxxx"
  instance_type = "t2.micro"

  tags = {
    Name = "terraform-test-ec2"
  }
}
 

5. 코드 의미

 
source = "hashicorp/aws"
 

AWS Provider를 사용하겠다는 뜻임.
Terraform이 AWS 리소스를 만들 수 있게 해주는 플러그인임.

 
provider "aws" {
  region  = "ap-northeast-2"
  profile = "dev"
}
 

AWS 서울 리전에 dev profile 인증 정보로 접속하겠다는 뜻임.

 
resource "aws_instance" "test_ec2"
 

EC2 인스턴스를 만들겠다는 뜻임.

여기서 test_ec2는 Terraform 내부 이름임.
실제 AWS 콘솔에 보이는 이름은 아래 태그로 정함.

 
tags = {
  Name = "terraform-test-ec2"
}
 

6. AMI ID 확인 필요

위 예제의 이 부분은 직접 바꿔야 함.

 
ami = "ami-xxxxxxxxxxxxxxxxx"
 

AMI는 EC2에 설치할 OS 이미지임.

예:

Ubuntu AMI
Amazon Linux AMI
Rocky Linux AMI
 

AWS 콘솔에서 EC2 생성 화면 들어가서 원하는 AMI ID를 확인한 뒤 넣으면 됨.


7. Terraform 실행

초기화.

 
terraform init
 

생성될 리소스 확인.

 
terraform plan
 

적용.

 
terraform apply
 

중간에 물어보면 입력.

yes
 

생성 확인.

 
terraform state list
 

또는 AWS 콘솔에서 EC2 확인.


8. 삭제

테스트 끝났으면 꼭 삭제해야 과금 안 됨.

 
terraform destroy
 

물어보면 입력.

yes
 

삭제 후 AWS 콘솔에서 EC2가 종료됐는지 확인하면 됨.


9. 전체 흐름 정리

1. AWS 인증 설정
2. main.tf 작성
3. terraform init
4. terraform plan
5. terraform apply
6. EC2 생성 확인
7. terraform destroy로 삭제
 

핵심 정리

Terraform은 EC2를 직접 만드는 게 아님.
AWS Provider를 통해 AWS API에 EC2 생성 요청을 보내는 것임.

aws_instance
= EC2 인스턴스 리소스

provider "aws"
= AWS 접속 설정

terraform.tfstate
= Terraform이 만든 EC2 상태를 기억하는 파일
 

테스트할 때는 apply보다 plan을 먼저 보는 습관이 중요함.
그리고 EC2는 과금될 수 있으니 끝나면 terraform destroy까지 해주는 게 좋음.

'TIL' 카테고리의 다른 글

K3s) CRD란  (0) 2026.05.20
EKS ) Karpenter란  (0) 2026.05.14
[Terraform] 테라폼) 설치 방법 정리 (macOS, Linux, Windows)  (0) 2026.05.14
k3s에서 Auto Scaling 설정하는 방법  (0) 2026.05.12
DB 커넥션풀은 얼마나 해야할까?  (0) 2026.05.11