Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング - Amazon EC2 Auto Scaling (日本語)

Amazon CloudWatch を使用した Auto Scaling グループとインスタンスのモニタリング

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

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

Amazon EC2 は、Auto Scaling インスタンスを記述するデータポイントを CloudWatch に発行します。Amazon EC2 インスタンスのモニタリング間隔は設定可能です。次のセクションで説明するように、1 分から 5 分の単位を選択できます。

注記

Amazon EC2 のモニタリングは、Auto Scaling グループ内のインスタンスだけでなく、すべての EC2 インスタンスに利用できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「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 名前空間には、インスタンスの重み付け機能を使用するグループに関する以下のメトリクスが含まれます。インスタンスの重み付けが適用されない場合、次のメトリクスは、前の表で定義された対応するメトリクスと等しくなります。

メトリクス 説明
GroupInServiceCapacity

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

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

GroupPendingCapacity

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

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

GroupStandbyCapacity

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

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

GroupTerminatingCapacity

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

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

GroupTotalCapacity

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

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

Auto Scaling グループメトリクスのディメンション

グループ名で Auto Scaling グループのメトリクスをフィルタリングするには、AutoScalingGroupName ディメンションを使用します。

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

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

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

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

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループの横にあるチェックボックスをオンにします。

    ページの下部に分割ウィンドウが開き、選択したグループに関する情報が表示されます。

  4. [Monitoring] タブで、[Auto Scaling Metrics] の [Enable Group Metrics Collection] を選択します。このオプションが表示されない場合は、[Display] の [Auto Scaling] を選択します。

    
                        Auto Scaling グループメトリクスの収集を有効にします。

グループメトリクスを無効にするには (コンソール)

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

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループを選択します。

  4. [Monitoring] タブで、[Auto Scaling Metrics] の [Disable Group Metrics Collection] を選択します。このオプションが表示されない場合は、[Display] の [Auto Scaling] を選択します。

    
                        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"

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

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

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

Auto Scaling インスタンスのモニタリングの設定

起動設定または起動テンプレートを使用して EC2 インスタンスのモニタリングを設定します。モニタリングは、インスタンスが作成されるたびに、基本モニタリング (5 分間隔) または詳細モニタリング (1 分間隔) で有効になります。詳細モニタリングでは追加料金が適用されます。詳細については、「Amazon CloudWatch 料金表」を参照してください。

注記

デフォルトでは、起動テンプレートを作成した場合、または AWS マネジメントコンソールを使用して起動設定を作成した場合、基本モニタリングが有効になります。詳細モニタリングは、AWS CLI または SDK を使用して起動設定を作成する場合に有効になります。

新しい EC2 インスタンスで有効になるモニタリングのタイプを変更するには、起動テンプレートを更新するか、Auto Scaling グループを更新して新しい起動設定を使用します。インスタンスを終了しても、以前に有効化されたモニタリングタイプが使用されます。すべてのインスタンスを更新するには、それらを削除して Auto Scaling グループに置き換えるか、monitor-instances または unmonitor-instances を使用してインスタンスを個別に更新します。

Auto Scaling グループに関連付けられている CloudWatch アラームがある場合は、put-metric-alarm コマンドを使用して各アラームを更新します。各間隔をモニタリングタイプに合わせます (基本モニタリングでは 300 秒、詳細モニタリングでは 60 秒)。詳細モニタリングから基本モニタリングに変更しても、5 分間アラームを更新しないと、1 分ごとに統計を確認し続けます。5 回のうち最大 4 回は利用可能なデータが検出されない可能性があります。

CloudWatch モニタリングを設定するには (コンソール)

AWS マネジメントコンソール を使用して起動設定を作成する場合は、[Configure Details (詳細の設定)] ページで [CloudWatch 詳細モニタリングを有効化] を選択します。それ以外の場合は、基本モニタリングが有効です。詳細については、「起動設定を作成する」を参照してください。

AWS マネジメントコンソール を使用して起動テンプレートの詳細モニタリングを有効にするには、[Advanced Details (詳細情報)] セクションの [Monitoring (モニタリング)] で、[Enable (有効)] を選択します。それ以外の場合は、基本モニタリングが有効です。詳細については、「Auto Scaling グループの起動テンプレートを作成する」を参照してください。

CloudWatch モニタリングを設定するには (AWS CLI)

起動設定の場合は、create-launch-configuration コマンドを --instance-monitoring オプションとともに使用します。このオプションを true に設定して詳細モニタリングを有効に、または false に設定して基本モニタリングを有効にします。

--instance-monitoring Enabled=true

起動テンプレートの場合は、create-launch-template コマンドを使用して、起動テンプレートを作成するための情報が含まれる JSON ファイルを渡します。モニタリング属性を "Monitoring":{"Enabled":true} に設定して詳細モニタリングを有効にするか、または "Monitoring":{"Enabled":false} に設定して基本モニタリングを有効にします。

CloudWatch メトリクスの表示

Amazon EC2 コンソールを使用して、Auto Scaling グループとインスタンスの CloudWatch メトリクスを表示できます。これらのメトリクスは、モニタリング用のグラフのように表示されます。

または、CloudWatch コンソールを使用してこれらのメトリクスを表示できます。

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

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

  2. ナビゲーションペインの [Auto Scaling] で、[Auto Scaling グループ] を選択します。

  3. Auto Scaling グループを選択します。

  4. [Monitoring] タブを選択します。

  5. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。

  6. グループのメトリクスを表示するには、[Display] の [Auto Scaling] を選択します。1 つのメトリクスの大きいビューを取得するには、グラフを選択します。グループでは、次のメトリクスを使用できます。

    • 最小グループサイズ — GroupMinSize

    • 最大グループサイズ — GroupMaxSize

    • 希望する容量 — GroupDesiredCapacity

    • 実行中のインスタンス — GroupInServiceInstances

    • 保留中のインスタンス — GroupPendingInstances

    • スタンバイインスタンス — GroupStandbyInstances

    • インスタンスの終了 — GroupTerminatingInstances

    • 合計インスタンス — GroupTotalInstances

  7. インスタンスのメトリクスを表示するには、[Display] の [EC2] を選択します。1 つのメトリクスの大きいビューを取得するには、グラフを選択します。インスタンスでは、次のメトリクスを使用できます。

    • CPU 使用率 — CPUUtilization

    • ディスク読み取り — DiskReadBytes

    • ディスク読み取り操作 — DiskReadOps

    • ディスク書き込み — DiskWriteBytes

    • ディスク書き込み操作 — DiskWriteOps

    • ネットワーク入力 — NetworkIn

    • ネットワーク出力 — NetworkOut

    • ステータスチェックに失敗 (すべて) — StatusCheckFailed

    • ステータスチェックに失敗 (インスタンス) — StatusCheckFailed_Instance

    • ステータスチェックに失敗 (システム) — StatusCheckFailed_System

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. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

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

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

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

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

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

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

    • [メトリクスの選択] を選択します。[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. [通知] で、通知を受け取るために使用する Amazon SNS トピックを選択または作成できます。それ以外の場合は、通知を削除し、準備ができたら後で追加できます。

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

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

  13. [Create Alarm] を選択します。