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)以上の購入が必要となりますので、ご注意下さい。
レポートは以上となります。
Amazon Qは色々なサービスと統合されていますが、CodeCatalystのデモは中々インパクトがあり、まだ成長中ではあるものの、将来的に開発者を助けるための有効なツールになると思われました。
また、CodeCatalystを使わなくても、CodeWhispererで同じ機能を試せますし、主要IDEにも対応できているので、間口は広いかと思います。引き続き、実運用に耐えるかどうかを調査して行きたいと思います。
早く日本語の対応がされると良いですね!ありがとうございました。
RECOMMEND
その他のコラム
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。