ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

手動で作った 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 を開けます。

マネジメントコンソールから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 も出して。

すると、以下のようにリソース一覧を読み取ってくれました。

Q Developerによるリソース読み取り結果

次に、読み取った内容を IaC 化するよう依頼しました。

今調べたリソースを IaC 化したい。まったく同じ設定を Terraform ファイルに落とし込んで。

すると、以下のように Terraform コードを生成してくれました。

Terraformコード生成結果1Terraformコード生成結果2Terraformコード生成結果3Terraformコード生成結果4Terraformコード生成結果5Terraformコード生成結果6

このように、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 に任せられるだけでも、作業のハードルはかなり下がると感じました。今後は、日々の調査やトラブルシューティングなど、他の場面でも積極的に使っていきたいと思います。


この記事がどなたかの参考になれば幸いです。

この記事は私が書きました

高橋 憲太

記事一覧

パーソル&サーバーワークスの高橋です。 猫も犬も好きです。

高橋 憲太

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。