クラウドサービス

Amazon CodeGuru

既存関連付けのコードを解析する Reviewer と、本番の性能を計測する Profiler。Reviewer は2025年11月7日から新規リポジトリを関連付けできず、代替への移行判断が必要。

中級DOP-C02DVA-C02パフォーマンス効率セキュリティ
最終更新: 2026-07-29公式ドキュメント
3つの要点
TL;DR
  1. Reviewer は2025年11月7日から新しいリポジトリ関連付けを作成できない。
  2. Profiler は CPU・待ち時間を可視化し、JVM ではヒープも分析する。
  3. 既存解析は継続でき、新規用途は Amazon Q Developer や Inspector を比較する。
Reviewer の新規関連付けは作成できない

2025 年 11 月 7 日以降、CodeGuru Reviewer はメンテナンスモードとなり、新しいリポジトリ関連付けを受け付けていません。既存の関連付けでは解析を継続できますが、機能追加は予定されていません。新しいコードレビューには Amazon Q Developer、新しいリポジトリの脆弱性検査には Amazon Inspector Code Security を比較してください。この変更は CodeGuru Profiler の実行時分析とは分けて判断します。

解決する課題

コード品質の維持には、人手によるレビューと性能チューニングが欠かせませんが、いずれもレビュアーの経験に依存し、見落としや属人化が起きがちです。また本番環境の性能劣化は、再現が難しく原因特定に時間がかかります。CodeGuru なら:

  • プルリクエストの自動レビューで、バグの温床やセキュリティ上の問題を機械的に指摘できる
  • 本番で動くアプリを継続的にプロファイリングし、性能のボトルネックを可視化できる
  • 指摘や分析結果が改善の根拠とともに提示され、レビューや調査の属人化を減らせる

CodeGuru は大きく Reviewer(コードレビュー)Profiler(性能分析) の2つの機能で構成されます。

主要概念と用語

  • CodeGuru Reviewer: ソースコードを静的に解析し、潜在的なバグ・リソースリーク・並行処理の問題・セキュリティ上の懸念などを指摘する機能
  • CodeGuru Profiler: 稼働中のアプリにエージェントを組み込み、実行時のプロファイルを収集して CPU・メモリ消費の多い箇所を特定する機能
  • リポジトリ関連付け: Reviewer を使うために、CodeCommit や GitHub などのリポジトリを CodeGuru に関連付ける設定
  • コードレビュー: Reviewer が1回の解析で生成する指摘(レコメンデーション)のまとまり
  • レコメンデーション: 問題箇所と、その理由・改善の方向性を示す個別の指摘
  • プロファイリンググループ: Profiler がプロファイルを集約する単位。同じアプリの複数インスタンスをまとめて分析する
  • フレームグラフ: 関数の呼び出し関係と各関数が占める時間の割合を可視化した図
  • セキュリティ検出: Reviewer のうち、機密情報のハードコードや脆弱な実装パターンを指摘する分析

仕様・制限・クォータ

  • Reviewer は既存の CodeCommit・GitHub・Bitbucket などの関連付けに限り、プルリクエスト単位または対象ブランチ全体の解析を継続できる。新しい関連付けは作成できない
  • Reviewer の解析対象言語は Java と Python。既存の GitHub Enterprise Server と Bitbucket の関連付けは CodeConnections を介する
  • Profiler は エージェント(ライブラリ)をアプリに組み込んで動作し、Java/JVM 系言語や Python などに対応する。ヒープ概要は JVM アプリだけで利用できる
  • Profiler のオーバーヘッドは小さく抑えられており、本番環境での常時計測を前提に設計されている
  • 指摘や解析の精度・対応範囲は機械学習モデルの更新により変化する

Reviewer はリポジトリ最大 4 GB、CodeCommit の解析済みプルリクエスト月 5,000、Java ソース 300 MB、Python ソース 50 MB が主な上限です。Profiler は 1 アカウント・リージョンあたり最大 500 プロファイリンググループです。

内部の仕組み

横にスクロール

CodeGuru Reviewer が既存のリポジトリ関連付けを静的解析する経路と、Profiler が稼働アプリを分析する経路、新規解析の移行先を示す図
Reviewer は既存関連付けだけを継続し、新規コードレビューは Amazon Q Developer、リポジトリ検査は Inspector を比較する

Reviewer は既存の関連付けからリポジトリのコードを取り込み、機械学習モデルとプログラム解析を組み合わせて評価します。プルリクエストに関連付けると、差分を解析し、問題箇所にレコメンデーションをコメントとして残します。

  • Reviewer はパターンに基づく解析と学習済みモデルで、リソースリークや例外処理の不備などを検出する
  • セキュリティ検出では、機密情報のハードコードや安全でない API 利用などを指摘する
  • Profiler はアプリ内のエージェントが一定間隔でスタックをサンプリングし、結果をプロファイリンググループへ送る
  • 集約されたプロファイルはフレームグラフとして可視化され、時間を多く消費する関数を特定できる
本番で測ることに意味がある

Profiler は実際の本番トラフィック下で計測してこそ、現実のボトルネックを掴めます。低オーバーヘッドで常時計測する前提なので、テスト環境だけでなく本番のプロファイリンググループを用意しておくと効果的です。

設計パターン / ベストプラクティス

  • 既存 Reviewer を維持しつつ移行する: 既存関連付けの自動レビューを継続し、Amazon Q Developer などの代替結果と並行比較する
  • 指摘をトリアージする運用: すべての指摘を機械的に従うのではなく、重要度を見て対応するかを判断する
  • Profiler を本番に常駐: 代表的なワークロードを継続計測し、性能の変化を経時で追えるようにする
  • プロファイリンググループの分離: 環境(本番・ステージング)やサービスごとにグループを分け、混在を避ける
  • レビューと性能分析の併用: Reviewer で品質を、Profiler でコスト効率を改善し、両輪で最適化する

運用・監視

  • Reviewer の指摘はコンソールやプルリクエストのコメントで確認し、対応状況を追跡する
  • Profiler のフレームグラフを定期的に見直し、ボトルネックの推移を把握する
  • 性能劣化のリリースがないか、デプロイ前後でプロファイルを比較する
  • Reviewer の既存解析対象ブランチを見直し、新規関連付けを前提としない移行計画を更新する
指摘をうのみにしない

Reviewer の指摘は有用ですが、文脈によっては当てはまらない場合もあります。誤検出(フォールスポジティブ)の可能性を踏まえ、人によるレビューを完全に置き換えるのではなく補助として使ってください。

コスト

Reviewer は関連付けたリポジトリの最大ブランチに含まれるコード行数を合算した月額制で、各リポジトリにつき月 2 回の全体解析を含みます。追加の全体解析は 10 USD / 10 万行です。Profiler はエージェント 1 個が 1 時間動くと 1 サンプリング時間として数えます。

  • Reviewer の差分解析は月額に含まれるが、各リポジトリで月 2 回を超える全体解析は追加料金になる
  • Profiler は最初の 36,000 サンプリング時間 / グループ・月まで 0.005 USD / 時間。Lambda は支払者アカウントの最初の 500 時間が無料である
  • Profiler でホットスポットを改善し CPU を削減できれば、計算リソースの費用そのものを下げられる

正確な単価は時期・リージョンで変動するため、断定的な金額は公式の料金ページで確認してください。

セキュリティ

  • リポジトリの関連付けや結果取得には IAM で権限を制御し、最小権限を徹底する
  • Reviewer のセキュリティ検出を活用し、認証情報のハードコードや脆弱なパターンを早期に発見する
  • 解析対象のコードや結果には機密が含まれうるため、アクセスできる利用者を限定する
  • 指摘で見つかった機密情報は、コードから除去し Secrets Manager などへ移す
アンチパターン

Reviewer がハードコードされた認証情報を指摘したのに放置するのは危険です。指摘を契機に値をローテーションし、Secrets Manager 参照へ置き換えてください。

Well-Architected の観点

  • パフォーマンス効率: Profiler で本番のボトルネックを定量的に把握し、効果の高い箇所から改善できる
  • セキュリティ: Reviewer のセキュリティ検出で、コードに潜む機密漏えいや脆弱パターンを早期に発見できる
  • ボトルネック解消による CPU 削減は、コスト最適化にも直結する

試験で問われるポイント

頻出
  • 機能の役割分担 → Reviewer はコードレビューProfiler は本番の性能分析
  • いつ使う? → プルリクエストの自動レビューには Reviewer、稼働中アプリのボトルネック特定には Profiler
  • セキュリティ → Reviewer は機密情報のハードコードなどを指摘できる
  • Profiler の可視化 → フレームグラフで時間を多く消費する関数を特定する
  • 解析言語 → Reviewer は Java と Python。新しいリポジトリ関連付けは作成できない

関連サービス・比較

実行のトレースを追う AWS X-Ray と混同されがちですが、目的が異なります。違いを押さえておきましょう。

観点CodeGuru ProfilerAWS X-Ray
主な目的アプリ内部の性能ボトルネック特定分散システムのリクエスト追跡
分析の単位関数・メソッドのCPUやメモリ消費サービス間のトレースと遅延
可視化フレームグラフサービスマップとトレース
主な使いどころコードのホットスポット改善ボトルネックとなる区間の特定

ハンズオン / CLI例

# Reviewer: 既存リポジトリの関連付け一覧を取得(新規作成は不可)
aws codeguru-reviewer list-repository-associations

# Reviewer: 指定の関連付けに対するコードレビュー一覧を取得
aws codeguru-reviewer list-code-reviews --type PullRequest \
  --query "CodeReviewSummaries[].{Name:Name,State:State}"

# Profiler: プロファイリンググループの一覧を取得
aws codeguruprofiler list-profiling-groups \
  --query "profilingGroupNames"

AWS Service

Amazon CodeGuruを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

開発者ツール

比較で見る軸

クラウド: AWS / カテゴリ: 開発者ツール / 難易度: intermediate

導入後に効く点

Profiler は CPU・待ち時間を可視化し、JVM ではヒープも分析する。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
AWS
カテゴリ
開発者ツール
難易度
intermediate
関連資格
DOP-C02 / DVA-C02
設計柱
performance / security

判断チェックリスト

  • 自社の用途が「開発者ツール / performance」に近いか確認する。
  • 強みである「Reviewer は2025年11月7日から新しいリポジトリ関連付けを作成できない。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

開発者ツールperformancesecurityDOP-C02DVA-C02