본문 바로가기
INFRA/Operation

terraform import 알아보기 #1

by BTC_뚜벅이 2022. 11. 30.

ABTCEFG♪  안녕하세요, 여러분!

 

BTC_뚜벅이입니다.

 

지난 시간에 data 구문에 대해 알아보았는데요.

이번 시간과 다음 시간은 terraform import에 대해 알아보도록 할게요!

이번 시간은 terraform import를 하는 방법에 대해 알아보려고 해요.

 

1. 환경구성

위처럼 provider "aws"를 사용해주고 aws configure에 등록된 profile을 여기에 넣습니다.

 

그 후 terraform init을 통해 환경을 구성합니다.

 

 

2. 가져올 리소스

특정 vpc와 연결된 sg를 가져올거에요.

여기 리소스에는 TCP, port : 20000, 0.0.0.0/0의 inbound rule 하나와 All traffic의 0.0.0.0/0 outbound rule이 연결되어 있습니다.



3. import 사용

import를 하기 위해 3개의 문서를 참조할거에요.

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group_rule

 

문서를 보면 맨 하단에 Import 구문 사용하는 방법이 나와있어요.

하지만 저대로 사용하면 안 되고 코드에 맞게 살짝 손을 봐줘야해요.

 

빨간 부분은 provider aws에서 제공하는 리소스이므로 고정값

노란 부분은 내가 지정한 테라폼 코드 내 aws_vpc의 리소스 id이므로 변경

초록 부분은 import할 콘솔 aws_vpc 리소스의 id값으로 id값에 맞게 변경

 

terraform import를 하기 위해 리소스가 들어갈 부분이 필요해요.

그래서 위처럼 리소스가 들어갈 공간을 만들어줍니다.

여기서 만든 부분은 "aws_vpc" "import_vpc" 이므로 문서에 나와있는 Import 예시 구문에서 1단계처럼,

 

terraform-import-vpc의 캡처 화면을 보면 VPC ID값이 나와있으니 2단계처럼 또 수정할게요.

# import 구문 작성하기

# 1단계 
$ terraform import aws_vpc.test_vpc vpc-a01106c2 # 여기서
$ terraform import aws_vpc.import_vpc vpc-a01106c2 # 이렇게 수정

# 2단계
$ terraform import aws_vpc.import_vpc vpc-a01106c2 # 여기서
$ terraform import aws_vpc.import_vpc vpc-07a2b0b3a7996aab1 # 이렇게 수정

이처럼 공식 문서와 테라폼 코드를 확인하면서 수정하면 됩니다.

이렇게 4개의 리소스가 들어갈 공간을 만들어준 후

 

vpc / security group / security group rule에 대한 import 구문을 마저 작성하고 가져와볼게요.

 

$ terraform import aws_vpc.import_vpc vpc-07a2b0b3a7996aab1 # vpc
$ terraform import aws_security_group.import_sg sg-016a7948c4ea92d0b # sg 
$ terraform import aws_security_group_rule.import_sg_rule_ingress sg-016a7948c4ea92d0b_ingress_tcp_20000_20000_0.0.0.0/0 # sg_rule_ingress
$ terraform import aws_security_group_rule.import_sg_rule_egress sg-016a7948c4ea92d0b_egress_all_0_0_0.0.0.0/0 # sg_rule_egress

위의 코드대로 명령어를 입력하게 되면 정상적으로 import가 되었다는 문구가 출력됩니다.

 

그리고 해당 폴더에 terraform.tfstate와 terraform.tfstate.backup 이라는 2개의 파일이 생성됩니다.

 

이 두 파일에 저장되는 내용과 import를 사용하는 방법에 대해 다음시간에 자세히 알아볼게요~!

 

 

댓글