全般

Q: Amazon CodeGuru とは何ですか?

Amazon CodeGuru は完全マネージド型のサービスで、インテリジェントな推奨事項を提供することで、コードの品質とアプリケーションのパフォーマンスを積極的に改善するのに役立ちます。

Q: Amazon CodeGuru でどういうことができますか?

Amazon CodeGuru は機械学習モデルと学習したベストプラクティスを活用して、インテリジェントな推奨事項を提供します。これにより、コードの品質を改善し、アプリケーションのパフォーマンスを最適化しますAmazon CodeGuru には、CodeGuru Reviewer と CodeGuru Profiler が含まれています。CodeGuru Reviewer はコードリポジトリのコードプルリクエストを分析し、CodeGuru Profiler は実行中のアプリケーションのパフォーマンスを分析します。

CodeGuru Reviewer は、本番環境に至る前のコードレビュー中にコードの問題を自動的に検出するため、本番環境にデプロイする前に問題を積極的に検出し、アプリケーション全体のパフォーマンスと品質を向上させることができます。CodeGuru Profiler は、コアビジネスロジックを実行するのではなく、アプリケーションがロギングルーチンで過剰な CPU 容量を消費しているときはいつかを識別できます。CodeGuru Profiler は、最小限のフットプリントで、本番環境でアプリケーションを継続的にプロファイルするように設計されています。

Q: Amazon CodeGuru の使用を開始する方法を教えてください。

Amazon CodeGuru はプレビューで公開されています。Amazon CodeGuru コンソールで今すぐお使いいただけます。

Amazon CodeGuru Reviewer を開始するには、CodeGuru Reviewer コンソールにログインして、GitHub または AWS CodeCommit の既存のコードリポジトリを関連付けます。一度セットアップすると、CodeGuru Reviewer はコードの分析を開始し、コード改善の推奨事項をプルリクエストまたはコードリポジトリ内で直接示します。

また、アプリケーションのプロファイリングは数分で開始できます。Amazon CodeGuru Profiler の使用を開始するには、CodeGuru Profiler コンソールにログインして、アプリケーションを設定します。CodeGuru Profiler が提供する段階的な指示とコードに従って、アプリケーションに小さなロープロファイルのエージェントをインストールします。CodeGuru Profiler を継続的に実行することで、ライブアプリケーションのパフォーマンスの問題をプロアクティブにキャッチできます。

Q: Amazon CodeGuru はどの AWS リージョンで利用できますか?

サポートされている AWS リージョンを確認するには、すべての AWS グローバルインフラストラクチャ用の AWS リージョン表をご覧ください。詳細については、AWS 全般のリファレンスの「リージョンとエンドポイント」を参照してください。

Amazon CodeGuru Reviewer

Q: Amazon CodeGuru Reviewer とは何ですか?

Amazon CodeGuru Reviewer は、自動コードレビューサービスで、Java ベースのコードに関する重大な欠陥と AWS ベストプラクティスからの逸脱を識別します。プルリクエストまたはコードリポジトリ内のコード行をスキャンし、主要なオープンソースプロジェクトと Amazon コードベースから学んだ標準に基づいてインテリジェントな推奨事項を提供します。CodeGuru Reviewer は、AWS CodeCommit や GitHub などの広く使用されているソース管理システム上の既存のコードレビューワークフローとシームレスに統合し、コード品質を改善するための実用的な推奨事項を提供します。

Q: サポートされているプログラミング言語とソースコードリポジトリを教えてください。

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

Q: Amazon CodeGuru Reviewer で検出される問題にはどのような種類がありますか?

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

Q: Amazon CodeGuru Reviewer の使用を開始する方法を教えてください。

Amazon CodeGuru コンソールにアクセスして、CodeGuru Reviewer の推奨事項をコードプルリクエストに直接統合します。CodeGuru コンソールにアクセスし、手順に従って AWS CodeCommit リポジトリと GitHub リポジトリを関連付けて CodeGuru Reviewerの推奨事項の受信を開始することで開始できます。CodeGuru Reviewer には、読み取り専用アクセスと、プルリクエストにコメントを投稿する機能が必要です。CodeGuru Reviewer を有効にすると、接続されたリポジトリに対して生成されたプルリクエストに対するコメントとして、インテリジェントな推奨事項が自動的に提供されます。

Q: Amazon CodeGuru Reviewer が私のコードにアクセスすることはありますか?

Amazon CodeGuru Reviewer では、推奨事項を生成するためにコードの読み取り専用アクセスが必要です。当社の最優先事項は、お客様からの信頼、プライバシー、およびお客様のコンテンツのセキュリティです。また、AWS では、転送中の暗号化などの適切な制御を行っています。それにより、お客様のコンテンツへの不正なアクセスや開示を防止し、AWS がデータを使用する場合はお客様との契約を確実に遵守します。詳細については、「データプライバシーのよくある質問」を参照してください。

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

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

Q: インテリジェントな推奨事項を提供するために Amazon CodeGuru Reviewer はどのようにトレーニングしていますか?

Amazon CodeGuru Reviewer のトレーニングは、ルールマイニングと、ロジスティック回帰とニューラルネットワークの組み合わせを活用した教師あり機械学習モデルを使用して行われます。

たとえば、AWS からの逸脱および業界のベストプラクティスに関するトレーニング中に、CodeGuru Reviewer は、AWS API 呼び出しを含むプルリクエストの検索技術とローカリティ依存モデルを使用して Amazon コードベースをマイニングします。コードの品質を改善することを目的としたコードの変更を調べ、ドキュメントデータと相互参照します。その結果、コードをレビューするときにベストプラクティスとして Reviewer が推奨する新しいルールセットが作成されます。

リソースや機密データリークのトレーニング中に、リソースまたは機密データを使用するすべてのコードパスに対して完全なコード分析を行い、それらを表す機能セットを作成し、ロジスティック回帰モデルおよび畳み込みニューラルネットワーク (CNN) の入力情報として使用します。

CodeGuru Reviewer は、ルールベースモデルと機械学習ベースモデルの両方について、お客様がラベルとして提供したフィードバックを使い、コード検出器の品質を繰り返し改善します。

Amazon CodeGuru Profiler

Q: Amazon CodeGuru Profiler とは何ですか?

Amazon CodeGuru Profiler は、開発者がアプリケーションのランタイム動作を簡単に理解し、パフォーマンスを向上させ、コンピューティングコストを削減するのに役立ちます。CodeGuru Profiler は、アプリケーションのランタイムプロファイルを分析し、コードの最も関連性の高い部分のパフォーマンスを向上させる方法について開発者をガイドするインテリジェントな推奨事項を提供し、可視化を実現します。

Q: 私は既にコードに広範囲のログ記録とデバッグを統合しています。まだプロファイルする必要がありますか?

「トップダウン」 (ログ記録とデバッグ) モニタリングアプローチは良い習慣ですが、コード効率分析には実用的ではありません。実行時間のログ記録は、限られた一連のシナリオでのみ機能し、実装には時間がかかります。ここで、「ボトムアップ」ランタイムモニタリングが登場します。Amazon CodeGuru Profiler は、シナリオに関係なく、そのアプリケーションの動作で発生したすべてのデータを収集するように設計されています。CodeGuru Profiler は、よくあるパフォーマンスの非効率性に関する知識ベースを使用して、パフォーマンスに影響するライブアプリケーションのコードパターンを自動的に検出します。開発者は、提供された推奨事項に従って問題を修正できます。

Q: CodeGuru Profiler は、従来の APM やスタンドアロンプロファイラーとどう違うのですか?

従来の APM は、モニタリング、トレース、アプリケーションのパフォーマンスに関して有用なデータを提供します。Amazon CodeGuru Profiler は、アプリケーションの実行時データの視覚化と、発見したパフォーマンスの問題に対して実用的な推奨事項を提供することにより、これらの APM 機能を補完します。CodeGuru Profiler を使用すると、パフォーマンスの最適化が最も行えるコードの部分を簡単に確認し、その対処方法に関するガイダンスを受けることができます。その際、パフォーマンスエンジニアリングの高度な知識は必要ありません。さらに、一部のスタンドアロンプロファイラーはテスト環境でのみ実行されるように設計されていますが、CodeGuru Profiler は、本番環境で、本番トラフィックの負荷の下で、さらにアプリケーションに影響を与えずに継続的に実行できるように設計されています。これは、ベアメタルホストでの実行時を含む、本番環境での運用上の問題のトラブルシューティングに役立ちます。

Q: どのタイプのアプリケーションをプロファイルできますか?

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

Q: サポートされているプログラミング言語は何ですか?

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

Q: CodeGuru Profiler はどう機能するかを教えてください。

CodeGuru Profiler は、エージェント、プロファイラーサービス、インテリジェントな推奨事項の 3 つの部分で構成されています。エージェントは、アプリケーションの一部としてインプロセススレッドとして実行されます。エージェントを実行している各サービスインスタンスからデータを取得し、5 分ごとにプロファイラーサービスに送信してから、それらを集約します。次に、CodeGuru Profiler はインタラクティブなフレームグラフでプロファイルデータを公開します。これにより、アプリケーションのパフォーマンスを視覚化できます。また、CodeGuru Profiler は、プロファイルされたデータを継続的にスキャンし、Amazon とパフォーマンスエンジニアリングのベストプラクティスと比較します。パフォーマンスの問題が検出された場合は、インテリジェントな推奨事項を積極的に知らせます。

Q: プロファイリンググループとは何ですか?

プロファイリンググループは、ユーザーが作成する論理グループで、1 つのアプリケーションの境界を表します。たとえば、マイクロサービスアーキテクチャでは、プロファイリンググループは割り当てられたマイクロサービスのプロファイルを集約し、それらすべてのプロファイルを 1 つ作成します。

Product-Page_Standard-Icons_01_Product-Features_SqInk
料金の詳細を確認する

Amazon CodeGuru の料金ページをご覧ください。

詳細 
Product-Page_Standard-Icons_02_Sign-Up_SqInk
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
Product-Page_Standard-Icons_03_Start-Building_SqInk
コンソールで構築を開始する

AWS マネジメントコンソールで Amazon CodeGuru の構築を始めましょう。

サインイン