EC2 インスタンスの EBS スループットを示すメトリクスを Amazon CloudWatch から取得して、EC2 インスタンスがスループット制限に達したときにアラームを通知する設定方法を教えてください。

最終更新日: 2020 年 8 月 20 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの集計 Amazon Elastic Block Store (Amazon EBS) スループットを示すメトリクスを Amazon CloudWatch から取得する方法を教えてください。 また、EC2 インスタンスがスループット制限に達したとき、アラームを通知する設定方法を教えてください。

簡単な説明

CloudWatch に Xen をベースとした Amazon EC2 インスタンスの EBS スループットを追跡するネイティブの Amazon EBS メトリクスはありません。ただし、EC2EBSThroughput/ebs-stats.sh スクリプトを使用して、EC2 インスタンスの集計 EBS スループットを測定することは可能です。

このスクリプトは、接続されているすべてのボリュームの 1 秒あたりの合計読み取り/書き込みバイト数を収集し、スループットをメトリクスとして Amazon CloudWatch にプッシュします。その後、Amazon CloudWatch コンソールでメトリクスを表示し、指定したしきい値に基づいてトリガーされるアラームを設定できます。

注意: 新しい Nitro インスタンスの M5 と C5 には、CloudWatch メトリックス EBSIOBalance% EBSByteBalance% が含まれています。詳細については、Amazon EBS – 最適化インスタンスを参照してください。

ebs-stats.sh スクリプトは、CloudWatch の Xen ベースの EC2 インスタンス用です。このスクリプトは、Amazon Linux、Red Hat Enterprise Linux、および CentOS インスタンスとのみ互換性があります。ただし、他の Linux ディストリビューション用にスクリプトをカスタマイズすることができます。

注意: インスタンスにインスタンスストアボリュームがある場合、スクリプトはインスタンスストアボリュームのスループットを含む集計スループットをレポートします。つまり、このスクリプトから EBS のスループットを正確に測定できない可能性があります。

解決方法

1.    RHEL ベースのディストリビューションでは、AWS コマンドラインインターフェイス (AWS CLI) をまだインストールしていない場合はインストールします。

2.    ebs-stats.sh スクリプトをダウンロードします。

3.    スクリプトをインスタンスに配置し、実行可能にします。スクリプトをroot ユーザーまたは sudo として実行します。そうしないと、失敗します。

$sudo chmod +x ebs-stats.sh 

4.    AWS CLI から、バックグラウンドで次のコマンドを実行し、指定の ebs-stats.sh ランタイム頻度を設定します。

$sudo nohup ./ebs-stats.sh example-sleep-interval &

注意: example-sleep-interval を各データポイント間の指定の秒数に置き換えます。

5.    IAM ロールを作成します

6.    次のポリシーをロールに添付します。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Action": [
      "cloudwatch:ListMetrics",
      "cloudwatch:GetMetricStatistics",
      "cloudwatch:PutMetricData",
      "autoscaling:DescribeAutoScalingInstances"
    ],
    "Effect": "Allow",
    "Resource": "*"
  }]
}

7.    EC2 インスタンスに IAM ポリシーを添付します。これにより、スクリプトはメトリクスを Amazon CloudWatch にプッシュできるようになります。

8.    CloudWatchコンソールから、 EBSThroughoutMB にアラームを設定します。詳細については、「静的しきい値に基づいて CloudWatch アラームを作成する」または「Amazon CloudWatch アラームの使用」を参照してください。

使用した引数に基づいて、正しい期間を選択してください。