CloudWatch メトリックスを使用して、EBS ボリュームが提供している平均スループットと平均 IOPS 数を計算する方法を教えてください。

所要時間2分
0

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 ボリュームに対して実行することもできます。

解決策

スループットを手動で計算する

  1. CloudWatch コンソールを開きます。

  2. [メトリクス][すべてのメトリクス] を選択します。

  3. [EBS 名前空間] を選択し、次に [ボリュームごとのメトリクス] を選択します。

  4. Amazon EBS ボリュームの対応するメトリクスを選択します。
    平均 IOPS を計算するには、VolumeReadOpsVolumeWriteOps、および VolumeIdleTime を選択します。
    平均スループットを計算するには、VolumeReadBytesVolumeWriteBytes、およびVolumeIdleTime を選択します。

  5. [グラフ化されたメトリクス] タブを選択します。

  6. [統計][合計] を選択します。

  7. [期間] で、表示する期間を選択します。

  8. グラフ化された各メトリクスの前にあるメトリクス ID (m1、m2、m3 など) を書き留めます。

  9. [数式を追加][空の式で始まる] を選択し、次の式を入力して想定される平均値を計算します。

    平均 IOPS を、秒あたりの Ops 単位で計算します。
    注: 次の式では、m1VolumeReadOpsm2VolumeWriteOps です。
    (m1+m2)/(PERIOD(m1))

    ボリュームがアクティブなときの実際の 1 秒あたりの平均スループットをバイト単位で計算します。
    注: 次の式では、m1VolumeReadBytesm2VolumeWriteBytesm3VolumeIdleTime です。
    (m1+m2)/(PERIOD(m1)−m3)

    1 秒あたりの平均スループットをバイト単位で計算します。
    注: 次の式では、m1VolumeReadBytesm2VolumeWriteBytes です。
    (m1+m2)/(PERIOD(m1))

注: マイクロバーストが原因で、スループットと IOPS の平均値が実際の平均値と異なる場合があります。スループットと IOPS は 1 秒あたりの測定値です。CloudWatch は Amazon EBS ボリュームメトリクスを秒単位の間隔で集計しません。詳細については、「Amazon EBS ボリュームがマイクロバーストしているかどうかを判断する方法と、それを防ぐ方法を教えてください」を参照してください。

オートメーションを使用してスループットを計算する

前提条件

  1. 分析するリソースのボリューム ID またはインスタンス ID をコピーします。オートメーションドキュメントを実行するには、リソース ID が必要です。
  2. (オプション) オートメーション用の AWS Identity and Access Management (IAM) ロールを作成して指定します。ロールを選択しない場合は、AWS Systems Manager Automation はこのドキュメントを実行するユーザーのアクセス許可を使用します。詳細については、「コンソールを使用してオートメーション用のサービスロールを作成する」を参照してください。

Systems Manager コンソール

Systems Manager から AWSSupport-CalculateEBSPerformanceMetrics オートメーションを実行するには、次の手順を実行します。

  1. Systems Manager コンソールで上記のオートメーションドキュメントを開きます。必ず、リソースが配置されているリージョンにある同名のドキュメントを開いてください。
  2. [オートメーションドキュメントの実行] セクションで、[シンプルな実行] を選択します。
  3. [入力パラメータ] セクションで、次のパラメータを入力します。
    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 ロールを選択します。このステップは必要に応じて行ってください。
  4. [実行] を選択します。

最終出力はダッシュボードの 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

コメントはありません

関連するコンテンツ