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 使用率メトリクスを分析できるようにするには、以下を実行します。
-
インスタンスへのCloudWatch エージェントのインストール 詳細については、Amazon CloudWatch ユーザーガイド の CloudWatch エージェントのインストール を参照してください。
-
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 を使って動作を理解する
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 のメトリクスリファレンス」を参照してください。