話題の記事

[速報] コードレビューの自動化!パフォーマンスやコストの最適化まで出来ちゃう Amazon CodeGuru が発表されました!#reinvent

2019.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、大阪オフィスの丸毛(@marumo1981)です!

ただいま開催されている、re:Invent 2019のキーノートにて、コードレビューの自動化サービス「Amazon CodeGuru」が発表されました。

Amazon CodeGuru とは?

CodeGuru は機械学習に最適なパフォーマンスと、ベストプラクティスに沿ったコードをユーザに提供するための自動化されたコードレビューサービスです。以下の2つの機能を提供します。

  • CodeGuru Reviewer
  • CodeGuru Profiler

CodeGuru Reviewer

  • コードレビューの自動化  - ソースコードのプルリクエストを自動的に分析して重要な問題を見つけ、プルリクエスト内でコードの欠陥を直接解決するためのインテリジェントな推奨事項を提供

  • 高速で信頼性の高いコードの問題検出
    • スレッドセーフの問題、非サニタイズされた入力の使用、資格情報などの機密データの不適切な処理、リソースリークなど、ソースコード内の広範な問題を検出してフラグを付けこれらの問題を修正する方法に関する推奨事項を提供
    • AWS APIとSDKの使用状況についてコードをレビューし、最新のAWS機能とベストプラクティスを常に最新の状態に保つのに役立ちます。

CodeGuru Profiler

  • アプリケーションの実行時の動作を理解する
    • アプリケーションのCPU使用率と遅延特性を分析して、アプリケーションで最も多くのサイクルを費やしている場所を検出する

  • インテリジェントな推奨事項
    • アプリケーションのパフォーマンスの問題を自動的に識別
    • それらの修正方法に関するインテリジェントな推奨事項を提供
    • 最適化により、インフラストラクチャのコストを削減し、待ち時間を短縮し、エンドユーザーエクスペリエンス全体を改善する

価格

  • 90日の無料トライアル
  • CodeGuru Reviewer
    • コードスキャン(プルリクエスト) $0.75/100行
  • CodeGuru Profiler
    • EC2,ECS,EKS,Fargate のアプリケーションプロファイリング
    • 最初の 36,000サンプリング時間まで $0.005/h

詳細な価格例は公式ページを参照ください

2年前から Amazon 内で利用されており、PrimeDay などでも利用されているとのこと。自動コードレビューの結果、CPU効率は 325% 改善し、コストは 40% 近く最適化されたそうです!

FAQ から気になるものを抜粋

どのプログラミング言語とソースコードリポジトリがサポートされていますか?

Amazon CodeGuru Reviewerは現在、GitHubおよびAWS CodeCommitリポジトリに保存されているJavaコードをサポートしています。

Amazon CodeGuru Reviewerはどのような種類の問題を検出しますか?

Amazon CodeGuru Reviewerは、同時実行の問題、潜在的な競合状態、非サニタイズされた入力、資格情報などの機密データの不適切な処理、リソースリークをチェックし、並行コードの競合状態も検出します。

Amazon CodeGuru Reviewerは私のコードにアクセスしますか?

Amazon CodeGuru Reviewerは、推奨事項を生成するためにコードへの読み取り専用アクセスが必要です。お客様のコンテンツの信頼、プライバシー、およびセキュリティは当社の最優先事項であり、転送中の暗号化を含む適切な制御を実装して、お客様のコンテンツへの不正アクセスまたは開示を防止し、弊社の使用が弊社のコミットメントに準拠するようにします。詳細については、データプライバシーに関するよくある質問をご覧ください。

Amazon CodeGuru Reviewerはコードのコピーを保持しますか?

いいえ、Amazon CodeGuru Reviewerはソースコードを保存しません。

プロファイルできるアプリケーションの種類は何ですか?

Amazon CodeGuru Profilerは、Amazon EC2およびAmazon ECSおよびAmazon EKSで実行されるコンテナー化されたアプリケーション、およびAWS Fargateで実行されるサーバーレスアプリケーションでホストされるアプリケーションで動作します。

どのプログラミング言語がサポートされていますか?

Amazon CodeGuru Profilerは現在、Javaアプリケーションをサポートしています。

対応リージョン

執筆時点でリージョンテーブルにまだ反映されていないようですが、AWS コンソールで表示が確認できたのは以下のリージョンです。

  • アジアパシフィック (シドニー)
  • 欧州 (アイルランド)
  • 米国西部 (オレゴン)
  • 米国東部 (バージニア北部)
  • 米国東部 (オハイオ)

東京・・(´・ω・`)

さいごに

単なるコードのベストプラクティスな書き方というわけではなく、パフォーマンスやコストまでを効率化するベストプラクティスを機械学習から推奨してくれるサービス。これは凄いですね!!はやく試してブログでご紹介したいところですが、プレビュー扱いとなっていますのでブログ紹介は少し時間がかかりそうですね。国外リージョンにはなりますが、すでにAWSコンソールから利用できるようなので、気になる方は是非お試しください!

参考