COLUMN

【AWS re:Invent】Amazon Q: Your new assistant and expert guide for building with AWS (DOP228-new)

こんにちは、中村です。

12/1のBreakout session、Amazon Q: Your new assistant and expert guide for building with AWS (DOP228)のレポートをお送りします。

AWS Certification Lounge.

今回のRe:Inventは随所にGenerative AIが散りばめられており、大体どのセッションも最後にBedrock等との連携や統合が紹介されていました。

Amazon Qの紹介後は更にそれが増え、Amazon Qに絡んだセッションはどれも行列を為していました。

事前にセッションの予定を組んでしまっていたのと、同行者がAmazon Qのセッションに積極的に参加していたので、今回はセッションの参加を見送ろうかと思っていたのですが、運良くそれっぽいセッションを見つけました。

Amazon Qに関わらず、新機能の発表後、動的にセッションが追加されることがあります。AWS Eventsアプリから「New Launch」をチェックすることで、新規のセッションをフィルタできます。

というわけで、見つけたセッションがこれです。

題名が「Coming soon」になっていたりと、殆どの情報は隠されていますが、セッションのprefixと、Topicからある程度の予測はできます。

一部を紹介すると (Watch on demand

prefix
AIM AI/ML
ANT Analytics
ARC Architecture
BIZ Business Apps
COP Cloud Operations
CMP Compute
DAT Databases
DOP Developer Productivity & DevOps
IOT IoT & Robotics

等があります。例えばCOP〜であれば運用系のセッションが期待出来ます。

prefixがDOP、AI/MLと書いてあったので、開発者としてはかなり期待の持てるセッションだなと思い、見当を付けてセッションを予約しました。

翌日、情報が開示されて、このようになっていました。

貴重なAmazon Qのセッションに参加することができました!

DOP228-NEW:Amazon Q: Your new assistant and expert guide for building with AWS (DOP228)

Session Level:200(Intermeditate)

Amazon Q:開発のためのアシスタント・エキスパート

開発業務に、どのようにAmazon Qが力を発揮するのかのセッションとなっています。

これまでの他のセッションでも、Amazon Qは既存の機能の強化や、新機能としての紹介がありました。

AWS製のコード支援と言えばCodeWhispererです。

GitHub Copilot等のコード支援に対して若干劣勢だった感がありますが、Amazon Qを組み合わせてどのような進化を遂げるのか、興味深い所です。

アジェンダ

1. Amazon Qの概要

2. Amazon Qの性能

3. 開発者の日常で発揮されるAmazon Qの機能デモ

4. Amazon Qの始め方

Amazon Qの概要

Amazon Qは、ChatGPTのようなLLMで、AWSのサービスとより統合されています。

サービスの開始や、AWSの専門知識(ナレッジ)、コードやコンテンツ等の開発業務、日常の運用ワークロードの改善に繋がります。

QuickSightやAmazon Connectとの統合で、迅速なダッシュボードの作成や、コンタクトセンターでの対応の仕方や解答例をアシストします。

Aws Supply Chainとの統合では、在庫についての洞察を得て、推奨するアクションを提示します。

ここからは、開発者向けのQの機能に焦点を合わせて説明します。

250人のエンジニアのデータを3ヶ月に渡って分析した所、1日辺りのコーディングの時間は52分でした。

本当はもっとコーディングを行いたいのに、異なる作業があり、それを行えません。何故でしょうか?

大別すると調査・設計・開発(コーディング)、テスト、運用のフェーズに分かれており、コーディングの時間はその一部に過ぎないことが分かります。

スピーカの方も、調査が一番嫌いだと言っていました・・

  • Research(調査)

複数サービスの連携調査や、新規ソリューションの調査、AWSドキュメントチェック、技術ブログチェック

  • Dedign(設計)

コード・設計についての洞察を得て、機能を満たすためにどのような変更が必要か、決定する

  • Develop(コーディング)

設計をコードに落として、プログラミングする

  • Test(テスト)

プログラミングが要件を満たしているか、動作を確認し、トラブルシュートする

  • Maintain

継続的に依存性の調査、更新や、コードレビューを行う

これだけの業務があると、コーディングと呼ばれる時間は本当に一部になってしまう、というのが理解できると思います。

Amazon Qの性能

このような状態に対して、Amazon Qが開発アシスタントとしてチームに参加することでチームの強化や開発効率の向上に貢献し、開発体制というものが大きく変革できるのではないか、と言っています。

情報の検索(17年分のAWS BlogやSDK、API Document)、コード作成、レビュー、テストに至るまで、Amazon Qが支援を行うことができます。

開発で言えば、コードのリファクタ、テストの作成、更には開発者の一員として加わり、Issueからコードを生成し、Pull-Requestを行う所まで進めることもできます。

Amazon Qは様々な場所で使用可能です。VSCode,JetBrainsのIDEとも連携して使用可能です(CodeWhispererのPeofessional Tier ($19/Month)が必要になります)

CodeCatalyst、CodeWhispererの性能強化についても説明がありました。

CodeWhispererはコード支援ツールですが、Amazon Qとの連携により、コード一部の支援から、コード全体を出力できるようになりました。また、CDKのサポートを行い、複合的な言語のコンテンツも生成できるようになっています。

CodeCatalystは課題管理からソースリポジトリ、クラウド開発環境、CIまで含まれた統合開発サービスです。Amazon Qは一人の開発メンバーのようにプロジェクトに加わり、割り当てられたIssueに基づいてコード開発を行い、Pull-Requestを生成します。

開発者の日常で発揮されるAmazon Qの機能デモ

Python,TypeScript,Javaで書かれた多層アプリケーションのプロジェクトに開発者が参加し、開発を行う中で、Amazon Qがどのように業務を効率化できるかのデモを行いました。

幾つか、気になったセクションをピックアップします。

AWSに不慣れな開発者は、「S3」が解らないため、Amazon Qに質問を行い、サービスの概要について回答を得ています。

また、Javaで機能実装を行うための手法、コード、関連情報が提供されます。

VSCodeの拡張機能の中からCodeWhispererを通してAmazon Qにアクセスし、JavaやCDKのコードや、洞察を得ることもできます。現在開いているソースファイルに基づいて、Amazon Qが最適な回答を返します。

また、前後の会話の内容を推測して回答する点も、生成AIのメリットがよく現れています。

また、feature developmentと呼ばれる新しい機能についても紹介がありました。 これはプロンプトを通して、Amazon Qに直接コードを修正させる機能です。 Amazon Q feature development

課題を提示すると、Amazon Qはリポジトリの概要を把握し、設計方針を提示します。

また、code generation はfeature developmentの未公開機能となりますが、設計方針に同意した場合、Amaozn Qは許可された手法でコードを生成し、修正します。

実際にAmazon Qにより、コードの更新と、テストコードが生成され、IDEに差分として表示されました。

意図と異なる部分については、プロンプトに新しい指示を与えることで、再度修正を行うことができます。

CodeCatalystはfeature developmentが統合されており、CodeWhispererを使わずに機能追加を行うことが可能です。なお、この機能を使用する場合、対象となるCodeCatalystのSpace単位で、Generative AIの使用を許可する必要があります。

CodeCatalystのIssueを作成します。

題名、及び内容に、feature developmentのプロンプトで示したような概要と詳細を記載し、AsigneeにAmazon Qを割り当てます。

CodeWhispererのプロンプトでの応答の代わりに、CodeCatalystのコメント欄が使用され、設計方針についての確認が行われます。

また、CodeWhispererで未公開だった、feature developmentのcode generationは内部で使用されており、修正コードのコミットと、Pull-Requestの作成が行われます。 意図と異なる部分については、コードにレビューコメントを追加して新しい指示を与えることで、再度修正を行うことができます(現時点では、修正は1度のみのようです)

必要であれば開発者がこのコミットに手を加え、コードを修正することも可能です。

東日本でも調査を行い、CodeCatalystでAmazon QにIssueを割り当ててみました。 不安定な部分もあるものの、簡易な修正であれば、独り歩きして、自分でPull-requestを出す所まで確認出来ています。中々新鮮味のある動きでした。

最後に、Lambdaのエラーのトラブルシュートのデモがありました。

テスト実行に失敗するLambda関数があり、エラーログが表示されます。 今回はbedrockのinvokeに失敗し、AccessDeniedExceptionが発生しています。このログを「Troubleshoot with AmazonQ」ボタンを押すことで、AmazonQが原因調査を行います。

原因調査と、解決の為の手順を示しています。

デモでは、このLambdaはCDKで作成されていた為、開発者が通常のCodeWhispererの機能を使用し、コードの修正を行いました。 原因調査から解決まで、2分程度のデモとなっていました。

以上で、開発者デモは完了です。

Amazon Qの始め方

Amazon Qには2つのプランがあり、一般利用のBusinessと、開発者利用のBuilderが存在します。

このセッションは、主にBuilderプランを紹介していました。 Amazon Qは執筆時点でプレビューであり、2024年3月まで無料ですが、今回紹介したfeature deployment等の幾つかの機能は、19 USD/MonthのCodeWhisperer Professional Tierの購入が必要です。

What is Amazon Q (For AWS Builder Use)?

また、Amazon CodeCatalystについても、Pull-Requestの生成はStandard Tier($4 per active user)以上の購入が必要となりますので、ご注意下さい。

Get started for free

レポートは以上となります。

Amazon Qは色々なサービスと統合されていますが、CodeCatalystのデモは中々インパクトがあり、まだ成長中ではあるものの、将来的に開発者を助けるための有効なツールになると思われました。

また、CodeCatalystを使わなくても、CodeWhispererで同じ機能を試せますし、主要IDEにも対応できているので、間口は広いかと思います。引き続き、実運用に耐えるかどうかを調査して行きたいと思います。

早く日本語の対応がされると良いですね!ありがとうございました。

ページ上部へ戻る

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。