目次
現在のAWS構成をterraformコードにするには?
AWS (Amazon Web Services) の現在の構成を Terraform コードに変換(または "落とす")するためにはいくつかの手段が存在します。以下はその主な方法です。
手動での変換
現在の AWS リソースを手動で調査し、それに対応するTerraform コードを書く方法です。この方法は手間がかかりますが、最も細かい制御が可能です。
AWS CLI と jq
AWS CLI を使用して現在のリソースの情報を JSON 形式で取得し、それを jq
などのツールを使用して適切な形に整形することもできます。
その後、この情報を用いて Terraform コードを生成することができます。
例:
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId]' --output json | jq .
Terraform の import
コマンド
Terraform は import
コマンドを提供しており、既存のリソースを Terraform 管理下に置くことができます。
ただし、この方法では tfstate
ファイルは更新されますが、対応する .tf
ファイルは生成されないため、それらは手動で作成する必要があります。
例:
terraform import aws_instance.my_instance i-1234567890abcdef0
第三者ツール
terraformer
: Google Cloud Platform が提供するこのツールは、AWS など複数のクラウドプロバイダに対応しており、既存のリソースから Terraform コードを自動生成できます。terraform-aws-cdk
: AWS Cloud Development Kit (CDK) と Terraform の間での変換を助けるためのツールも存在します。aws2tf
: これは、既存の AWS 環境をスキャンして Terraform コードを生成するツールです。
これらのツールは、完全に自動化された解決策を提供するものの、生成されたコードが必ずしも「最適」であるとは限らない点に注意が必要です。
出力されたコードはレビューと調整が必要な場合があります。
注意: どの方法を使用するにしても、実行前には既存のリソースと新しく生成されるリソースが競合しないよう十分に確認してください。
また、コードを適用(terraform apply
)する前にプラン(terraform plan
)を確認することも重要です。