AWS、ソースコードの問題点修正や、稼働中のアプリケーションの性能改善に役立つサービス「Amazon CodeGuru」を発表機械学習でコードを分析

Amazon Web Services(AWS)は、コード品質やアプリケーションパフォーマンスで問題が起こる前に改善できるように支援するフルマネージドサービス「Amazon CodeGuru」を発表した。

» 2019年12月05日 17時30分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Amazon Web Services(AWS)は米ラスベガス市で開催中の「AWS re:Invent 2019」で、ソースコードの品質やアプリケーションパフォーマンスのプロアクティブな改善を支援する有償のフルマネージドサービス「Amazon CodeGuru」を発表した。同サービスは現在、プレビュー段階にある。

 Amazon CodeGuruは、機械学習モデルと学習済みのベストプラクティスを利用する。ユーザーはコードの品質を向上でき、アプリケーションのパフォーマンスを最適化する手掛かりを得ることができる。

 Amazon CodeGuruは2種類のサービスからなる。自動コードレビューサービス「CodeGuru Reviewer」とアプリケーションプロファイリングサービス「CodeGuru Profiler」だ。いずれも現時点ではJavaをサポートしている。

  • CodeGuru Reviewer

 CodeGuru Reviewerは、コードリポジトリへのコードのプルリクエストを分析することで、本番環境へのデプロイ前のコードをレビューし、コードの問題点を自動的に検出する。このため、開発者は問題が発生する前に対処し、アプリケーションの全体的なパフォーマンスと品質を高めることができる。

CodeGuru Reviewerのレポート画面(出典:AWS) ソースコード上で見つかった問題の原因と修正案を表示できる
  • CodeGuru Profiler

 CodeGuru Profilerは、アプリケーションの実行パフォーマンスを分析する機能を持つ。例えば、コアビジネスロジックの実行時ではなく、ロギングルーティンでアプリケーションがCPUを過剰に使用しているといった問題を特定できる。

 また、実稼働中のアプリケーションを最小限のフットプリントで継続的にプロファイリングするように設計されている。

CodeGuru Profilerのレポート画面(出典:AWS) 動作中のアプリケーションをなぜ変更しなければならないか、問題の原因と解決方法は何か、どの部分のコードを改善すべきかを表示している

さまざまなコードの問題点を改善できるCodeGuru Reviewer

 CodeGuru Reviewerの設定は難しくない。まず「CodeGuru Reviewerコンソール」にログインし、GitHubまたは「AWS CodeCommit」上の既存コードリポジトリと関連付ける。CodeGuru Reviewerは現在、GitHubまたはAWS CodeCommitリポジトリに保存されたコードをサポートしている。

 設定後、プルリクエストまたはコードリポジトリ内のコードをCodeGuru Reviewerが自動的にスキャンして分析し、コードの問題点を検出し、コード品質の改善提案を表示する。

 チェック対象となるのは並行性(コンカレンシー)の問題や潜在的な競合状態、サニタイズされていない入力、機密データの不適切な処理、リソースリークだ。コード品質の改善提案では、主要なオープンソースプロジェクトやAmazonのコードベースから学習した基準を利用する。

 CodeGuru Reviewerは単独で動作するのではなく、GitHubやAWS CodeCommitのような利用者の多いソース管理システムにある既存コードレビューワークフローとシームレスに連携する。

稼働中のアプリケーションの問題点を報告するCodeGuru Profiler

 CodeGuru Profilerを利用するには、まず「CodeGuru Profilerコンソール」にログインし、アプリケーションを設定する。ステップバイステップのガイドに従い、CodeGuru Profilerが提供するコードを使用して、小型のエージェントをアプリケーションにインストールする。その後は、稼働中のアプリケーションの問題をプロアクティブに検知できるように、実行が継続する。

 CodeGuru Profilerが対応するアプリケーションは、「Amazon EC2」でホストされるものの他、「Amazon ECS」や「Amazon EKS」で動作するコンテナ化されたものだ。「AWS Fargate」で動作するサーバレスアプリケーションにも対応している。

 動作時には、アプリケーションのランタイムプロファイルを分析し、コードの最も重要な部分を対象に分析を続ける。その後、パフォーマンスを高める方法についてインテリジェントな提案と可視化を行う。アプリケーションの稼働中に起こるあらゆる事象のデータを収集するように設計されており、一般に発生するようなパフォーマンスの非効率に関する知識ベースを使用する。こうして、パフォーマンスに影響する稼働中のアプリケーションのコードパターンを自動的に発見する。開発者は、CodeGuru Profilerが提供する提案を問題解決に利用できる。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。