Terraform을 사용하여 AWS에서 S3 버킷 생성
이 페이지에서
- 전제 조건
- 우리가 할 일\n
- S3 버킷용 Terraform 구성 파일 작성
- Terraform 구성 파일을 사용하여 S3 버킷 생성\n
이 기사에서는 Terraform을 사용하여 AWS에서 S3 버킷을 생성하는 방법을 보여줍니다. 계속하기 전에 S3 버킷에 익숙하다고 가정합니다. 그렇지 않은 경우 여기를 클릭하여 AWS 콘솔에서 S3 버킷을 생성하는 단계를 볼 수 있습니다.
전제 조건
- Terraform에 대한 기본적인 이해.\n
- 시스템에 Terraform이 설치되어 있습니다.
- AWS 계정(계정이 없는 경우 생성).
- AWS IAM 사용자의 access_key 및 secret_key. (AWS에서 access_key 및 secret_key를 사용하여 IAM 사용자를 생성하는 방법을 알아보려면 여기를 클릭하십시오.)\n
우리가 할 일
- S3 Bucket용 Terraform 구성 파일을 작성합니다.\n
- Terraform 구성 파일을 사용하여 S3 버킷을 만듭니다.\n
- Terraform을 사용하여 생성된 S3 버킷을 삭제합니다.\n
S3 버킷에 대한 Terraform 구성 파일 쓰기
terraform 구성 파일을 만들 수 있는 전용 디렉터리를 만듭니다.
다음 명령을 사용하여 디렉토리를 만들고 현재 작업 디렉토리를 변경하십시오.
mkdir terraform
cd terraform/
저는 "vim"을 편집기로 사용하여 파일을 작성하고 있습니다. 원하는 편집기를 사용하고 다음 구성을 복사하여 붙여넣어 variables.tf, terraform.tfvars 및 main.tf를 만들 수 있습니다.
AWS에서 S3 버킷 생성을 담당하는 main.tf를 생성합니다. 이 main.tf는 variables.tf 및 terraform.tfvars에서 변수 값을 읽습니다.
vim main.tf
provider "aws" { region = "${var.region}" access_key = "${var.access_key}" secret_key = "${var.secret_key}" } resource "aws_s3_bucket" "this" { bucket = "${var.bucket_name}" force_destroy = "${var.force_destroy}" region = "${var.region}" tags = "${merge(var.tags, map("Name", format("%s", var.bucket_name)))}" }
여기
\nbucket:
버킷의 이름입니다. 생략하면 Terraform이 임의의 고유한 이름을 할당합니다.force_destroy:
버킷이 오류 없이 폐기될 수 있도록 버킷에서 모든 객체를 삭제해야 함을 나타내는 부울입니다.\nregion
: 이 버킷이 상주해야 하는 AWS 리전입니다.\ntags:
버킷에 할당할 태그 맵입니다.\n
내가 지정한 지역이 아닌 다른 지역에 버킷을 만들려면 "region" 값을 변경하세요.
변수의 선언 및 정의를 포함하는 variables.tf를 생성합니다.
vim variables.tf
variable "access_key" { description = "Access key to AWS console" } variable "secret_key" { description = "Secret key to AWS console" } variable "region" { description = "Region of AWS VPC" } variable "bucket_name" { description = "(Required) Creates a unique bucket name" type = "string" default = "test-bucket-rahul-delete" } variable "force_destroy" { description = "(Optional) A boolean that indicates all objects should be deleted from the bucket so that the bucket can be destroyed without error" type = "string" default = true } variable "tags" { description = "(Optional) A mapping of tags to assign to the bucket" type = "map" default = {"env": "test"} }
variables.tf를 생성했으면 변수에 할당된 값을 변경하는 것을 잊지 마십시오. 강조표시된 값은 내 환경에만 해당하므로 변경해야 합니다. 나머지 변수는 그대로 유지할 수 있습니다.
"region" 변수와 함께 위 파일에 정의된 access_key 및 secret_key 변수의 정의를 포함하는 terraform.tfvars를 생성합니다.
IAM 사용자의 키로 다음 키를 변경해야 합니다.
vim terraform.tfvars
region = "eu-west-3" access_key = "AKIAQ6GAIA5XFLXF6HOV" secret_key = "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"
이제 3개의 파일 즉, variables.tf, terraform.tfvars 및 main.tf가 있어야 합니다.
Terraform 구성 파일을 사용하여 S3 버킷 생성
다음 명령을 실행하기 전에 유효한 access_key 및 secret_key를 구성했는지 확인하십시오.
사용할 첫 번째 명령은 terraform init입니다. 이 명령은 구성 내에서 사용되는 공급자에 대한 플러그인을 다운로드하고 설치합니다. 우리의 경우 AWS입니다.
terraform init

두 번째로 사용할 명령은 terraform plan입니다. 이 명령은 인프라에서 발생할 변경 사항을 확인하는 데 사용됩니다.
terraform plan

terraform apply 명령은 main.tf 파일에 언급된 AWS에 리소스를 생성합니다. 리소스를 생성하기 위한 입력을 제공하라는 메시지가 표시됩니다.
terraform apply

위의 명령어를 실행하면 성공적으로 완료되면 새 리소스 1개가 추가되고 0개가 삭제된 것을 확인할 수 있습니다.
AWS S3 콘솔로 이동하여 S3 버킷이 생성되었는지 확인할 수 있습니다.

Terraform을 사용하여 S3 버킷 삭제
main.tf 파일에 언급된 구성을 사용하여 생성한 리소스가 더 이상 필요하지 않은 경우 "terraform destroy" 명령을 사용하여 해당 리소스를 모두 삭제할 수 있습니다. 여기에서 다음 명령어를 실행하면 S3 버킷이 삭제됩니다.
terraform destroy
위의 스크린샷에서 리소스가 파괴된 것을 볼 수 있습니다.
결론
이 기사에서는 Terraform을 사용하여 S3 버킷을 생성하는 단계를 살펴보았습니다. 또한 우리가 생성한 Bucket이 단 하나의 명령으로 어떻게 삭제되는지 살펴보았습니다.