명령어 사용 순서
# 새로 만들기
$ 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- 버킷]에 들어가면 확인할 수 있다.
'DevOps' 카테고리의 다른 글
Vagrant vs. Terraform/Docker(베이그란트와 테라폼, 도커 비교) (1) | 2021.06.14 |
---|---|
ec2 zsh, oh-my-zsh 설치 (0) | 2021.04.06 |
윈도우에서 aws ec2 .pem파일로 접속하기(putty) (0) | 2021.04.06 |
[DevOps/03]The Core Terraform Workflow 테라폼 코어 워크플로우 (0) | 2021.04.06 |
[DevOps/02]Terraform Use cases 테라폼을 사용하는 이유 (0) | 2021.04.06 |