Auto Scaling グループとインスタンスの CloudWatch メトリクスを監視する - Amazon EC2 Auto Scaling

Auto Scaling グループとインスタンスの CloudWatch メトリクスを監視する

メトリクスは CloudWatch での基本的な概念です。メトリクスは、CloudWatch に発行された時系列のデータポイントのセットを表します。メトリクスは監視対象の変数と考え、データポイントは時間の経過と共に変数の値を表します。これらのメトリクスを使用して、システムが正常に実行されていることを確認できます。

Amazon EC2 Auto Scaling は、Auto Scaling グループに関するデータポイントを CloudWatch に発行します。メトリクスは、追加料金なしで 1 分単位で利用できますが、有効にする必要があります。これにより、Auto Scaling グループのオペレーションを継続的に把握できるため、ワークロードの変化に迅速に対応できます。AWS Management Console、AWS CLI、または SDK を使用して、これらのメトリクスを有効または無効にすることができます。

Amazon EC2 は、Auto Scaling インスタンスを記述するデータポイントを CloudWatch に発行します。Amazon EC2 インスタンスのモニタリング間隔は設定可能です。1~5 分の詳細度を選択できます。詳細については、「Auto Scaling インスタンスのモニタリングを設定する」を参照してください。

Auto Scaling グループのメトリクスを有効にする (コンソール)

Auto Scaling グループメトリクスを有効にすると、Auto Scaling グループは毎分 CloudWatch にサンプリングしたデータを送信します。これらのメトリクスの有効化には料金はかかりません。

グループメトリクスを有効にするには

  1. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. Auto Scaling グループの横にあるチェックボックスを選択します。

    ページの下部にスプリットペインが開きます。

  3. [Monitoring] (モニタリング) タブで、ページ上部の [Auto Scaling] の下にある [Auto Scaling group metrics collection] (Auto Scaling グループのメトリクスのコレクション) を選択し、[Enable] (有効化) チェックボックスをオンにします。

グループメトリクスを無効にするには

  1. Amazon EC2 Auto Scaling コンソール (https://console.aws.amazon.com/ec2autoscaling/) を開きます。

  2. Auto Scaling スケーリンググループを選択します。

  3. [モニタリング] タブで、[Auto Scaling group metrics collection (Auto Scaling グループメトリクスの収集)] の [Enable (有効)] チェックボックスをオフにします。

Auto Scaling グループのメトリクスを有効にする (AWS CLI)

グループメトリクスを有効にするには

enable-metrics-collection コマンドを使用して、1 つ以上のグループメトリクスを有効にします。たとえば、次のコマンドは GroupDesiredCapacity メトリクスを有効にします。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --metrics GroupDesiredCapacity --granularity "1Minute"

--metrics メトリクスを省略した場合、すべてのメトリクスが有効になります。

aws autoscaling enable-metrics-collection --auto-scaling-group-name my-asg \ --granularity "1Minute"

グループメトリクスを無効にするには

disable-metrics-collection コマンドを使用します。例えば、次のコマンドはすべての Auto Scaling グループメトリクスを無効にします。

aws autoscaling disable-metrics-collection --auto-scaling-group-name my-asg

使用できるメトリクスとディメンション

グループメトリクスが有効になっている場合、Amazon EC2 Auto Scaling は、次のメトリクスを CloudWatch に送信します。

注記

CloudWatch グループのメトリクスは、ベストエフォートで配信されます。CloudWatch でサービスの中断が発生するまれなケースでは、グループメトリクス履歴のギャップを埋めるためのデータのバックフィルは行われません。

Auto Scaling グループメトリクス

AWS/AutoScaling 名前空間には、次のメトリクスが含まれます。

メトリクス 説明
GroupMinSize

Auto Scaling グループの最小サイズ。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupMaxSize

Auto Scaling グループの最大サイズ。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupDesiredCapacity

Auto Scaling グループが保持しようとするインスタンスの数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupInServiceInstances

Auto Scaling グループの一部として実行するインスタンスの数。このメトリクスには保留中もしくは終了処理中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupPendingInstances

保留中のインスタンスの数。保留中のインスタンスは、稼働状態ではありません。このメトリクスには稼働中もしくは終了処理中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupStandbyInstances

Standby 状態にあるインスタンスの数。この状態のインスタンスはまだ実行中ですが、実際には使用されていません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupTerminatingInstances

終了処理中のインスタンスの数。このメトリクスには稼働中もしくは保留中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupTotalInstances

Auto Scaling グループに含まれるインスタンスの合計数。このメトリクスは稼働中、保留中、および終了処理中のインスタンスの数を特定します。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

AWS/AutoScaling 名前空間には、インスタンスの重み付け機能を使用する Auto Scaling グループに関する以下のメトリクスが含まれます。インスタンスの重み付けが適用されない場合、次のメトリクスが入力されますが、前の表で定義されたメトリクスと等しくなります。

メトリクス 説明
GroupInServiceCapacity

Auto Scaling グループの一部として実行されているキャパシティーユニットの数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupPendingCapacity

保留中のキャパシティーユニットの数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupStandbyCapacity

Standby 状態にあるキャパシティーユニットの数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupTerminatingCapacity

終了処理中のキャパシティーユニットの数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupTotalCapacity

Auto Scaling グループ内のキャパシティーユニットの合計数。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

AWS/AutoScaling 名前空間には、インスタンスの重み付け機能を使用する Auto Scaling グループに関する以下のメトリクスが含まれます。

メトリクス 説明
WarmPoolMinSize

ウォームプールの最小サイズ。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

WarmPoolDesiredCapacity

Amazon EC2 Auto Scaling がウォームプールで維持しようとするキャパシティーの量。

これは、Auto Scaling グループの最大サイズから希望するキャパシティーを引いた値に相当します。また、設定されている場合は、Auto Scaling グループの準備されている最大キャパシティーから希望するキャパシティーを引いた値に相当します。

ただし、ウォームプールの最小サイズが、最大サイズ (または設定されている場合は、準備された最大キャパシティー) と Auto Scaling グループの希望するキャパシティーの差以上である場合、希望するウォームプールのキャパシティーは WarmPoolMinSize に等しくなります。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

WarmPoolPendingCapacity

保留中のウォームプール内のキャパシティー量。このメトリクスには実行中、停止中、または終了処理中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

WarmPoolTerminatingCapacity

終了処理中のウォームプールのキャパシティーの量。このメトリクスには実行中、停止中、または保留中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

WarmPoolWarmedCapacity

スケールアウト中に Auto Scaling グループに入れることができるキャパシティーの量。このメトリクスには保留中もしくは終了処理中のインスタンスは含まれません。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

WarmPoolTotalCapacity

実行中、停止中、保留中、または終了処理中のインスタンスを含む、ウォームプールの合計キャパシティー。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupAndWarmPoolDesiredCapacity

Auto Scaling グループとウォームプールを合わせた希望するキャパシティー。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

GroupAndWarmPoolTotalCapacity

Auto Scaling グループとウォームプールを合わせた合計キャパシティー。これには、実行中、停止中、保留中、終了処理中、または稼働中のインスタンスが含まれます。

レポート基準: メトリクス収集が有効になっている場合に報告されます。

Amazon EC2 Auto Scaling メトリクスのディメンション

ディメンション 説明
AutoScalingGroupName

Auto Scaling グループの名前をフィルターします。

Amazon CloudWatch の使用

CloudWatch メトリクスの表示

CloudWatch コンソールとコマンドラインツールを使用して、Auto Scaling グループメトリクスを表示できます。

CloudWatch コンソールを使用してメトリクスを表示するには

詳細については、「Auto Scaling グループ別に統計を集約する」を参照してください。

CloudWatch メトリクスを表示するには (AWS CLI)

すべての Auto Scaling グループのすべてのメトリクスを表示するには、以下の list-metrics コマンドを使用します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling"

1 つの Auto Scaling グループのメトリクスを表示するには、次のように AutoScalingGroupName ディメンションを指定します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --dimensions Name=AutoScalingGroupName,Value=my-asg

すべての Auto Scaling グループの 1 つのメトリクスを表示するには、次のようにメトリクスの名前を指定します。

aws cloudwatch list-metrics --namespace "AWS/AutoScaling" --metric-name GroupDesiredCapacity

Amazon CloudWatch アラームの作成

メトリクスを監視する目的の 1 つは、アプリケーションが正常に動作しているかどうかを確認することです。Amazon CloudWatch では、特定のメトリクスの値が許容可能なしきい値を超えた場合に通知を送信するアラームを作成できます。

まず、監視するメトリクスを特定します。例えば、Auto Scaling グループの EC2 インスタンスの平均 CPU 使用率を監視するアラームを設定できます。このアクションは、グループのインスタンスの平均的な CPU 使用率が特定の連続する期間に指定したしきい値を超えたときに送信する通知にできます。例えば、メトリクスは 1 分ごとの 4 つの連続した期間で 70% 以上に維持されます。

詳細については、『Amazon CloudWatch ユーザーガイド』の「Amazon CloudWatch アラームの使用」を参照してください。

Auto Scaling グループの CloudWatch アラームを作成するには

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. 必要に応じてリージョンを変更します。ナビゲーションバーから、Auto Scaling グループがあるリージョンを選択します。

  3. ナビゲーションペインで、[アラーム] を選択し、[アラームの作成] を選択します。

  4. [Select metric] (メトリクスの選択) を選択します。

  5. [すべてのメトリクス] タブで、メトリクスを次のように選択します。

    • 自身の Auto Scaling グループについて報告されたメトリクスのみを表示するには、[EC2] を選択してから、[By Auto Scaling Group] (Auto Scaling グループ別) を選択します。1 つの Auto Scaling グループのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • アラームを作成する Auto Scaling グループのメトリクスを含む行を選択します。

    • [Select metric] (メトリクスの選択) を選択します。[Specify metric and conditions] ページに、メトリクスに関するグラフや他の情報が表示されます。

  6. [期間] でアラームの評価期間 (1 分など) を選択します。アラームを評価する場合、各期間は 1 つのデータポイントに集約されます。

    注記

    期間が短いほど、作成されるアラームの感度が高くなります。

  7. [条件] で、次の操作を行います。

    • [Threshold type] で [静的] を選択します。

    • [metric が次の時] で、アラームをトリガーするためにメトリクスの値をしきい値より大きい、以上、未満、または以下のどれにするかを指定します。次に、[than] にアラームをトリガーするしきい値を入力します。

  8. [追加設定] で、次の操作を行います。

    • [Datapoints to alarm (アラームを発生させるデータポイント)] に、アラームをトリガーするためにメトリクス値がしきい値を満たす必要があるデータポイント (評価期間) 数を入力します。例えば、2 つの連続する 5 分期間では、アラームがトリガーされるまで 10 分かかります。

    • [Missing data treatment] では、一部のデータポイントが欠落している場合のアラームの処理を選択します。詳細については、Amazon CloudWatch ユーザーガイドの「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

  9. [Next] を選択します。

  10. [Notification] (通知) で、通知を受け取るために使用する Amazon SNS トピックを選択または作成できます。それ以外の場合は、通知を削除し、準備ができたら後で追加できます。

  11. [Next] を選択します。

  12. 名前を入力し、必要に応じてアラームの説明を入力して [Next] を選択します。

  13. [Create Alarm] (アラームの作成) を選択します。