Open10

Terraform で既存 AWS リソースを import する

icy-mountainicy-mountain

AWSアカウント Foo にあるリソースを、
Bar のAWSアカウントに import してみる

icy-mountainicy-mountain

手順としては、

  1. Foo で稼働している AWS リソースを Terraform に書き起こす
  2. Terraform に書き起こされたリソースを Bar で実行する

で良いか?

icy-mountainicy-mountain

チュートリアルやってみたところ、ファイル構成はこんな感じ

  • main.tf (provider の記述のみ。今回は docker)
  • terraform.tf (terraform の required_version と required_providers の記述のみ)
  • docker.tf (import id to の記述のみ)
  • generated.tf (自動生成されたファイル。docker の port や image の情報などが書かれている。ファイル名は可変)
icy-mountainicy-mountain

terraform plan -generate-config-out=generated.tf

すると、generated.tf にリソースの設定が全て書き込まれる。
ただ、import block で指定した全てのリソースが書き込まれるので、import block でS3やLambdaといった複数のリソースをしている場合、一つの generated.tfにまとめて書き込まれてしまうので、それちょっとイヤ

icy-mountainicy-mountain

なので、一旦、全てのリソースを gererated.tf へ import したあと、良い感じに別ファイルに書き写した方がよさそう

  • compute.tf
  • storage.tf
    みたいに
icy-mountainicy-mountain

一括でやると generated ファイルの視認性が下がるので、
論理分割ごとに、徐々に import していくのがよさそう