DevOps
Terraform aws s3 bucket 만들어보기
박한결
2021. 4. 16. 16:47
명령어 사용 순서
# 새로 만들기
$ vim provider.tf
$ terraform init
$ vim s3.tf
$ terraform plan
$ terraform apply
# 불러오기(import): resource를 불러오기 전에 root module에 configuration file이 위치하고 있어야함
# 위의 경우에는 s3.tf 파일
$ terraform import aws_s3_bucket.bucket bucket-name
$ terraform plan
$ terraform apply
# 잘 만들어졌는지 확인하는 용도
$ terraform state list
terraporm plan 명령어는 실제 인프라의 존재 여부를 확인하지 않지만, terraform apply 명령어는 확인한다. 그래서 plan할 때는 발생하지 않는 에러가 apply에서는 발생하는 모습을 볼 수 있다.
provider와 resource
provider: 테라폼으로 정의할 infrastructure provider
# provider.tf
provider "aws" {
region = "ap-northeast-2" # 사용중인 aws region
}
resource: 실제로 생성할 인프라
# s3.tf
resource "aws_s3_bucket" "[bucket]" {
bucket = "[bucket-name]"
}
여기서 입력하는 [bucket], [bucket-name]이 import할 때도 사용된다
예를 들어서 리소스를 생성할 때 이름을 아래처럼 설정했다면
resource = "aws_s3_bucket" "bye"{
bucket = "world"
}
import 해올때도 그 이름을 아래처럼 사용하면 되는거다
terraform import aws_s3_bucket.bye world
terraporm import를 할 때 bucket configuration file이 존재하지않으면
위의 이미지와 같은 에러가 나온다.
AWS 홈페이지에서는 [S3 Management Console- 버킷]에 들어가면 확인할 수 있다.