17
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2でAmazon Q Developer CLIを触ってみよう!

Last updated at Posted at 2025-07-05

こんにちは!
セゾンテクノロジーの青木です。

本記事は、
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を起動するのに必要な構成は以下となります。

名称未設定ファイル.drawio (1).png

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コンソールで作成したロールをクリックし、信頼関係 > 信頼ポリシーを編集 を選択します。

image.png

信頼ポリシーを以下に書き換えます。

信頼ポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

2. EC2インスタンスを起動する

今回は、Amazon LinuxをOSに設定します(デフォルト)。

image.png

その他の項目もデフォルトで問題ありませんが、ストレージのみ無料枠の最大容量である30GBに設定を変更します(デフォルトは8GB)。
デフォルトの8GBではAmazon Q Developerのインストールのための容量が不足し、エラーとなってしまいますのでご注意ください。

image.png

また、VPCやサブネット、SGはIGWに繋がる設定となっているものを選択してください。
すべて設定し終わったら、インスタンスを起動します。
起動が出来たら、EC2コンソールで作成したインスタンスを選択し、アクション > セキュリティ > IAMロールを変更 でインスタンスプロファイルを設定します。
image.png

1で作成したIAMロールを設定します。

3. EC2インスタンスに接続し、Amazon Q Developer CLIをインストールする。

参考:https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/command-line-installing-ssh-setup-autocomplete.html

EC2インスタンスへの接続は、EC2コンソールから行うことができます。
作成したインスタンスを選択し、「接続」ボタンを押下します。

image.png

「セッションマネージャー」タブで接続ボタンを押下し、接続します。

image.png

①EC2に接続出来たら、ターミナルが開きますので、以下を入力してtmpフォルダに移動します。

EC2
cd /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ファイルを解凍します。

EC2
unzip q.zip

④Amazpn Qをインストールします。

EC2
./q/install.sh

このとき、
「configの設定を変更するか?(しないなら手動でやってね)」
「どうやってログインするか?」
と聞かれるので、任意の回答を行います。

image.png

上記の回答(デフォルトから変更せず回答)であれば、Builder IDでログインするためのURLが表示されるため、クリックしてBuilder IDでのログイン・認証を行います。

⑤認証が許可されたら以下を実行してパスを通します。

EC2
echo 'export PATH="$HOME/.q/bin:$PATH"' >> ~/.bashrc

⑥~/.bashrc ファイルを再読み込みして、設定を反映させます。

EC2
source ~/.bashrc

⑦以下を実行して、バージョンが表示されたらインストール完了です!

EC2
q --version

⑧Amazon Q Developerを起動します。

EC2
q chat

以下のような画面が出れば成功です!
これ以降はチャット形式で、自然言語を使って会話することができます。

image.png

2回目以降は、⑥と⑧だけでAmazon Q Developerを起動することができるようになります。

「このアカウントの「aoki-test」にあるリソースの一覧を出してください。これ以降は日本語で返答してください。」という適当な指示にもばっちり回答をくれます。
image.png

応用編

他アカウントに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を追加する

EC2
vi  ~/.aws/config

profile名:任意
role_arn:ターゲットアカウントに作成したIAMロールのARN
credential_source:Ec2InstanceMetadata
画像1.png

ここまで設定して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にご注目ください!

17
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?