Amazon CloudWatch メトリックスを使用して、Amazon Elastic Block Store (Amazon EBS) ボリュームの平均スループットと平均 IOPS 数を計算したいと考えています。
簡単な説明
ボリュームの平均スループットと IOPS 数を計算するには、Amazon CloudWatch メトリクスと metric math を使用します。Amazon EBS ボリュームのデータを監視するには、それらの EBS ボリュームを監視する CloudWatch アラームを作成します。
AWSSupport-CalculateEBSPerformanceMetrics オートメーションドキュメントを使用することもできます。このオートメーションは、使用可能な CloudWatch メトリクスを使用して複数の項目を表示します。この出力には、EBS ボリュームの総スループット、IOPS 数、IO サイズなどがあります。これらのタスクは、個々の EBS ボリュームに対して実行することも、インスタンスに接続されているすべての EBS ボリュームに対して実行することもできます。
解決策
スループットを手動で計算する
-
CloudWatch コンソールを開きます。
-
[メトリクス] で [すべてのメトリクス] を選択します。
-
[EBS 名前空間] を選択し、次に [ボリュームごとのメトリクス] を選択します。
-
Amazon EBS ボリュームの対応するメトリクスを選択します。
平均 IOPS を計算するには、VolumeReadOps、VolumeWriteOps、および VolumeIdleTime を選択します。
平均スループットを計算するには、VolumeReadBytes、VolumeWriteBytes、およびVolumeIdleTime を選択します。
-
[グラフ化されたメトリクス] タブを選択します。
-
[統計] で [合計] を選択します。
-
[期間] で、表示する期間を選択します。
-
グラフ化された各メトリクスの前にあるメトリクス ID (m1、m2、m3 など) を書き留めます。
-
[数式を追加] で [空の式で始まる] を選択し、次の式を入力して想定される平均値を計算します。
平均 IOPS を、秒あたりの Ops 単位で計算します。
注: 次の式では、m1 は VolumeReadOps、m2 は VolumeWriteOps です。
(m1+m2)/(PERIOD(m1))
ボリュームがアクティブなときの実際の 1 秒あたりの平均スループットをバイト単位で計算します。
注: 次の式では、m1 は VolumeReadBytes、m2 は VolumeWriteBytes、m3 は VolumeIdleTime です。
(m1+m2)/(PERIOD(m1)−m3)
1 秒あたりの平均スループットをバイト単位で計算します。
注: 次の式では、m1 は VolumeReadBytes、m2 は VolumeWriteBytes です。
(m1+m2)/(PERIOD(m1))
注: マイクロバーストが原因で、スループットと IOPS の平均値が実際の平均値と異なる場合があります。スループットと IOPS は 1 秒あたりの測定値です。CloudWatch は Amazon EBS ボリュームメトリクスを秒単位の間隔で集計しません。詳細については、「Amazon EBS ボリュームがマイクロバーストしているかどうかを判断する方法と、それを防ぐ方法を教えてください」を参照してください。
オートメーションを使用してスループットを計算する
前提条件
- 分析するリソースのボリューム ID またはインスタンス ID をコピーします。オートメーションドキュメントを実行するには、リソース ID が必要です。
- (オプション) オートメーション用の AWS Identity and Access Management (IAM) ロールを作成して指定します。ロールを選択しない場合は、AWS Systems Manager Automation はこのドキュメントを実行するユーザーのアクセス許可を使用します。詳細については、「コンソールを使用してオートメーション用のサービスロールを作成する」を参照してください。
Systems Manager コンソール
Systems Manager から AWSSupport-CalculateEBSPerformanceMetrics オートメーションを実行するには、次の手順を実行します。
- Systems Manager コンソールで上記のオートメーションドキュメントを開きます。必ず、リソースが配置されているリージョンにある同名のドキュメントを開いてください。
- [オートメーションドキュメントの実行] セクションで、[シンプルな実行] を選択します。
- [入力パラメータ] セクションで、次のパラメータを入力します。
ResourceId - 分析する EBS ボリュームまたは EC2 インスタンスの ID を入力します
StartTime - 時刻を UTC で、yyyy-mm-ddThh:mm:ss 形式で入力します。(2021-06-09T13:30:10 など)
EndTime - 時刻を UTC で、yyyy-mm-ddThh:mm:ss 形式で入力します。(2021-06-16T13:30:10 など)
AutomationAssumeRole - この実行における IAM ロールを選択します。このステップは必要に応じて行ってください。
- [実行] を選択します。
最終出力はダッシュボードの URL です。URL を表示するには、[出力] フィールドを展開します。ダッシュボードを使用して、分析されたメトリクスとその上限を確認できます。
注: ダッシュボードを削除するには、cloudwatch:DeleteDashboards アクセス許可が必要です。
AWS コマンドラインインターフェイス (AWS CLI)
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
AWS CLI からこのオートメーションを実行するには、以下のコマンドを使用します。次の値を置き換えてください。
- [ResourceId] の値を、分析するリソース ID に置き換えます。
- StartTime 値を、CloudWatch でデータを表示する開始時間に置き換えます (yyyy-mm-ddThh:mm:ss 形式、UTC)。
- EndTime 値を、CloudWatch でデータを表示する終了時間に置き換えます (yyyy-mm-ddThh:mm:ss 形式、UTC)。
- AutomationAssumeRole の値を、この実行における IAM ロールに置き換えてください。このステップは必要に応じて行ってください。なお、この例ではこの値は指定されていません。
- リージョン us-east-1 をリソースを使用しているリージョンに置き換えます。
aws ssm start-automation-execution --document-name "AWSSupport-CalculateEBSPerformanceMetrics" --document-version "\\$DEFAULT" --parameters '{"ResourceId":\["i-example12345"\], "StartTime":\["2021-06-09T13:30:10"\], "EndTime":\["2021-06-16T13:30:10"\], "Period":\["60"\], "AutomationAssumeRole":\[""\]}' --region us-east-1
関連情報
Amazon CloudWatch metrics for Amazon EBS