AWS Compute Optimizer で分析されたメトリクス - AWS Compute Optimizer

AWS Compute Optimizer で分析されたメトリクス

オプトイン すると、AWS Compute Optimizer は、vCPU、メモリ、ストレージなどの仕様と、過去 14 日間の実行リソースの CloudWatch メトリクスを分析します。拡張インフラストラクチャメトリクスのレコメンデーション設定を有効化すると、AWS Compute Optimizer は最大 93 日間リソースを分析します。

分析が完了するまでに最大 24 時間かかることがあります。分析が完了すると、Compute Optimizer コンソールのダッシュボードページに結果が表示されます。詳細については、「AWS Compute Optimizer ダッシュボードの使用」を参照してください。

注記
  • Amazon EC2 インスタンス、Auto Scaling グループ、Amazon EBS ボリューム、Lambda 関数、および商用ソフトウェアライセンスに関するレコメンデーションを生成するために、Compute Optimizer はルックバック期間中の 5 分ごとの最大使用率ポイントを使用します。Fargate 上の ECS サービスのレコメンデーションに対し、Compute Optimizer は 1 分ごとの最大使用率ポイントを使用します。

  • AWS 使用状況データを Compute Optimizer のレコメンデーションの全体的な品質向上に役立てる場合があります。AWS 使用率データの使用を中止するには、 AWS Support にお問い合わせください。

EC2 インスタンスメトリクス

EC2 インスタンスのメトリクスを分析

Compute Optimizer は、Auto Scaling グループの一部であるインスタンスを含む EC2 インスタンスの次の CloudWatch メトリクスを分析します。

メトリクス 説明
CPUUtilization

割り当てられた EC2 コンピュートユニットのうち、現在インスタンス上で使用されているものの比率。このメトリクスは、インスタンス上でアプリケーションを実行するために必要な処理能力を特定します。

MemoryUtilization

サンプル期間中に使用されたメモリの割合。このメトリクスは、インスタンスでアプリケーションを実行するために必要なメモリを表します。

以下のリソースのメモリ使用率指標が分析されます。

GPUUtilization

インスタンスで現在使用されている、割り当てられた GPU の割合。

注記

Compute Optimizer がインスタンスの GPU 使用率メトリクスを分析できるようにするには、インスタンスに CloudWatch エージェントをインストールします。詳細については、「CloudWatch エージェントを使用した NVIDIA GPU の使用の有効化」を参照してください。

GPUMemoryUtilization

合計 GPU メモリのうち、現在インスタンス上に使用されているものに対する比率。

NetworkIn

すべてのネットワークインターフェイスでの、このインスタンスによって受信されたバイトの数。このメトリクスは、1 つのインスタンスへの着信ネットワークトラフィックの量を表しています。

NetworkOut

インスタンスによってすべてのネットワーク インターフェイスに送信されるバイト数。このメトリクスは、1 つのインスタンスからの発信ネットワークトラフィックの量を表しています。

NetworkPacketsIn

インスタンスが受信したパケットの数。

NetworkPacketsOut

インスタンスが送信したパケットの数。

DiskReadOps

インスタンスのインスタンスストアボリュームの読み取りオペレーション (毎秒)。

DiskWriteOps

インスタンスのインスタンスストアボリュームの書き込みオペレーション (毎秒)。

DiskReadBytes

インスタンスのインスタンスストアボリュームの読み取りバイト数 (毎秒)。

DiskWriteBytes

インスタンスのインスタンスストアボリュームの書き込みバイト数 (毎秒)。

VolumeReadBytes

インスタンスにアタッチされたEBSボリュームの読み取りバイト数 (毎秒)。コンソールに KiB/秒として表示されます。

VolumeWriteBytes

インスタンスにアタッチされた EBS ボリュームの書き込みパフォーマンス (毎秒)。コンソールに KiB/秒として表示されます。

VolumeReadOps

インスタンスにアタッチされた EBS ボリュームの読み込みオペレーション (毎秒)。

VolumeWriteOps

インスタンスにアタッチされた EBS ボリュームの書き込みオペレーション (毎秒)。

インスタンスメトリクスの詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「インスタンスの利用可能なCloudWatchメトリクスを一覧にする」を参照してください。EBS ボリュームメトリクスの詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EBS の Amazon CloudWatch メトリクス」を参照してください。

CloudWatch エージェントでメモリ使用率を有効にする

Compute Optimizer にインスタンスのメモリ使用率メトリクスを分析させるには、インスタンスに CloudWatch エージェントをインストールします。Compute Optimizer を有効にしてインスタンスのメモリ使用率データを分析すると、Compute Optimizer のレコメンデーションをさらに改善する追加のデータ測定が提供されます。CloudWatch エージェントのインストールに関する詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェントを使って Amazon EC2 インスタンスとオンプレミスサーバーからメトリクスとログを収集する」を参照してください。

Linux インスタンスでは、Compute Optimizer は CWAgent 名前空間内の mem_used_percent メトリクス、または System/Linux 名前空間内のレガシー MemoryUtilization メトリクスを分析します。Windows インスタンスでは、Compute Optimizer は CWAgent 名前空間内の Available MBytes メトリクスを分析します。Available MBytes メトリクスと Memory % Committed Bytes In Use メトリクスの両方が CWAgent 名前空間で構成されている場合、Compute Optimizer はレコメンデーションを生成するためのプライマリメモリメトリクスとして Available MBytes を選択します。

注記
  • Windows インスタンスのメモリ メトリクスとして Available MBytes を使用するように CWAgent 名前空間を構成することをお勧めします。

  • Compute Optimizer は Available KBytes メトリクスと Available Bytes メトリクスもサポートしており、Windows インスタンスのレコメンデーションを生成するときに Memory % Committed Bytes In Use メトリクスよりも両方を優先します。

さらに、名前空間には InstanceId ディメンションを含む必要があります。InstanceId ディメンションが欠落している場合、またはカスタム ディメンション名で上書きした場合、Compute Optimizer はインスタンスのメモリ使用率データを収集できません。名前空間とディメンションは CloudWatch エージェント設定ファイルで定義されています。詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェント設定ファイルを作成する」を参照してください。

例:メモリの収集のための CloudWatch エージェントの設定

{ "agent": { "metrics_collection_interval": 60, "run_as_user": "root" }, "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } } } }

CloudWatch エージェントを使用した NVIDIA GPU の使用の有効化

Compute Optimizer がインスタンスの NVIDIA GPU 使用率メトリクスを分析できるようにするには、以下を実行します。

  1. インスタンスへのCloudWatch エージェントのインストール 詳細については、Amazon CloudWatch ユーザーガイドCloudWatch エージェントのインストール を参照してください。

  2. CloudWatch エージェントが、NVIDIA GPU メトリクスを収集できるようにします。詳細については、「Amazon CloudWatch ユーザーガイド」の「NVIDIA GPU メトリクスの収集」を参照してください。

Compute Optimizer は、次の NVIDIA GPU メトリクスを分析します。

  • nvidia_smi_utilization_gpu

  • nvidia_smi_memory_used

  • nvidia_smi_encoder_stats_session_count

  • nvidia_smi_encoder_stats_average_fps

  • nvidia_smi_encoder_stats_average_latency

  • nvidia_smi_temperature_gpu

名前空間には InstanceId ディメンションと index ディメンションが含まれている必要があります。ディメンションが欠落しているか、カスタムディメンション名で上書きした場合、Compute Optimizer はインスタンスの GPU 使用率データを収集できません。名前空間とディメンションは CloudWatch エージェント設定ファイルで定義されています。詳細については、「Amazon CloudWatch ユーザーガイド」の「CloudWatch エージェント設定ファイルを作成する」を参照してください。

外部メトリクスの取り込みを設定します。

外部メトリクス取り込み機能を使用して、4 つの可観測性製品 (Datadog、Dynatrace、Instana、New Relic) のいずれかから EC2 メモリ使用率メトリクスを取り込むように AWS Compute Optimizer を構成できます。外部メトリクスの取り込みを有効にすると、Compute Optimizer は CPU、ディスク、ネットワーク、IO、スループットのデータに加えて、外部の EC2 メモリ使用率メトリクススを分析して EC2 の適正化に関するレコメンデーションを生成します。これらのレコメンデーションは、さらなるコスト削減とパフォーマンスの向上につながります。詳細については、「外部メトリクスの取り込み」を参照してください。

EBS ボリュームメトリクス

Compute Optimizer は、EBS ボリュームの次の CloudWatch メトリクスを分析します。

メトリクス 説明
VolumeReadBytes

EBS ボリュームの読み取りバイト数 (毎秒)。

VolumeWriteBytes

EBS ボリュームの書き込みバイト数 (毎秒)。

VolumeReadOps

EBS ボリュームの読み取りオペレーションの数 (毎秒)。

VolumeWriteOps

EBS ボリュームの書き込みオペレーションの数 (毎秒)。

これらのメトリクスの詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EBSのAmazon CloudWatch メトリクス」を参照してください。

Lambda 関数のメトリクス

Compute Optimizer は、Lambda 関数の次の CloudWatch メトリクスを分析します。

メトリクス 説明
Invocations

関数コードが実行された回数 (成功した実行や関数エラーが発生した実行を含む)。

Duration

関数コードがイベントの処理に費やす時間。

Errors

関数エラーが発生した呼び出しの数。関数エラーには、コードによってスローされた例外と、Lambda ランタイムによってスローされた例外が含まれます。ランタイムは、タイムアウトや設定エラーなどの問題に対してエラーを返します。

Throttles

スロットリングされた呼び出しリクエストの数。

これらのメトリクスの詳細については、「AWS Lambda デベロッパーガイド」の「AWS Lambda 関数メトリクスを使用する」を参照してください。

これらのメトリクスに加えて、Compute Optimizer はルックバック期間中の関数のメモリ使用率を分析します。Lambda 関数のメモリ使用率の詳細については、「AWS マネジメント & ガバナンスブログ」の「AWS LambdaAmazon CloudWatch Logs Insights を使って動作を理解する」および「AWS Lambda デベロッパーガイド」の「CloudWatch で Lambda Insights を使用する」を参照してください。

Fargate の Amazon ECS サービスのメトリクス

Compute Optimizer は、Fargate 上の Amazon ECS サービスの、次の CloudWatch と Amazon ECS の使用メトリクスを分析します。

メトリクス 説明
CPUUtilization

サービスで使用されている CPU キャパシティのパーセンテージ。

MemoryUtilization

サービスで利用されるメモリの割合。

これらのメトリクスの詳細については、AWS Fargate の Amazon ECS ユーザーガイドの「Amazon ECS CloudWatch のメトリクス」を参照してください。

商用ソフトウェアライセンスの指標

Compute Optimizer は、以下の指標を分析して、商用ソフトウェアライセンスに関するレコメンデーションを生成します。

mssql_enterprise_features_used — 使用中の Microsoft SQL Server エンタープライズエディション機能の数。機能は次のとおりです。

  • バッファプール拡張用に 128 GB を超えるメモリを搭載

  • 4 個以上の vCPUs

  • 複数のデータベースを含む Always On 可用性グループ

  • 非同期コミストレプリカ

  • 読み取り専用レプリカ

  • 非同期データベースミラーリング

  • tempdbメモリ最適化メタデータは有効になっています。

  • R または Python エクステンション

  • ピアツーピアレプリケーション

  • リソースガバナー

RDS DB インスタンスメトリクス

Compute Optimizer は、Amazon RDS DB インスタンスの次の CloudWatch メトリクスを分析します。

メトリクス 説明
CPUUtilization

割り当てられたコンピューティングユニットのうち、DB インスタンスで使用されているものの割合。このメトリクスは、インスタンス上でアプリケーションを実行するために必要な処理能力を特定します。

DatabaseConnections

DB インスタンスに接続されたクライアントセッションの数。

NetworkReceiveThroughput

モニタリングとレプリケーションに使用する顧客データベーストラフィックと Amazon RDS トラフィックの両方を含む、DB インスタンスの受信ネットワークトラフィック。

NetworkTransmitThroughput

モニタリングとレプリケーションに使用する顧客データベーストラフィックと Amazon RDS トラフィックの両方を含む、DB インスタンスの送信ネットワークトラフィック。

ReadIOPS

1 秒あたりのディスク読み取り I/O オペレーションの平均回数。

WriteIOPS

1 秒あたりのディスク書き込み I/O オペレーションの平均回数。

ReadThroughput

1 秒あたりのディスクからの平均読み取りバイト数。

WriteThroughput

1 秒あたりのディスクへの平均書き込みバイト数。

EBSIOBalance%

RDS データベースのバーストバケットに残っている I/O クレジットの割合。このメトリクスは基本モニタリング専用です。

EBSByteBalance%

RDS データベースのバーストバケットに残っているスループットクレジットの割合。このメトリクスは基本モニタリング専用です。

FreeStorageSpace

使用可能なストレージ領域の容量。

Amazon RDS Performance Insights を有効にした場合、Compute Optimizer は Amazon RDS DB インスタンスの以下のメトリクスも分析します。DB インスタンスで Performance Insights を有効にするには、「Amazon Relational Database Service ユーザーガイド」の「Amazon RDS の Performance Insights の有効化と無効化」を参照してください。

注記

Performance Insights が有効になっていない場合、Compute Optimizer は、過剰にプロビジョニングされた RDS DB インスタンスのレコメンデーションを提供しません。

メトリクス 説明
DBLoad

データベース内のセッションアクティビティのレベル。詳細については、「Amazon Relational Database Service ユーザーガイド」の「データベース負荷」を参照してください。

os.swap.in

ディスクからスワップされたメモリの量 (キロバイト単位)。

os.swap.out

ディスクにスワップされたメモリの量 (キロバイト単位)。

Amazon RDS メトリクスの詳細については、「Amazon Relational Database Service ユーザーガイド」の「Amazon RDS のメトリクスリファレンス」を参照してください。