- 公開日
- 最終更新日
手動で作った AWS リソースを Amazon Q に読ませてIaC化する
この記事を共有する
目次
こんにちは、パーソル&サーバーワークスの高橋です。
今回は、手動で作成した AWS リソースを Amazon Q Developer に読み取らせて、IaC(Terraform)化を行ってみました。
Amazon Q とは
Amazon Q は、AWS が提供する生成 AI アシスタントです。大きく分けて2つの系統があります。
| 種類 | 用途 |
|---|---|
| Amazon Q Developer | 開発・運用を支援する AI アシスタント。コード生成やレビューに加え、AWS リソースの調査や操作、AWS に関する質問対応まで幅広くこなす |
| Amazon Q Business | 社内ドキュメントを対象にした業務向け AI アシスタント |
今回使うのは Amazon Q Developer(以降は Q Developer) です。
Q Developer は、AWS リソースの調査、コスト・請求の分析、CloudWatch アラームや異常の原因調査などのトラブルシューティング、AWS の知識・ベストプラクティスの提供、コードの生成などを行えます。
なお、今回使う範囲は Q Developer の無料枠(Free Tier)で利用できます。マネジメントコンソールでは、下の画像の赤枠のアイコンから Q Developer を開けます。

はじめに
現場では「まずコンソールで手を動かして検証し、動くと分かってから IaC 化する」という流れがよくあります。私自身、手動でリソースを作成した後に IaC へ落とし込む作業に少し手間を感じていました。
そこで今回は、手動で作成したリソースを Q Developer に読み取らせ、Terraform コードに落とし込んでもらいます。
手動で作ったリソース
今回、手動で作成したリソースは以下の6つです(VPC / サブネット / インターネットゲートウェイ / ルートテーブル / セキュリティグループ / EC2)。
| # | リソース | Name タグ | 主な設定値 | リソースID |
|---|---|---|---|---|
| 1 | VPC | q-cfn-handson-vpc | CIDR 10.20.0.0/16 / DNS 有効 | vpc-0bfeff8139de28e7a |
| 2 | サブネット | q-cfn-handson-public-subnet | 10.20.1.0/24 / AZ ap-northeast-1a / 自動パブリックIP 有効 | subnet-0a35f7ed045eeb2e1 |
| 3 | インターネットゲートウェイ | q-cfn-handson-igw | VPC にアタッチ | igw-0d07fc73114539073 |
| 4 | ルートテーブル | q-cfn-handson-public-rt | 0.0.0.0/0 → IGW / サブネット関連付け | rtb-0a6f7897b080f2939 |
| 5 | セキュリティグループ | q-cfn-handson-web-sg | インバウンド TCP 80 を 0.0.0.0/0 から許可 | sg-0a6405db29aef37ee |
| 6 | EC2 | q-cfn-handson-web-server | t3.micro / Amazon Linux 2023 / SSM 接続(キーペアなし) | i-08a3b3671222d0ee2 |
共通設定
- リージョン: ap-northeast-1
- 全リソースに
Project = q-cfn-handsonタグを付与
検証
まず、Q Developer に次のように依頼しました。
ap-northeast-1 リージョンで、タグ Project=q-cfn-handson が付いたリソースを調べて。VPC・サブネット・インターネットゲートウェイ・ルートテーブル・セキュリティグループ・EC2 の構成を一覧にまとめて、それぞれのリソース ID も出して。
すると、以下のようにリソース一覧を読み取ってくれました。

次に、読み取った内容を IaC 化するよう依頼しました。
今調べたリソースを IaC 化したい。まったく同じ設定を Terraform ファイルに落とし込んで。
すると、以下のように Terraform コードを生成してくれました。






このように、Terraform コードとして出力してくれました。
なお、Terraform 化だけでなく CloudFormation のテンプレート化にも対応しています。
検証結果・感想
Q Developer でリソースを読み取り、その設定をそのまま Terraform コードとして出力できました。手作業で調べて書き起こしていた部分を任せられるので、これまで Q Developer を十分に活用できていなかったと感じました。
実際に使ってみて、特に良かった点は以下です。
| 良かった点 | 内容 |
|---|---|
| 調査が一瞬で終わる | タグを指定するだけで、複数リソースの構成と ID をまとめて読み取ってくれる。マネジメントコンソールを何画面も行き来する手間がなくなった |
| 実値がそのまま反映される | CIDR や AZ、ポートといった値を、読み取った実際の設定に合わせてコード化してくれるので、値の写し間違いが起きにくい |
| IaC ツールを選べる | 同じリソースを Terraform でも CloudFormation でも出力できる。普段使っている IaC に合わせて頼めるのが便利 |
また、今回はコードを出力させるところまでを Terraform で試しましたが、応用として CloudFormation でも同じリソースをテンプレート化し、実際に IaC 管理下へ移行するところまで行ってみました。
CloudFormation には既存リソースを新規作成せずにスタックへ取り込む「リソースのインポート」機能があり、インポート対象には DeletionPolicy: Retain の指定が必須です。この属性を付けたテンプレートを Q Developer に生成してもらい、手動で作成したリソースをそのまま CloudFormation の管理下に取り込むことができました。「コードを出力して終わり」ではなく、既存リソースを IaC 管理へ移行するところまで到達できたのは、今回の一番の収穫でした。
手動で作ったリソースを後から IaC 化する作業は、地味ながら手間のかかる工程です。その「調べる・書き起こす」部分を Q Developer に任せられるだけでも、作業のハードルはかなり下がると感じました。今後は、日々の調査やトラブルシューティングなど、他の場面でも積極的に使っていきたいと思います。
この記事がどなたかの参考になれば幸いです。
この記事は私が書きました
高橋 憲太
記事一覧パーソル&サーバーワークスの高橋です。 猫も犬も好きです。