Amazon Web Services ブログ

[AWS Black Belt Online Seminar] Amazon CodeGuru 資料及び QA 公開

先日 (2020/08/04) 開催しました AWS Black Belt Online Seminar「Amazon CodeGuru」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。

20200804 AWS Black Belt Online Seminar Amazon CodeGuru

AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます)

Q. P27 において、AWS CodeCommit でリポジトリを作成する時に CodeGuru Reviewer を有効化することもできれば、後から有効化もできるとのことですが、有効化された時点以降のものしか反映されないのでしょうか?
A. はい、既存リポジトリにて CodeGuru Reviewer を有効化した場合、Pull Request ベースのコードレビューに関しましては有効化された以降の Pull Request 内の差分のみをレビューする形となっております。なお、BlackBelt Online Seminar を実施した翌日に、Full Repository Scan の機能が公開となりました。次のご質問で詳しく紹介します。

Q. CodeGuru Reviewer についてですが、新規変更点だけでなく、既存のコードの検査をしてみたいのですが、Pull Request だけでなく、リポジトリを指定して全行検査を行うような機能の対応予定はございますか?
A. はい、8/5 に新たに CodeGuru Reviewer でリポジトリ解析が対応されました。SlideShare の 60 ページに情報を追加しております。Pull Request ベースとは異なり、関連付けたリポジトリの特定のブランチに対し、アドホックにコードレビューを行うことができます。ユースケースとしては、既存のリポジトリで CodeGuru Reviewer の評価を行う際や、定期的に CodeGuru Reviewer にて追加された新しいレコメンデーション領域に対するレコメンデーションの確認、などが想定されます。Pull Request ベースのスキャンと比べ料金体系が異なります。具体的にはこちらの料金ページをご確認ください。

Q. Amazoon CodeGuru で指摘される説明は、日本語も対応されてますでしょうか?
A. 現時点で Amazon CodeGuru によるレコメンデーションは英語のみの表示となります。ご要望として、フィードバックさせていただきます。

Q. P29 の右下図の Host が VPC or NoVPC モードで作成される際に「NoVPC」というオプションは、on-premise の事と理解してよいでしょうか?
A. こちらの「VPC or No VPC」は、CodeStar Connection Host を作成する際に、Host を既存の VPC 内に作成するか、(CodeStar が管理する環境である) 非 VPC に作成するか、を表しております。CodeStar Connection Host は CodeStar Connection が物理的に GitHub Enterprise Server にアクセスするための AWS が管理するリソースであり、GitHub Enterprise Server がホストされている EC2 あるいはオンプレミスのサーバーとは異なりますので、ご注意ください。

Q. 対象言語が Java ということですが、リポジトリ内に他ファイルが混在している場合は、CodeGuru Reviewer が Java ファイルを検知して、よしなにレビューをしてくれるということでしょうか?
A. CodeGuru Reviewer は拡張子が .java のファイルのみを解析対象とします。例えば、JSP のページ内に html タグや Java コードが含まれるファイルが存在したとしても、スキップされ、解析対象あるいは課金対象には含まれません。

Q. 「CodeGuru Reviewer > Code reviews」のページで、もし何かをバグ等発見したらメール通知するなど、SNSトピックス等と連携可能でしょうか?
A. 残念ながら、現時点でビルトインの機能としては提供されていません。考えられるワークアラウンドは、Lambda 関数を定期的に実行し、実施された Code Review を ListCodeReviews APIで 一覧取得し、それぞれに対し ListRecommendations API でレコメンデーションを取得することで、SNS に publish するなどが考えられます。こちらはご要望として、フィードバックさせていただきます。
ListRecommendations についてはこちらをご参照ください。

Q. CodeGuru Reviewer のレコメンドに対してフィードバックを行うと、CodeGuru Reviewer はそのソースコードリポジトリについて個別に学習を進めていくのでしょうか?それとも AWS 全体(CodeGuru Reviewer を使用する人全て)として学習していくのでしょうか?
A. 後者です。CodeGuru Reviewer で使用されている機械学習モデルは、個別のアカウントやリポジトリに特化してる訳ではなく、フィードバックも全体向けのモデル改善に使われます。

Q. フレームワークを使用した Java プロジェクトでは、CodeGuru Reviewer や Profiler はフレームワークの API を考慮してくれるのでしょうか?フレームワーク部分のレビューは対象外ということもできるのでしょうか。
A. フレームワークの API 使用に関するレコメンデーションは、CodeGuru Reviewer ではレコメンデーションカテゴリの「一般的なコーディングベストプラクティス」に属します。また、CodeGuru Profiler でも 一般的なアンチパターンに当てはまる場合レコメンデーションが生成されます。残念ですが、特定のカテゴリを除外する機能は提供されておりません。

Q. Java 限定になりますが非常に魅力的なサービスだと思います。Lambda であれば X-Ray を使用することでパフォーマンス改善には有効と言われていますが、Java の場合は今後は CodeGuru 一択と考えて良いですか。
A. 一般的に、X-Ray を含む APM はアプリケーションパフォーマンスをモニタリングしたり、トレーシングしたりするのに有効です。CodeGuru Profiler はそれを補完する形として、アプリケーションランタイムデータのビジュアライゼーションを提供したり、機械学習をベースとした改善事項を含むレコメンデーションや、異常検知を提供します。よって、どちらか一択というよりかは、併用して、互いに補完する形でご利用いただければと思います。

Q. Profiler も AP I経由で結果を取得できますか?
A. はい、GetRecommendations API で過去生成されたレコメンデーションを確認できます。
GetRecommendations についてはこちらをご参照ください。

Q. アプリケーションやソースコードリポジトリとは異なるリージョンの Amazon CodeGuru と連携することはできますか?
A. はい、CodeGuru Reviewer と Profiler いずれにおいても異なるリージョンと連携させることが可能です。CodeGuru Reviewer の場合、例えば GitHub はリージョン関係なく関連付けることが可能です。AWS CodeCommit の場合ですと、CodeGuru Reviewer を選択いただいてるリージョンとは異なるリージョンのリポジトリを関連付けることができませんので、CodeCommit が存在するリージョンで CodeGuru Reviewer をご利用いただく、あるいは CodeGuru が対応されているリージョンにリポジトリを複製していただくことが必要となります。CodeGuru Profiler においては、Profiler エージェント有効化時に送信先のリージョンを指定することができます。詳しくはこちらのドキュメントをご参考ください。

今後の AWS Webinar | イベントスケジュール

直近で以下を予定しています。各詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております。

AWSome Day Online Conference

「AWSome Day Online」は、AWSの主要サービスや基礎知識を約 2.5 時間という短い時間で、ポイントを押さえて紹介いたします。技術的な面だけではなく、AWS クラウドを学ぶために必要となる知識を身に付けたい方、エンジニアのみならず、営業職、プリセールス職、学生まで幅広い方々におすすめします。

※この回ではAWSエキスパートによる技術的な内容についてチャット形式でのQ&Aを実施します。
※AWS サービスの導入に関するご相談も同時にチャット形式にて対応します。
※2020年は毎月第一水曜日に開催します。

日時:2020 年 9 月 2 日(水) 15:00 – 18:00 終了予定 | 詳細・お申込みについてはこちら≫

Purpose-Built Databases Week – AWS の NoSQL データベースサービス総集編 –
Purpose-Built Databases Weekは、AWS NoSQL Databasesに焦点を当てた1週間に渡る全5日間のイベントシリーズです。各日とも、製品やユースケースの概要説明、最近リリースされた機能の深掘り、カスタマートーク、日本と米国のプロダクトチームとのライブ質疑応答などが行われます。

日時:2020 年 8 月 24 日(月)~ 8 月 30 日(金) | 詳細・お申込みについてはこちら≫

【初心者向け】AWS のネットワークで知っておくべき10のこと
このセッションでは、AWS利用にあたって、最低限知っておくべきことから玄人への入り口に至るネットワークの基本的な10のことについてアマゾン ウェブ サービス ジャパンのソリューションアーキテクトが解説します。

日時: 2020 年 8 月 19 日(水)10:00 – 11:30 | 詳細・お申込みについてはこちら≫


【初心者向け】AWS で Windows Server を始めるのに必要な 10 のこと
このセッションでは、Windows ワークロードをAWSで実行するうえでのポイントや、クラウドに移行するにあたっての検討事項を技術的な側面から整理してご説明します。

日時: 2020 年 8 月 26 日(水)10:30 – 12:00 | 詳細・お申込みについてはこちら≫

AWS Black Belt Online Seminar

8 月のアジェンダは以下を予定しています。新しいサービス Amazon CodeGru をBlack Beltで取り扱うのは初めてです。そのほかもアップデートなど AWS サービスの最新情報をライブ配信でお届けします。セミナー中は内容に関する疑問点を質問することができます。参加された方だけの特権ですので、ぜひこの機会にご視聴ください。

8 月分の詳細・お申込はこちら≫

  • 8/18(火)12:00-13:00 AWS Shield Advanced
  • 8/19(水)18:00-19:00 FreeRTOS
  • 8/25(火)12:00-13:00 AWS EC2 Image Builder
  • 8/26(水)18:00-19:00 AWS CloudFormation