Amazon CodeGuruを試してみました

Amazon CodeGuruを試してみました

2021年1月20日

こんにちは!テンダのAI推進委員会です。
テンダ仙台支店では今期AI推進委員会なるものを立ち上げ、検証・開発・企画検討を行っています。

技術検証の一環としてクラウドサービスの調査もしており、今回の記事ではAmazon CodeGuruについての調査結果を共有いたします。

もくじ

Amazon CodeGuruとは?

機械学習を使用してコード行の検出やコードのレビューをしてくれるというサービス、というのがおおざっぱな説明です。
言い換えると、アプリケーション開発においてコストがかかりがちな作業を効率化してくれるもの。

2021年1月現在、「Java」および「Python」のソースコードで利用が可能です。

※詳細は公式サイトを参照ください。

CodeGuruは、Amazon CodeGuru Profiler、Amazon CodeGuru Reviewerという2つのサービスで構成されています。

Amazon CodeGuru Profiler

アプリケーションの最もコストがかかっているコード行を見つけるだけでなく、特定の視覚化と、コードを改善してコストを節約する方法に関する推奨事項を提供。

Amazon CodeGuru Reviewer

機械学習を使用して、アプリケーション開発中に重大な問題や見つけにくいバグを特定し、コードの品質を向上することが可能。

今回はそのうちの「Amazon CodeGuru Reviewer」を使用してみました。

なお、CodeGuruは以下のリポジトリに対してコードレビューが行えます。

  1. AWS CodCommit
  2. Bitbucket
  3. GitHub or GitHub EnterPrise Cloud
  4. GitHub Enterprise Server

今回は「Bitbucket」を利用し、コードレビューを実施します。

その際、あらかじめソースレビューを実行するリポジトリがあるBitbucketにログインしておくことをお勧めします(理由は後述)。

次からは実際の手順の解説です。

Amazon CodeGuru Reviewer実行までの流れ

①リポジトリの関連付け

[Repositories]―「リポジトリの関連付け]を選択する


ソースプロバイダーから[Bitbucket]を選択し、[Bitbucket 接続を作成]を選択する


「接続名」を設定し、[Bitbucketに接続]を選択する


[新しいアプリをインストールする]を選択する


リポジトリを選択し、[アクセスを許可する]を選択する

※今回試した際、上記画面でBitbucketアカウントの変更がうまくできない問題がありました。
あらかじめログインしておくことを強く推奨します!

※参考:エラー時


接続が作成されたことを確認し、「接続」を選択する。


リポジトリの場所を指定し、「関連付け」を選択する。

②リポジトリ分析の作成

[コードレビュー]―[リポジトリの分析]-[リポジトリの分析を作成]を選択する


先ほど関連付けを行ったリポジトリを選択し、ブランチ名を入力後、[リポジトリの分析を作成]を選択する。

上記までの手順でコードレビューが開始されるので、完了までしばし待機。


完了後、以下のようにレビュー結果が表示される。

以上となります。

Amazon CodeGuru Reviewer使用感

無料枠内での試用に限定したため、プロジェクトを運用していく上での費用対効果までは確認していません。

指摘内容については、類似コードの検出やリソース破棄まわりの指摘、タイムゾーン未設定等が指摘されることは確認できましたが、小規模のソースで検証したため、実案件で求めるレベルの指摘が得られるかの評価はできませんでした。

無料枠の範囲でも充分に検証はできたので、導入を検討される方はまず一度試してみることをおススメします。

執筆時点での対応言語はJava、Pythonのみの対応でしたが、今後は対応言語も増えていくとのこと。
社内で利用することの多いPHPにも対応したら改めて試してみたいところです。