
関連するソリューション

業務改革

AI

マネージドサービス(運用・保守)
サイバー・セキュリティ・ソリューション部
テクニカルスペシャリスト 松岡 政之 
さて、アイスブレイクとして趣味の話を少し。5月21日に、開発コードネーム「Shimada Peak」と呼ばれていたCPU、AMD Ryzen Threadripper 9000シリーズがついに発表されました。このシリーズは、最大96コア192スレッドという驚異的な性能を持つモンスターCPUですが、一番気になるのはそのお値段です。
前回の7000シリーズでは、最上位の96コアモデルPro 7995WXが約180万円、Proモデルからメモリのチャンネル数やセキュリティ機能等を削った64コアの7980Xでも80万円以上しました。私自身、Ryzen Threadripper 3000シリーズを使用しているので、DDR5メモリへの切り替えも兼ねて久しぶりに新しいPCを組んでみたいと思っています。ただ、さすがに最上位モデルには手が出ませんが(笑)
Amazon Q DeveloperのGitHub統合について
それでは本題です。今回は、Amazon Q DeveloperのGitHub統合について検証してみたいと思います。最近、仕事でGitHubを使用する機会があり、AWSのリリースノートを見て興味を持ったので、ピックアップしてみました。
Amazon Q Developerとは?
Amazon Q Developerは、AWSのサービスの一つで、ChatGPTやCopilotのようにAIを活用して対話形式で質問に答える「Amazon Q」というサービスの派生ツールです。「Amazon Q」に関しては、AWSマネジメントコンソールの右上にあるAmazon Qのアイコンをクリックすると、アカウントを持っている方は誰でも無料で利用できます。
Amazon Q Developer は、このAmazon Qを応用したプログラミングのアシストツールです。Amazon Qと同様に質問に対して回答してくれるだけでなく、Visual Studio Code等のIDEと連携し、作成中のプログラムのコメントや前後の流れを基にコードを自動生成することも可能です。
GitHub統合
そんなAmazon Q Developerですが、2025年5月5日にGitHub上で利用できるようになりました。 現在はリリース前のプレビュー状態ですが、GitHubアカウントがあれば、制限はあるものの無料で利用することができます。というわけで、次はGitHub上で利用できるAmazon Q Developerの機能について軽くご紹介します。
GitHub上で利用できるAmazon Q Developerの機能
GitHub上で利用できるAmazon Q Developerの機能は、大まかに分けて以下の3つがあります。- Feature development(機能開発)
この機能は、ユーザの指示に従ってコーディングをしてくれるものです。リポジトリ上でイシューを作成することで、イシューへの記載内容に基づいて新しいコードが生成され、プルリクエストが作成されます。
- Code review(コードレビュー)
この機能は、ユーザが書いたコードをレビューし、指摘をしてくれます。新しいプルリクエストを作成するか、クローズされたプルリクエストを再度オープンすると、自動的にコードに対するフィードバックが提供されます。
- Code transformation(コード変換)
この機能はJavaに限定されており、Javaバージョン8、または11からバージョン17へのコードの変換を行います。
GitHab上での「Feature development」の検証
検証の観点
今回は、生成されたコードの詳細を細かく検証していくというより、全体的な使い勝手や生成されたものが容易に使えるものなのか。といった観点で検証していきたいと思います。GitHubへのAmazon Q Developerの導入
それでは、GitHubにAmazon Q Developerを導入していきます。導入方法はQuickstart に記載されています。まず、GitHubマーケットプレイスのAmazon Q Developerのページにアクセスします。開いたページを下の方にスクロールして「Install it for free」をクリックします。

次に、GitHubにサインインして、必要に応じて支払情報を入力後($0なので実際には請求はされません)、対象のリポジトリを選択して「Install」をクリックします。今回は、アカウントに作成済みのリポジトリがないため「All repositories」を選択します。

「Install」のクリック後、下記のようなGitHubのApplicationsのAmazon Q Developerページに遷移すればインストール完了です。導入自体は非常に簡単ですね。

「Feature development」を使ってみる
それでは、さっそくコードを生成してくれる「Feature development」を使ってみましょう。まずは、GitHubで対象のリポジトリで「Issues」を新規作成します。イシューの作成時には、以下2点に注意してください。- タイトルと内容が、Amazon Q Developerへの指示内容となるように記載(何をどのように作ってほしいのか)
- Labelsから「Amazon Q development agent」を選択(これを選択しないとAmazon Q developerが動作しません)

イシューを作成すると、Amazon Q developerから生成中のためしばらく待つよう返信があります。

さらにしばらく待つと、以下のように完了メッセージとプルリクエストへのリンクにコメントが書き換わります。

プルリクエストを確認すると、生成されたコードと実装時におけるセキュリティの懸念点等が記載されています。

コードもこんな感じでしっかり生成されています。

リポジトリの構成としてはこんな感じです。特に指定していなくても、READMEや単体テスト用のコードまで作成してくれるのはありがたいですね。ただし、特に指定しなければREADMEは英語で生成されるようです。

より詳細な指示をしてみる
では、次はもう少し詳しく指定してみましょう。上記の内容に加えて、「フォルダ構成」や「S3やLambdaをAWSにデプロイするためのCloudFormationのYAMLコード」、「READMEの日本語化」まで頼んでみましたが、どこまで対応してもらえるでしょうか。
それでは結果です。まずは、READMEを見ていきましょう。以下のとおりなんと日本語でちゃんと書いてくれています。これは非常にありがたいですね。これ以外にもフォルダ構成やデプロイ方法、使用方法、テスト実行方法等についても具体的なコマンド等を含めて日本語で記載してくれています。

続いて、CloudFormationのテンプレートファイルの結果です。こちらも、以下のとおりYAMLできちんと作られています。これに関しては、さすがにAWSのサービスですね。

最後に、フォルダ構成です。こちらも指示通りテンプレート・ソースコード・テストコードのフォルダが作られています。

生成されたコードの動作確認
それでは、生成されたコードが本当に動作するか試してみましょう。生成されたREADMEに記載されたデプロイ方法に従ってデプロイしていきます。生成されたデプロイ方法の内容については、かなり簡潔に記載されているので、多少AWSの知識があれば実施は容易ですが、もしAWSの知識がほとんどない人に作業を依頼する場合は、Amazon Q Developerにより詳細な記載を依頼する(実際にどこまで詳細にできるかは試していませんが)か、依頼前に手動で補足する必要がありそうです。とはいえ、特にREADMEの記載内容について指示しなくてもこのレベルを提供してくれるのはありがたいですね。

今回は、AWS SAM CLIを使用してデプロイしましたが、エラーなくデプロイが完了しました。

では、デプロイしたLambda関数をREADMEの使用方法に従って実行してみましょう。

では、以下のようなファイルを作成し、S3バケットにアップロードします。

すると、テンプレートにS3のイベント通知も埋め込まれているため自動的にLambdaが起動しました。CloudWatch Logsを確認すると、最初に依頼したとおりファイルの中身が出力されていることが分かります。

また、S3バケットにアップロードしたファイルのタグを確認すると、以下のとおり処理が完了した旨が分かるようにタグ付けされていることが分かります。
ただし、ProcessedTimestampについては、タイムスタンプではない値が付与されているので修正が必要そうです。そもそも今回は、タイムスタンプを付けるよう指示はしていないのですが、こういったお節介をしてくれることもあるみたいですね。

まとめ
Amazon Q DeveloperのGitHub統合について一部機能を検証してみました。GitHub上で指示を文章で伝えるだけで、まるで開発者がそこにいるかのようにコードを書き、リポジトリ上でプルリクエストまで行ってくれます。今回は、Amazon Q Developerによって生成されたものが実際に使えるのかを確認するため、AWS上にデプロイして実行してみました。その結果、生成された手順等は問題なく利用でき、デプロイと実行についても問題なく指定した動作も満たせていることを確認できました。
今後、もう少し複雑な指示も試してみたいと思います。もし作りたいものがあるのに開発者の手が足りない、または、自分の開発スキルが不足しているという場合に、Amazon Q Developerを利用するのも一つの選択肢となりそうです。もちろん、仕事で使用する際は、会社やプロジェクトの方針に従う必要がありますが、GitHub等を使ってチームで開発する中で、AIがメンバーとして加わる状況が今後当たり前になってくるかもしれませんね。
当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。
エンジニアによるコラムやIDグループからのお知らせなどを
メルマガでお届けしています。