みなさん、こんにちは。サニービュー事業部の小寺です。

CodeGuru Reviewerで主に2つのアップデートがありました。
https://aws.amazon.com/jp/blogs/news/amazon-codeguru-reviewer-updates-new-pricing-model-and-python-support-in-ga/

■アップデート内容

1) リポジトリのサイズに基づいて月額料金を低く固定し、最大 90% の値下げとなる、簡単な料金モデルになりました。
2) Python サポートが一般利用可能 (GA)となりました。推奨範囲が広く、Python関連する 4つの更新があります。

■Amazon CodeGuruとは

Amazon CodeGuru (CodeGuru) は、機械学習を活用した開発者向けツールです。
CodeGuru は、コード上で問題がある箇所を特定したり、アプリケーション実行でハイコストの箇所の特定及び改善方法を提供します。ベストプラクティスとオープンソースプロジェクトおよび Amazon 内部にある数百万のコードレビューと数千のアプリケーションから培われたノウハウをベースにしているとのことで、アプリケーション開発がかなり楽になりそうです。
主に2つの機能に分かれています。

CodeGuru Reviewer コードレビューの自動化
CodeGuru Profiler アプリケーションパフォーマンスの分析

また、CodeGuru より推奨された内容を受け入れるかどうかは開発者が判断します。開発者よりCodeGuruに対してフィードバックを多く与えるほど推奨機能(レコメンド機能)が向上していきます。

■CodeGuru Reviewerとは

CodeGuru Reviewer は、機械学習を利用してコード内の問題を検出し、修正方法をレコメンドしてくれる 自動コードレビューサービス です。
「Amazon CodeGuru Reviewer」は、チーム内の「レビュアー」の一員として活躍することが可能です。

利用するには、追加のライブラリ等はインストール不要です。CodeGuru Reviewerにレビューしたいコードを格納しているレポジトリを紐付けることで、簡単に利用ができます。

なお、以下のリポジトリに対応しています。
・GitHub
・GitHub Enterprise Server
・AWS CodeCommit
・Bitbucket

■CodeGuru Profilerとは

「Amazon CodeGuru 」は、様々な種類のソースコードにおける処理の問題を検出してくれます。
たとえば、アプリケーションの CPU 使用率とレイテンシー特性を継続的に分析し、 よりよいパフォーマンスとなるための改善方法を含む推奨事項を教えてくれたり、異常検出の機能もあります。

コードレビューの結果は、ダッシュボードで確認ができます。実際のユーザートラフィックを元にしたパフォーマンスの分析を行うため、CodeGuru の利用はプロダクション環境で行うことが推奨となっています。

■今回のアップデートのメリット

1) リポジトリのサイズに基づいて月額料金を低く固定し、最大 90% の値下げとなる、簡単な料金モデルに

以前は、1 か月あたりの分析コード行数 (LoC) に基づいており、100 LoC あたり 0.75 USDの課金体系でした。
お客さまのコード分析を頻繁に行いたいという声を元にAWSでは料金体系の変更を行ったとのことです。リポジトリの合計サイズに基づいて、月額固定料金のみの支払いへ変更になりました!

・接続されているすべてのリポジトリで、最初の 100k 行のコード:月額 10 USD
・追加のコード100k ごとに:月額 30 USD

なお、月間料金にはすべての増分レビューが含まれ、毎月の料金の対象となるリポジトリごとに最大 2 回のフルスキャンを取得できます。追加のフルスキャンでは、100k 行のコードにつき 10 USD が課金されます。なお、リポジトリの最大ブランチのみがカウントされ、空の行やコメントはカウントされません。

2) Python サポートが一般利用可能 (GA)

CodeGuru Reviewer の Python サポートは、 2020年 12月からプレビューで利用可能でしたが、今回めでたくGAになりました。
さらに既存の検出機能の推奨事項を増やし、社内で検証した新しい検出機能を追加したと発表されています。

・既存の検出機能の改善
検出のカバレッジと精度が高まっています。

・コード保守性の検出機能
下流工程でのテスト、保守、リファクタリングに役立ちそうなコード構造を示したメトリクスが提供されます。
コードの可読性を向上させることで、将来的なメンテナンスを改善が期待されますね。

・不正入力の検証検出機能
予期せぬ入力を検出することにより、ソフトウェアの信頼性とセキュリティの向上の対応ができます。

・リソースリーク検出機能
オープンファイル記述子の他、コネクション、セッション、オープンソケット、並列処理スレッドプールのリークが検出できます。

■まとめ

いかがでしたでしょうか。

「Amazon CodeGuru」について、「Amazon CodeGuru Profiler」や「Amazon CodeGuru Reviewer」といった主要な機能を元に、その概要や利用方法、アップデートされた内容について、お伝えしました。

普段、CodeGuruは利用していなかったのですが、 ソースコードのプルリクエストを自動的にスキャンし、プルリクエスト内で問題解決の方法が提供されるって本当に便利だな、と思いました。

Sunny CloudはAWSのプロフェッショナル集団として、様々なAWSのソリューションを提供しています。
AWSのご相談は、ぜひSunny Cloudへ。どんなご相談でもお待ちしております。

▼「無料相談」受付中です
https://www.sunnycloud.jp/contact-us/