1. はじめに
本記事は、Terraformおよびその関連のツール(GCP Terraformer)を使用して、AWSの既存のリソース情報を取得する方法について実機検証で調べたものです。
検証にあたっては、以下の環境を使用しています。
・Windows 11のパソコン(インターネット接続可能なオープンな環境)にTerraformをインストール済。
・AWS SDKをパソコンにインストール済。awsコマンドが実行可能
・choco をパソコンにインストール済。モジュールがダウンロード可能
・AWSのアカウントを所有し、VPC,Subnet,security_group,ec2がいくつか作成済
2.Terraformer
2.1 準備
2.1.1 terraformerのインストール
・Terraformerをインストール
Windowsキーから検索「CMD」でコマンド プロンプトを起動して、以下のコマンドでインストールします。Githubにもリリース情報がありますが、Defenderでブロックされる場合があり、chocoを使用するほうが簡単でした。
choco install terrformer

terraformerが実行可能かどうかを確認するため以下のコマンドでバージョンを表示します。
terraformer version
2.1.2 AWS構成
AWS側で、IAMユーザーを作成して、アクセスキーIDとシークレットアクセスキーを取得しておきます。
パソコン上でコマンドプロンプトを開き、以下のようにAWSの構成を行います。
aws configure
#取得したIAMユーザーのアクセスキーIDなど4つのパラメータを入力
AWS Access Key ID [****************t7UX]:
AWS Secret Access Key [****************EtWn]:
Default region name [ap-northeast-1]:
Default output format [None]: json
以下のコマンドで自分のアカウント情報がコマンドプロンプトに表示されれば次に進めます。
aws sts get-caller-identity
2.2 Importの実行
Terraformの作業用フォルダを作成します。
PowerShellのコマンドプロンプト画面を起動します。
Poweshell上で作業用フォルダに移動して、以下のコマンドを入力します。
引数(--resources)で、VPC、サブネット、EC2、セキュリティグループを指定します。
引数(--regions)で、取得対象のリソースのあるリージョンを指定します。
terraformer import aws --resources=vpc,subnet,ec2,sg --regions=ap-northeast-1
以下は正常に実行されている例です(画面の一部情報をマスクしています)

2.3 出力ファイル
取得した情報は、実行フォルダの下に"generated"というフォルダが作成され、その下に"aws"というフォルダが作成され、その下に"vpc"などリソース毎のフォルダが作成され、その下にtfのファイルが出力されています。

3. おわりに
今回の記事は以上になります。
閉域網での利用については、また別に解決すべき課題もありますが、それについてはまた別の記事で記載したいと思います。