こんにちは!
セゾンテクノロジーの青木です。
本記事は、
2025 Japan AWS Jr. Champion Qiitaリレー夏
記念すべき1日目の記事となります!
Jr. Championsによって、今後もたくさんの記事が投稿されていくと思いますので、お楽しみにしていてください。
Amazon Q Developerとは
Amazon Q DeveloperはAWSが提供するAIアシスタントツールです。
Amazon Q Developer は、生成人工知能 (AI) を活用した会話アシスタントであり、 AWS アプリケーションの理解、構築、拡張、運用に役立ちます。 AWS アーキテクチャ、 AWS リソース、ベストプラクティス、ドキュメント、サポートなどについて質問できます。
引用:https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/what-is.html
IDEにプラグインをインストールしたり、コマンドライン(CLI)にインストールすることで使用が可能です。
Amazon Q Developer for CLIを使用することにより、ターミナル環境内でも自然言語での会話、質問等をチャット形式で行うことができます。
今回やりたいこと
OSをLinuxに設定した状態でEC2を立ち上げ、その中にAmazon Q Developer CLIをインストール・セットアップし、環境内のリソース構成について読み取りをしてもらいます。
また、応用編として、権限を与えて他のAWS環境へのアクセス・システム構成の読み取りを行います。
どうしてEC2上に構築?
Amazon Q Developer CLIはmacOS および特定の Linux 環境にしかインストールすることはできません。
Windows OS上で使用したい場合は、WSL等を使ってLinux環境を作り出す必要があります。
しかし、WSLは弊社都合により簡単には使用できない・・・
⇒ EC2上であればLinux環境をすぐに作り出すことができる、ということでEC2上への構築を決定しました。
構成図
Amazon Q Developer CLI 構築のためのEC2を起動するのに必要な構成は以下となります。
EC2インスタンスへはSyatems ManaerのSession Manager(SSM)接続を行い、Amazon Qインストールをインターネット経由で行うためNATGW・IGWを作成しています。
EC2で生成したファイル等をS3で保存します。
※本記事ではEC2インスタンス以外のリソースの設定についての詳細は省略いたします
1. インスタンスプロファイルを設定
インスタンスプロファイルとは、EC2に付けるIAMロールのことを指します。
IAMのコンソールに移動し、以下の設定でIAMロールを作成します。
- 信頼されたエンティティを選択:AWSのサービス
- ユースケース:EC2
- 許可ポリシー
- ReadOnlyAccess(絞り込み機能を「AWS管理 – ジョブ機能」に設定すると表示されます) ⇒ 今回はAmazon Q Dveloperで構成図の作成を行いたかったため、ReadOnlyをつけています。やりたいことに合わせてお好みでカスタムしてください😊
- AmazonEC2FullAccess
- AmazonS3FullAccess
- AmazonSSMManagedInstanceCore ⇒ EC2へのSSM接続に必須となる権限です。
IAMロールの作成ができたら、IAMコンソールで作成したロールをクリックし、信頼関係 > 信頼ポリシーを編集 を選択します。
信頼ポリシーを以下に書き換えます。
信頼ポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
2. EC2インスタンスを起動する
今回は、Amazon LinuxをOSに設定します(デフォルト)。
その他の項目もデフォルトで問題ありませんが、ストレージのみ無料枠の最大容量である30GBに設定を変更します(デフォルトは8GB)。
デフォルトの8GBではAmazon Q Developerのインストールのための容量が不足し、エラーとなってしまいますのでご注意ください。
また、VPCやサブネット、SGはIGWに繋がる設定となっているものを選択してください。
すべて設定し終わったら、インスタンスを起動します。
起動が出来たら、EC2コンソールで作成したインスタンスを選択し、アクション > セキュリティ > IAMロールを変更 でインスタンスプロファイルを設定します。
1で作成したIAMロールを設定します。
3. EC2インスタンスに接続し、Amazon Q Developer CLIをインストールする。
EC2インスタンスへの接続は、EC2コンソールから行うことができます。
作成したインスタンスを選択し、「接続」ボタンを押下します。
「セッションマネージャー」タブで接続ボタンを押下し、接続します。
①EC2に接続出来たら、ターミナルが開きますので、以下を入力してtmpフォルダに移動します。
②インターネット経由でAmazon Q Developerのパッケージをダウンロードします。
EC2
curl --proto '=https' --tlsv1.2 -sSf "https://desktop-release.q.us-east-1.amazonaws.com/latest/q-x86_64-linux.zip" -o "q.zip"
③zipファイルを解凍します。
④Amazpn Qをインストールします。
このとき、
「configの設定を変更するか?(しないなら手動でやってね)」
「どうやってログインするか?」
と聞かれるので、任意の回答を行います。
上記の回答(デフォルトから変更せず回答)であれば、Builder IDでログインするためのURLが表示されるため、クリックしてBuilder IDでのログイン・認証を行います。
⑤認証が許可されたら以下を実行してパスを通します。
EC2
echo 'export PATH="$HOME/.q/bin:$PATH"' >> ~/.bashrc
⑥~/.bashrc ファイルを再読み込みして、設定を反映させます。
⑦以下を実行して、バージョンが表示されたらインストール完了です!
⑧Amazon Q Developerを起動します。
以下のような画面が出れば成功です!
これ以降はチャット形式で、自然言語を使って会話することができます。
2回目以降は、⑥と⑧だけでAmazon Q Developerを起動することができるようになります。
「このアカウントの「aoki-test」にあるリソースの一覧を出してください。これ以降は日本語で返答してください。」という適当な指示にもばっちり回答をくれます。
応用編
他アカウントにassume roleして他アカウントのリソース情報を見てみる
①ターゲットアカウントにてソースアカウント(Q Developerを実行するアカウント)からのassume roleを許可し、ReadOnly権限を付与するIAMロールを作成します。
IAMロール設定(ターゲットアカウント)
1-1. IAMロール作成画面から、AWSアカウント > 別のAWSアカウント を選択し、ソースアカウントのアカウントIDを記入
1-2. 許可ポリシーをReadOnlyAccessに設定
1-3. ロールを作成し、信頼ポリシーを以下に編集
信頼ポリシー
"{
""Version"": ""2012-10-17"",
""Statement"": [
{
""Effect"": ""Allow"",
""Principal"": {
""AWS"": ""ソースアカウントのロールのARN""
},
""Action"": ""sts:AssumeRole"",
""Condition"": {}
}
]
}"
②ソースアカウントにて、ターゲットアカウントIDへのassume roleを許可するインラインポリシーを追加
インラインポリシー(ソースアカウント)
インラインポリシー
"{
""Version"": ""2012-10-17"",
""Statement"": {
""Effect"": ""Allow"",
""Action"": ""sts:AssumeRole"",
""Resource"": ""ターゲットのIAMのARN""
}
}"
③EC2に戻り、以下を実行してasuume roleのための権限があることを確認する。
EC2
aws sts get-caller-identity
④以下を実行してprofileを追加する
profile名:任意
role_arn:ターゲットアカウントに作成したIAMロールのARN
credential_source:Ec2InstanceMetadata
ここまで設定してAmazon Q Developerを再度起動し、
「”(設定したprofile名)”profileを使用してアカウントID「(ターゲットアカウントID)」のサブネット「subnet-~~~~」内のリソース一覧を出力してください。これ以降は日本語で回答して下さい。」
的な指示を出すことにより、ターゲットアカウントの情報を確認して教えてくれたりします。
このように、Linux環境やmac環境の確保が難しくても、EC2でお手軽にAmazon Q Developerを試すことができますので是非試してみてください(^O^)/
以上、EC2を使ったAmazon Q Developerの起動設定と軽い使い方の解説でした。
ここまでお読みいただき、ありがとうございました!
2025 Japan AWS Jr. Champions Qiitaリレー夏では、明日も新ジュニチャンによるQiita記事が投稿されるかと思いますので、Japan AWS Jr. ChampionsのOrganizationにご注目ください!
Views: 0