【Terraform】terraformer ~ 入門編 ~

■ はじめに

既存AWS環境をTerraformコードとしてエクスポートするツール
を探したら、terraformer があったので、メモ。

目次

【1】terraformer
【2】使用上の注意
 1)サポートしているTerraform version
【3】環境構築
 1)サポートOS
 2)前提条件
 3)インストール
【4】使い方
 1)初期化
 2)コマンド実行
【5】オプション
 1)--resources
 2)--filter

【1】terraformer

* 既存インフラからTerraformコードを生成するツール

https://github.com/GoogleCloudPlatform/terraformer

【2】使用上の注意

1)サポートしているTerraform version

* 古いTerraform versionしか動かないっぽい、、、

https://github.com/GoogleCloudPlatform/terraformer/tree/master?tab=readme-ov-file#capabilities

より抜粋
~~~~~~~
Support terraform 0.13 (for terraform 0.11 use v0.7.9).
~~~~~~~

【3】環境構築

1)サポートOS

* Linux
* Mac
* Windows

2)前提条件

* 以下がインストールされている必要がある
~~~~~
 [1] Terraform ... ★
 [2] AWS CLI

★:Terraform のversionも注意
詳細は「【2】使用上の注意」の「1)サポートしているTerraform version」を参照
~~~~~
 => 入っていない場合は、以下の関連記事を参照のこと

Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
AWS CLI ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/01/000000

3)インストール

https://github.com/GoogleCloudPlatform/terraformer?tab=readme-ov-file#terraformer-1
Linux

# export PROVIDER=aws
export PROVIDER=all
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64"
chmod +x terraformer-${PROVIDER}-linux-amd64
sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer

# 確認
terraformer -version
# e.g. version v0.8.24

【3】使い方

1)初期化

echo 'provider "aws" {}' > init.tf
terraform init

2)コマンド実行

terraformer import aws --resources=lambda --regions=us-east-2

【5】オプション

1)--resources

* 出力したいサービス
* サポートされているサービスは、以下の公式サイトを参照。

https://github.com/GoogleCloudPlatform/terraformer/blob/master/docs/aws.md#supported-services

# もしくは、以下のコマンドでも表示可能
terraformer import aws list

2)--filter

* フィルタリング

# 例1:EC2 の インスタンスIDで絞る
terraformer import aws --resources=ec2_instance --filter="Name=id;Value=i-0xxxxxxxxx" --regions=us-west-2

# 例2:EC2 の 名前で絞る
terraformer import aws --resources=ec2_instance --filter="Name=tags.Name;Value=Terraformer" --regions=us-west-2

参考文献

https://qiita.com/YK0214/items/9e5975cc3cb50192719e

関連記事

Terraform ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/04/05/000224
Terraform ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/12/09/222057
Terraform ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/05/03/000000
Terraform ~ AWS VPC
https://dk521123.hatenablog.com/entry/2024/06/22/221012
Terraform ~ AWS ECR ~
https://dk521123.hatenablog.com/entry/2023/05/23/002314
AWS CLI ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/12/01/000000