Amazon EC2 Auto Scaling (日本語)
ユーザーガイド

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

Amazon CloudWatch を使用すると、統計を順序付けられた時系列データのセット (メトリクスと呼ばれる) として取得できます。これらのメトリクスを使用して、システムが正常に実行されていることを確認できます。

Amazon EC2 は Auto Scaling インスタンスを説明する CloudWatch にメトリクスを送信します。これらのメトリクスは、Auto Scaling グループにあるものだけでなく、すべての EC2 インスタンスに利用することができます。詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「インスタンスメトリクス」を参照してください。

Auto Scaling グループは、グループそのものについて説明する CloudWatch にメトリクスを送信できます。これらのメトリクスを有効にする必要があります。

Auto Scaling グループメトリクス

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

メトリクス 説明
GroupMinSize

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

GroupMaxSize

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

GroupDesiredCapacity

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

GroupInServiceInstances

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

GroupPendingInstances

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

GroupStandbyInstances

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

GroupTerminatingInstances

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

GroupTotalInstances

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 Groups] を選択します。

  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 Groups] を選択します。

  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 Groups] を選択します。

  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 つは、アプリケーションが正常に動作しているかどうかを確認することです。メトリクスが許容しきい値と考慮される値を超える場合、CloudWatch アラームによってアクションがトリガーされるよう設定できます。CloudWatch でサポートされるアラームアクションのいずれかを指定できます。

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

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

平均 CPU 使用率に基づいた CloudWatch アラームを作成するには

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

  2. ナビゲーションペインで、[Alarms]、[Create Alarm] の順に選択します。

  3. [Select Metric (メトリクスを選択する)]、[EC2] の順に選択します。

  4. 結果をフィルタリングするメトリクスのカテゴリを選択します。Auto Scaling グループメトリクスを表示するには、[Auto Scaling グループ別] を選択します。個別のインスタンスのメトリクスのみが必要な場合は、[Per-Instance Metrics (インスタンスごとのメトリクス)] を選択します。

  5. 次のようにメトリクスを選択します。

    1. アラームを作成する Auto Scaling グループあるいはインスタンスを含む行と [CPUUtilization] メトリクスを選択します。

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

    3. [Statistic (統計)] で [Average (平均)] を選択します。

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

      注記

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

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

  6. [Conditions (条件)] で、しきい値条件を定義してアラームを定義します。たとえば、メトリクスが 70 以上の値になるたびにアラームをトリガーするしきい値を定義できます。

  7. [Additional configuration (追加設定)] の [Datapoints to alarm (アラームするデータポイント)] では、アラームをトリガーする必要のあるデータポイント (評価期間) の数を指定します (4 つのうち 4 つなど)。これでアラームが作成されます。このアラームは、指定した数の期間で連続してしきい値を超過すると、ALARM 状態に移行します。

  8. [Missing data treatment (欠落データの処理)] では、次のいずれかを選択します。CPUUtilization など継続的にデータを報告するメトリクスでは、欠落したデータポイントは問題があることを示す場合があるため、[Treat missing data as bad (breaching threshold) (欠落データを問題として処理 (しきい値を超過))] を選択することができます。詳細については、『Amazon CloudWatch ユーザーガイド』の「CloudWatch アラームが欠落データを処理する方法の設定」を参照してください。

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

  10. [Configure actions (アクションの設定)] で、実行するアクションを定義します。

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

  12. [Add a description (説明の追加)] でアラームの名前と説明を入力し、[Next (次)] を選択します。

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