【はじめに】
過去にもコマンドでVPCの情報を取得し、AIを使ってdraw.ioで使用できる構成図を作ろうとしたことがあったのですが、その時は一つ一つ情報を取得するためのコマンドを用意したり、なんとか出力できてもAWSアイコンが古すぎ、もしくはAWSアイコンを使用してくれないなど、良い感じの構成図を作成することができませんでした。
今回は、社内で「Amazon Qを使用して構成図を作成できるらしい。」と聞いたので試してみました。
結論から言えば、以前よりも良い感じに、そして楽に作成することができたので、その手順を記します。
【環境や使用したもの】
- Mac
- AWS Builder ID
- Amazon Q CLI
- IAMユーザー(読み込み権限、CLI使用)
【Amazon Q CLIの設定】
Amazon Q CLIのインストールについては、以下の公式ドキュメントを参考に進めました。
コマンドライン用の Amazon Q をインストールする - Amazon Q Developer
上記公式ドキュメントの「コマンドライン用の Amazon Q をインストールする」より、Mac OS用のAmazon Qをダウンロード。
ダウンロードした.dmgファイルをダルクリックし、アプリケーションをアプリケーションフォルダへドラッグ。
アプリケーションフォルダで「Amazon Q.app」をダブルクリック。
「Get started」をクリック。
「Shell integrations」で「Install」をクリック。
「Sign in」をクリック。
※私の環境では表示されませんでしたが、通常はこの辺りで「AWS Builder ID」の入力になるらしいです。
※Pro licenseを使用する場合は、下を選択する。
ブラウザが立ち上がるので、「アクセスを許可」をクリック。
「Amazon Q」アプリが起動。
左メニューより、「Preferences」をクリック。
「Share Amazon Q content with AWS」、「Telemetry」をオフ。
※サービス改善のためのデータ使用などに関するもの。
左メニューより、「Integrations」をクリック。
「Terminal」の「Enabled」をクリック。
※「Enable」と表示されればOK。
これでAmazon Qの設定は、完了です。
「Integrations」については、ご自身の使いやすいものを選択してください。
都合上、ここでは、「ターミナル」を使用するものとして説明を続けます。
【IAMユーザーの作成】
次にAmazon Qに使用させるIAMユーザーを作成します。
AWSのIAMコンソールより、「ReadOnlyAccess」権限を持ったIAMユーザーを作成し、CLI用の「アクセスキー」、「シークレットキー」を取得。
Macの「ターミナル」にて以下のコマンドでプロファイルを作成し、「アクセスキー」、「シークレットキー」を保存する。
※「アクセスキー」、「シークレットキー」が平文で保存されるため、自己責任でお願いします。
※セキュリティーを意識するのであれば、SSOを使用した接続を行う方が望ましいです。
aws configure --profile (プロファイル名)
以下のコマンドで動作確認を行う。
aws sts get-caller-identity --profile (プロファイル名)
正常に動作しているのであれば、以下が表示されます。
- Account ID
- User ID
- ARN(IAMユーザーのARN)
確認後、VPCの情報をコマンドで取得。
※東京リージョンを指定しています。
# VPC一覧の取得 aws ec2 describe-vpcs --profile (プロファイル名) # 特定リージョンを指定する場合 aws ec2 describe-vpcs --region ap-northeast-1 --profile (プロファイル名)
ここまでが前準備のようなものです。
【VPC構成図の作り方】
「ターミナル」を開く。
作業用フォルダを作成し、移動する。
※この作業用フォルダ内にVPC構成図が出力されます。
mkdir test-folder cd test-folder
フォルダへの移動後、「q」と入力し、Amazon Qを起動する。
以下のようなプロンプトを入力し、実行する。
東京リージョンにあるvpcをdraw.ioで構成図にしてください。 プロファイル「(上記で作成したプロファイル名)」を使ってAWSの構成情報を取得してください。 使用するアイコンは、AWS2025を使用してください。
次のようなメッセージが表示された場合は、ご自身の都合に合わせて選択してください。
Allow this action? Use 't' to trust (always allow) this tool for the session. [y/n/t]:
上記の意味は、以下の通りです。
- y:一回限りのyes
- n:no
- t:同じセッション内であれば、以降はずっとyes
フォルダ内に出力された.drawio形式のファイルをdraw.ioで開く。
以上でdraw.ioで手動で編集が行えるVPC構成図が作成されたと思います。
プロンプト次第で必要な情報を追加したり、VPC以外に対しても構成図の作成が可能となります。
注意点としては、希望するアイコンやフォーマットがあるのであれば、細かく指示を行う必要があります。
私は、とにかく出力を行ってみたかったので簡単なプロンプトになっていますが、プロンプトは使い回せるので、気合いを入れて調整を繰り返すことをお勧めします。
以下は、上記のような簡単なプロンプトで出力されたものです。
※画像は、一部伏せ字にしています。
EC2などを使用していないVPCのため、内容はスカスカですが、実際に使用されているVPCであれば、EC2などのアイコンも表示されます。
【Amazon Q CLIの削除】
一通り試し、不要と感じたら「ターミナル」より、以下のコマンドを実行してください。
Amazon Q CLIが削除されます。
q uninstall
通常手順となるアプリアイコンの削除で消えるのかと思っていましたが、削除することができず、上記コマンドを見つけるのに少々時間がかかりました・・・。
【まとめ】
冒頭でも書きましたが、とにかく楽にVPC構成図の出力を行うことができました。
環境構築も手軽に行えるので、複雑なVPCの構成図を作成する必要があるのであれば、叩き台として出力を行い、draw.ioで修正を行うのも良いと思います。
今回は、VPC構成図を出力するために使用したAmazon Q CLIですが、他にもいろいろな使い方ができます。
例えば、「先月の請求金額を教えて。」や「DynamoDBで作成されているテーブル名を教えて。」などもしっかりと教えてくれます。
どれもコマンドで出力できる内容ですが、コマンドに詳しくなくても自然言語で問い合わせることができるのは、かなり良いと思いませんか?
【おまけ】
ゴールに辿り着くまでにやられたハマりポイント。
VS CodeのプラグインにもAmazon Qというのがあったので、最初にそちらを試したら、Pythonでプログラムを作成し始め、プログラムベースの構成図作成になってしまった。
同じAmazon Qでも全然違った・・・。
プロンプトに「使用するアイコンは、AWS2025を使用してください。」と入れなかった場合、以下のような文字と枠だけのAWSらしさの欠片もないVPC構成図が出力された。
※画像は、一部伏せ字にしています。