--resource : import 시킬 리소스 지정 --path-pattern : 경로를 어떻게 할 것인지.. (요렇게 안해주면 리소스 별로 폴더가 생성되고 그 안에 각가의 .tf파일들이 생성됨) --regions : 리전 지정 --profile : aws를 멀티 어카운트로 사용할 경우 인증키의 프로필 지정
오류가 날 경우!
처음에 오류가 나길래 뭐지 했는데.. terraform이 nodejs처럼 plugin을 글로벌(?)하게 설치하지 않아서 생기는 문제인데
aws provider가 없기 때문에 tf를 만들 수가 없어서 생긴 문제로 아래 링크에서 최신 버전에 맞는 aws provider를 다운로드 후
mkdir -p ~/.terraform.d/plugins/darwin_arm64 (m1, m2사용자용)
#글 작성 당시 최신 버전인 4.44.0의 링크 추가
curl -OL https://releases.hashicorp.com/terraform-provider-aws/4.44.0/terraform-provider-aws_4.44.0_darwin_arm64.zip > ~/.terraform.d/plugins/darwin_arm64/terraform-provider-aws_4.44.0_darwin_arm64.zip
unzip ~/.terraform.d/plugins/darwin_arm64/terraform-provider-aws_4.44.0_darwin_arm64.zip
terraformer로 생성된 provider에는 shared_config_files, shared_credentials_files 옵션이 없기 때문에 terraform init&plan이 불가능하기 때문에 꼭 필요한 작업이다.
이후 generated 폴더로 이동하여 terraform init을 진행하기 전 한가지 작업을 더 해야한다.
바로 terraform state replace-provider 작업인데.. terraformer가 아직 aws를 완전하게 지원하지 않는지 init을 할 때 문제가 생긴다.
아래 cli를 입력하여 변환 작업을 진행한다.
cd generated && terraform state replace-provider -auto-approve -- -/aws hashicorp/aws
이러면 약 수십개의 파일들이 변환이 된다.
이후 terraform init 과 terraform plan을 하면 정상적으로 import된 것들을 확인할 수 있다.
teraform plan
data.terraform_remote_state.local: Reading...
data.terraform_remote_state.local: Read complete after 0s
aws_vpc.tfer--vpc-1234567: Refreshing state...
.
.
.
No changes. Your infrastructure matches the configuration.
Terraform has compared your real infrastructure against your configuration and found no differences, so no changes are needed.