背景
awsの手作業構築プロが多い環境だと開発するときに、一緒にIaC化を進めることができずあとからIaC化を行うパターンが多い。また、手順書を残してくれていない人もいるため、パラメータの設定などの詳細がわからないところなどが存在することがあった。
そのため、構築された環境を分析してTerraform化できないかを検討したときに、Terraform importなるものがあると教わったので、それを試してみようと思います。
Terraform importを利用して、既存のインフラをtfstateファイルに落とし込んでみる。。
まずは、terraformのコマンドが実行できるようにしておく。
- 作業するためのディレクトリを作成しておく。
- provider.tfを作成しておく。これがないと動かない。
cat provider.tf
provider "aws"{
region = "ap-northeaset-1"
}
次に、分析したいインスタスとインスタンス名を入れたファイルを作成してみる。
cat ec2.tf
resource "aws_instance" "<インスタンス名>"{
}
コマンド
terraform import aws_instance.<インスタンス名> <インスタンスID i-xxxxx>
上記環境と、コマンドによりtfstateファイルが作成されていることがわかる。
手動で建てたことがある環境と、Terraformで建てた環境のパラメータの違いなどを確認するときに使うことができそうだと思った。
あとは、tfstateファイルの中身を比較して、必要なパラメータを設定してインフラを構築してみる必要がある。