Terraform 구성 파일
1. main.tf
# AWS 제공자 설정
provider "aws" {
region = "ap-northeast-2" # 사용할 AWS 리전
}
# S3 버킷 생성
resource "aws_s3_bucket" "my_bucket" {
bucket = "my-unique-bucket-name" # S3 버킷의 이름 (유일해야 함)
acl = "private" # 버킷 접근 제어 목록 (ACL)
# 버킷에 태그 추가
tags = {
Name = "MyS3Bucket"
Environment = "Dev"
}
}
# 첫 번째 단계 폴더 생성
resource "aws_s3_bucket_object" "first_folder" {
bucket = aws_s3_bucket.my_bucket.bucket
key = "first-folder/" # 첫 번째 단계 폴더 (슬래시로 끝남)
}
# 두 번째 단계 폴더 생성
resource "aws_s3_bucket_object" "second_folder" {
bucket = aws_s3_bucket.my_bucket.bucket
key = "first-folder/second-folder/" # 두 번째 단계 폴더 (슬래시로 끝남)
}
# 두 번째 단계 폴더에 객체 업로드
resource "aws_s3_bucket_object" "example_file" {
bucket = aws_s3_bucket.my_bucket.bucket
key = "first-folder/second-folder/example.txt" # 객체 경로
content = "This is an example file in the second folder." # 파일 내용
}
2. variables.tf (필요 시)
이 예제에서는 특별한 변수를 사용하지 않지만, 필요에 따라 사용할 수 있는 파일입니다.
# 필요한 경우 사용할 변수 정의
variable "bucket_name" {
description = "S3 버킷 이름"
type = string
}
3. outputs.tf (필요 시)
버킷 정보를 출력하기 위한 파일입니다.
output "bucket_name" {
description = "S3 Bucket Name"
value = aws_s3_bucket.my_bucket.bucket
}
output "first_folder" {
description = "First Folder Key"
value = aws_s3_bucket_object.first_folder.key
}
output "second_folder" {
description = "Second Folder Key"
value = aws_s3_bucket_object.second_folder.key
}
구성 설명
- AWS Provider: AWS 리전과 제공자를 설정
- S3 Bucket: aws_s3_bucket 리소스를 사용하여 S3 버킷을 생성합니다. 버킷 이름은 반드시 고유해야 하며, ACL을 설정
- First Folder: aws_s3_bucket_object 리소스를 사용하여 첫 번째 단계 폴더를 생성합니다. 폴더 이름은 슬래시(/)로 끝나야 S3에서 폴더로 인식
- Second Folder: 두 번째 단계 폴더를 생성하고, 객체를 업로드
- Example File: 두 번째 폴더에 예시 텍스트 파일을 업로드
Terraform 실행
# Terraform 초기화
terraform init
# Terraform 계획 보기
terraform plan
# Terraform 적용
terraform apply
'AWS' 카테고리의 다른 글
AWS EFS 리소스 (1) | 2024.10.22 |
---|---|
AWS IaC 배포 방법들 (0) | 2024.10.22 |
AWS VPC Transit G/W, 트래픽 미러링, VPC 래티스 리소스 (0) | 2024.10.22 |
AWS VPN 가상 사설 네트워크, AWS가 확인한 액세스 리소스 (0) | 2024.10.22 |
AWS VPC 보안, DNS 방화벽, 네트워크 방화벽 리소스 (0) | 2024.10.22 |