terraformerを使ってEC2の状態を出力


はじめに

terraformerを使用すれば、tfファイルを自動生成出来るらしいので、事前に作成したEC2をterraformerを使ってtfファイルを作成してみます。

terraformerのバージョン

今回は下記のバージョンで試します。

バージョン
v0.8.6

事前準備

terraform init

import実行前に、任意のディレクトリにプロバイダ(今回だとAWS)の指定をしたファイル記載し、terraform initを実施しておきます。

リージョンは東京を指定しています。

provider.tf
provider "aws" {
  region = "ap-northeast-1"
}

terraform initを実施して、Terraform has been successfully initialized!が出力されればOKです。

EC2の作成

EC2を手動で作成しておきます。今回はこの手動作成したEC2を対象にtfファイルを出力します。

terraformerでtfファイルを出力

いよいよteraformerコマンドを使用してtfファイルを出力します。
--filterオプションで今回手動作成したEC2のインスタンスIDを指定します。

# terraformer import aws --regions=ap-northeast-1 --resources=ec2_instance --filter=aws_instance=i-0c66432a3385efebd
2021/03/15 09:44:39 aws importing region ap-northeast-1
2021/03/15 09:44:39 aws importing... ec2_instance
2021/03/15 09:44:44 Refreshing state... aws_instance.tfer--i-002D-0c66432a3385efebd_
2021/03/15 09:44:45 aws Connecting....
2021/03/15 09:44:45 aws save ec2_instance
2021/03/15 09:44:45 aws save tfstate for ec2_instance

成功すればgeneratedディレクトリが作成されます。中身はこうなってます。

generated
   └── aws
       └── ec2_instance
           └── ap-northeast-1
               ├── instance.tf
               ├── outputs.tf
               ├── provider.tf
               └── terraform.tfstate

現在の状態が記載されてるterraform.tfstateの他にinstance.tfなどのファイルも作成されます。このinstance.tfprovider.tfファイルを別のところに持っていってapplyすれば同じ構成のものを作成することも出来ます。

終わりに

instance.tfファイルには最低限必要なステータス以外にも様々な情報が記載されています。管理する必要のない情報が大量にあると管理がしづらくなるので、不要なステータスは削除して使いましょう。