30일간의 AWS Terraform – Day 3: Terraform으로 첫 S3 버킷 만들기
Source: Dev.to

30일간의 AWS Terraform 챌린지 중 3일차에 오신 것을 환영합니다!
오늘 저는 실제 AWS 리소스인 S3 버킷을 실제로 생성하는 첫 번째 Terraform 구성을 작성했습니다. 이 간단한 예제는 나중에 다룰 모든 클라우드 자동화 작업의 기반을 다집니다.
왜 S3부터 시작할까?
Amazon S3는 자동화하기 가장 간단한 서비스 중 하나입니다. VPC, 네트워킹 또는 복잡한 종속성이 필요 없기 때문에 다음을 이해하는 데 완벽합니다:
- Terraform 리소스가 어떻게 작성되는지
- Provider 블록이 어떻게 작동하는지
- Terraform 명령을 어떻게 실행하는지
또한 상태 파일이 AWS 인프라를 어떻게 추적하는지 보여주어, 인프라스트럭처를 코드로 관리(IaC)를 배우는 첫 단계로 이상적입니다.

폴더 설정
하루 작업을 위한 새 폴더를 만듭니다:
day03/
그 안에 main.tf 라는 파일을 추가합니다. Terraform은 파일이 .tf 로 끝나는지만 신경 쓰며, 파일 이름 자체는 중요하지 않습니다.
S3 버킷 구성 작성
공식 Terraform 문서에 따르면, 기본 S3 버킷 리소스는 다음과 같습니다:
resource "aws_s3_bucket" "firstbucket" {
bucket = "my-demo-bucket-123"
tags = {
Name = "MyBucket"
Environment = "Dev"
}
}

이것이 의미하는 바
aws_s3_bucket→ Terraform 리소스 타입firstbucket→ 참조에 사용되는 내부 이름bucket→ 전역에서 고유해야 함tags→ 키‑값 형태의 메타데이터
이처럼 인프라가 코드로 정의됩니다.
Terraform 워크플로우 실행
Terraform는 예측 가능한 네 단계 워크플로우를 따릅니다.
1. terraform init
AWS 제공자 플러그인을 다운로드하고 작업 디렉터리를 준비합니다.
terraform init
새 폴더를 만들거나 새 제공자를 추가할 때마다 실행합니다.
2. terraform plan
Terraform이 수행할 변경 사항을 사전 검토(dry‑run)합니다.
terraform plan
위 예시에서는 다음과 같이 표시됩니다:
Plan: 1 to add, 0 to change, 0 to destroy.
3. terraform apply
버킷을 생성합니다.
terraform apply
Terraform이 확인을 요청합니다:
Enter a value: yes
또는 프롬프트를 건너뛸 수 있습니다:
terraform apply -auto-approve
몇 초 후 새 S3 버킷이 AWS 콘솔에 나타납니다.
4. terraform destroy
생성한 모든 것을 삭제합니다.
terraform destroy
자동 승인하려면:
terraform destroy -auto-approve
이 “구축 → 수정 → 삭제” 사이클은 실제 DevOps 워크플로우의 핵심 부분입니다.
Terraform이 변경을 감지하는 방법
Terraform은 생성된 모든 리소스를 terraform.tfstate 라는 로컬 파일에 추적합니다.
코드를 수정하면, 예를 들어:
tags = {
Name = "MyBucket 2.0"
}
그리고 다시 terraform plan을 실행하면, Terraform은 다음을 비교합니다:
- Desired state –
.tf파일들 - Actual state – AWS에 존재하는 리소스
다음과 같은 출력이 표시됩니다:
Plan: 0 to add, 1 to change, 0 to destroy.
이러한 상태 관리 기능이 Terraform을 강력하게 만드는 요소입니다.
Day 3의 주요 학습 내용
- 공식 Terraform 문서를 효과적으로 활용하기
- 리소스 및 프로바이더 블록 이해하기
init,plan,apply,destroy실행하기- 전역적으로 고유한 S3 버킷 이름의 중요성
- Terraform 상태 파일이 실제 AWS 인프라를 추적하는 방식
- Terraform이 자동으로 변경 사항을 식별하고 리소스를 업데이트하는 방법
Final Thoughts
Day 3은 Terraform이 저에게 “딱 맞는” 순간이었습니다. 간단한 .tf 파일 하나로 실제 AWS 리소스가 생성되는 것을 보는 것은 새로운 초능력을 얻은 느낌이었습니다. Terraform은 수동 클릭을 없애고 인프라를 반복 가능하고 버전‑관리되는 자동화로 전환합니다—모든 DevOps 엔지니어가 반드시 숙달해야 할 것입니다.