Amazon Q Dveloper Proを単一AWSアカウント環境で契約する

Amazon Q Developer Proの機能を使用したい場合は有償のサブスクリプション契約が必要です。
Amazon QはIAM Identity Centerとの統合が必要ですが、例えばIAM Identity Centerの組織インスタンスは管理アカウントでコントロールするため、メンバーアカウントでAmazon Q Developer用のユーザー管理を自由に行うことが出来ません。
IAM Identity Centerのアカウントインスタンスであれば単一AWS環境(メンバーアカウント or 個人のAWSアカウント)内でAmazon Q Developer用のユーザーを管理できます。
本手順では以下のような前提でAmazon Q Dveloper Proを契約する方法を備忘録として残します。

前提
-------------------
以下のようなケースに該当する方でQ Developer Proを試してみたい方向けの手順です。

- Organization環境下のメンバーアカウント
- 非Organization環境の単一AWSアカウント

本手順は非Organization環境下の単一AWSアカウント(例：個人で契約しているAWSアカウント)前提で作業をします。
リージョンはus-east-1です。

制限
-------------------
本手順ではIAM Identity Centerのアカウントインスタンスを使用するため、AWSマネジメントコンソール上でAmazon Q Developer Proの機能を使用することは出来ません。
IDE(VS Code等)経由でAmazon Q Dveloper Proを使用することが出来ますので、VS Codeでの利用前提で本記事を作成しています。
全機能を利用したい場合は、IAM Identity Centerの組織インスタンスが必要です。組織インスタンスが存在しない場合は新規セットアップ、既に存在している場合は組織インスタンスの管理者への相談を検討してください。


IAM Identity Centerのアカウントインスタンスを作成
-------------------
Amazon Qのページを開くと以下のようにIAM Identity Centerの作成を促されます。
[Create account instance]をクリックするとアカウントインスタンスが自動で作成されます。

![スクリーンショット 2024-12-09 15.31.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/059dfde4-462f-0ea9-6197-2ae417855d7d.png)

アカウントインスタンスを作成できました。
この画面のまま次の手順に進みます。

![スクリーンショット 2024-12-09 15.39.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/777c9a8e-54a0-e463-e5fd-911a17d4866a.png)


IAM Identity Center用のマネージドアプリケーションを設定
-------------------
Amazon Q Developer用のマネージドアプリケーションを設定します。
アカウントインスタンス作成後の画面をそのまま下にスクロールして[Subscribe]をクリックします。

![スクリーンショット 2024-12-09 15.44.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/39c2eb82-1f50-5bb5-24c5-d60e7f0a260f.png)

Amazon Q Developer用のマネージドアプリケーション作成を促されますので[Create application]をクリック。
![スクリーンショット 2024-12-09 15.44.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/1a6dd2b4-2db8-0172-21ed-a58f345388ef.png)

別窓でIAM Identity Centerを開いてマネージドアプリケーションが作成されていることを確認します。

![スクリーンショット 2024-12-09 16.21.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/9818f6b2-f765-1443-5346-1f23b4bde48d.png)


Amazon Q Developer Pro用のグループを作成
-------------------
IAM Identity CenterでAmazon Q Developer Pro用のグループとユーザーを作成します。
単一ユーザーの場合はグループの作成は任意です。
以下の要領でグループを作成します。

![スクリーンショット 2024-12-09 16.24.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/a9473e3a-c7a2-0186-6c1a-34befd8fe7ce.png)

![スクリーンショット 2024-12-09 16.25.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/4f443b2d-0ef3-e98e-082c-70692c568905.png)

![スクリーンショット 2024-12-09 16.28.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/15cb80e9-c767-33c7-50de-0a425699f787.png)

Amazon Q Developer Pro用のユーザーを作成
-------------------
続いてユーザーを作成します。

![スクリーンショット 2024-12-09 16.29.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/827f5b66-19c6-e43b-7680-aa2246d0df01.png)


必要な情報を入力します。
任意欄は空欄でもOKです。
![スクリーンショット 2024-12-09 16.32.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/e13d4b84-9920-44e3-ce37-57e0d97a4fb9.png)


作成したグループを選択します。
![スクリーンショット 2024-12-09 16.34.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/a89c1cc1-d9b4-0dbe-9b59-8da0ae9d9287.png)

作成内容に問題がなければ[ユーザーを追加]
![スクリーンショット 2024-12-09 16.34.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/9a23472f-c87f-300d-8efb-63ab23831b6f.png)

作成後は選択した選択したパスワード方式に沿ってアカウントを有効化してください。
ユーザー作成時にEメール送信を選択した場合は、指定したメールアドレス宛にパスワード設定用のリンクが送信されます。
![スクリーンショット 2024-12-09 16.37.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/e8e89dc1-b293-fe54-3f47-0f48e5f2b274.png)


Amazon Q Developer Proのサブスクリプションを購入
-------------------
いよいよサブスクリプションを購入します。
Amazon Qの画面に戻りAmazon Q Developer ProをSubscribeします。

![スクリーンショット 2024-12-09 19.06.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/5f1da019-12f4-fbc6-9fa3-6ad222212c33.png)

サブスクリプションを割り当てるグループまたはユーザーを選択します。
注意点として、ユーザーを選択する場合は名前(First name)で検索する必要があります。
アカウント名やメールアドレスで検索しても選択できない点は不便ですね・・・（地味にハマりました）

![スクリーンショット 2024-12-09 19.09.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/72fa0ae6-fd0f-69ba-5da8-e732384f3f62.png)

ユーザー選択して[Assign]をクリックすると購入が完了です。
![スクリーンショット 2024-12-09 19.09.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/4bc69c39-04df-ba92-ad87-e132f2ea8203.png)

Subscriptionsにも表示されました。
実際にAmazon Q Dveloper Proの機能を使用するまでは課金されません。
※この状態で数日放置しましたが、課金は発生していません。
![スクリーンショット 2024-12-11 9.43.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/019e82bd-d90b-b4d2-ca75-4d609be9457e.png)


動作確認
-------------------
それではAmazon Q Dveloperを試してみます。
VScodeにAmazon Qの拡張機能をインストールします。公式ドキュメントは[こちら](https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/q-in-IDE-setup.html)。

Amazon Qのログイン画面から[Use with Pro license]をクリックしてログインします。
![スクリーンショット 2024-12-11 9.52.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/f33d3842-4564-ec07-69c1-99251ba7edbc.png)


Start URLはIAM Identity Centerダッシュボードの[AWS access portal URL]をコピペします。
![スクリーンショット 2024-12-11 9.57.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/4f9fa74a-9aea-2cdc-ce7e-62a3b1ab7544.png)


別窓のブラウザで起動したログインポータルからサブスクリプションを割り当てたユーザーで認証します。
![スクリーンショット 2024-12-11 10.03.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/276d49d5-769b-e4ba-6e96-393f55106181.png)

[アクセスを許可]します
![スクリーンショット 2024-12-11 10.05.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/1ec62e17-3a64-ed71-5e16-ad1a42c0f2ef.png)

これでVSCodeから利用可能になりました。
![スクリーンショット 2024-12-11 10.06.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/f86f3588-9ea4-51d8-78dc-7f1b4c82ed63.png)

VSCodeでAmazon Q Developerのチャット欄が利用可能になりました。
![スクリーンショット 2024-12-11 10.10.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193020/f141cd10-e435-625e-273d-a37e6ff61e74.png)


さいごに
-------------------
2024年12月時点で日本語未対応のため、英語に不慣れな方にはやや利用のハードルが高い印象です。
re:InventでもAmazon Q Dveloperの機能アップデートが複数ありましたので、今後の複数言語対応に期待です。