この記事の目次
AWSの「Amazon CodeGuru」とは?

「Amazon CodeGuru Reviewer」とは?

「Amazon CodeGuru Reviewer」の特徴
「Amazon CodeGuru Reviewer」の特徴としては、機械学習を利用してソースコードの改善方法を提示することで、「コード品質」を一定の水準で維持できる点です。この特徴によって「Amazon CodeGuru Reviewer」は、チーム内の「レビュアー」の一員として活躍することが可能です。 利用に際しては、追加のライブラリ等はインストール不要で、簡単に利用を開始できます。「Amazon CodeGuru Reviewer」の対応言語とリポジトリ
「Amazon CodeGuru Reviewer」の対応言語とリポジトリについて説明します。 対応言語としては、JavaとPython(※英語版のみ)に対応しています。サポートしている「リポジトリ」は、「AWS CodeCommit」、「Bitbucket」、「GitHub」、「GitHub Enterprise」、「GitHub Enterprise Cloud」等があります。「Amazon CodeGuru Reviewer」による問題検出
「Amazon CodeGuru Reviewer」は、様々な種類のソースコードにおける処理の問題を検出してくれます。例えば、冗長な処理の重複処理、アプリケーションの同時実行処理、不適切な入力処理、認証時の機密情報の不適切な処理、クローズ処理漏れといった問題があります。 またAWSだけではなく、Javaによるコーディングでのベストプラクティスも提案してくれます。「Amazon CodeGuru Reviewer」の利用方法
「Amazon CodeGuru Reviewer」の利用方法について説明します。最初に「Amazon CodeGuru コンソール」にアクセスし、「Amazon CodeGuru Reviewer」のコードリポジトリ(AWS CodeCommit/GitHub/GitHub Enterprise/BitBucket)と関連付けを行います。 「Amazon CodeGuru Reviewer」からコーディングにおける推奨事項が送られます。「Amazon CodeGuru Profiler」とは?

「Amazon CodeGuru Profiler」のプロファイル対象
「Amazon CodeGuru Profiler」のプロファイル対象は、「Amazon EC2」上で動作するアプリケーション、「Amazon ECS」や「Amazon EKS」によるコンテナ上のアプリケーション、「AWS Fargate」や「AWS Lambda」で動作するサーバーレスアプリケーションが対象です。 またサポートしているプログラム言語は、「Java」、「Scala」、「Kotlin」等があります。「Amazon CodeGuru Profiler」の利用方法(その1)
「Amazon CodeGuru Profiler」の利用方法(その1)としては「CodeGuru Profiler プロファイリンググループ」を作成します。 具体的には、「マネジメントコンソール」画面から「Amazon CodeGuru」のTOP画面に遷移し、「Profiler」にて作成します。 なお「プロファイリンググループ」とは、利用者が作成する論理的なグループで、プロファイル対象とするアプリケーションの範囲を示します。「Amazon CodeGuru Profiler」の利用方法(その2)
「Amazon CodeGuru Profiler」の利用方法(その2)としては、「IAM権限」を設定します。具体的には、「Profilerエージェント」が使用する「IAM User」に、プロファイルデータを「Amazon CodeGuru」へ送信可能とするための権限を付与します。 なお「Profilerエージェント」とは、アプリケーションの一部に組み込み、プロファイル分析を行う実行モジュールのことです。「Amazon CodeGuru Profiler」の利用方法(その3)
「Amazon CodeGuru Profiler」の利用方法(その3)としては、「Profilerエージェント」を起動します。起動すると実行中のアプリケーションを継続してプロファイルします。起動から15分以内にプロファイル結果が送信され、以降は10分間隔で送信されます。 なお「Profilerエージェント」は、AWS社で提供されている「CodeGuruProfiler Agent JAR」の利用が推奨されています。「Amazon CodeGuru Profiler」の可視化(ビジュアライゼーション)
「Amazon CodeGuru Profiler」の可視化機能(ビジュアライゼーション)により、プロファイル結果を視覚的に把握できます。 「Amazon CodeGuru Profiler」画面に表示されるビジュアライゼーション(プロファイル結果の図)は、実行中のアプリケーションの「スタックトレース」を採取して集約したものです。ソースコードのどの位置で「CPU時間」が掛かっているかを視覚的に把握できます。「Amazon CodeGuru Profiler」のビジュアライゼーションモード
ビジュアライゼーションのモードには、「Overviewモード」、「Hotspotsモード」、「Inspectモード」の3種類があります。 「Overviewモード」は、アプリケーション全体の理解、各処理のCPU使用時間を把握するのに有用です。「Hotspotsモード」は、CPU使用時間が長い処理を特定するのに有用です。「Inspectモード」は、分析用に集約した情報を表示してくれます。「Amazon CodeGuru Profiler」のビュー
「Amazon CodeGuru Profiler」のビューは、「CPUビュー」、「Latencyビュー」、「Customビュー」の3種類あります。 「CPUビュー」は、アプリケーションのCPU使用率の解析に役立つビューです。「Latencyビュー」は、アプリケーションの実行時間に影響を与えている処理の特定に役立ちます。「Customビュー」は、表示対象の色等をカスタマイズできるビューです。「Amazon CodeGuru Profiler」のレコメンデーションレポート
「Amazon CodeGuru Profiler」のレコメンデーションレポートとは、AWS上でのパフォーマンス改善に役立つ情報です。収集されたプロファイリングデータを元にして、1時間間隔でレコメンデーションレポートを自動的に生成してくれます。 コンソール画面から直近30日分のレポートを閲覧できます。なおCLI(コマンドラインインターフェース)からは、それ以前の古いレポートも取得できます。「Amazon CodeGuru」のまとめ
