ヘルスチェックのステータスとヘルスチェックの失敗理由を表示する - Amazon EC2 Auto Scaling

ヘルスチェックのステータスとヘルスチェックの失敗理由を表示する

ヘルスチェックにより、Amazon EC2 Auto Scaling は、インスタンスが異常であり、終了する必要があるタイミングを判断できます。ウォームプールインスタンスがStopped状態の場合、Amazon EBS がStoppedインスタンスの可用性を確認して、異常なインスタンスを特定します。これは、DescribeVolumeStatusAPI を使用して、インスタンスにアタッチされている EBS ボリュームのステータスを判別できます。ウォームプールインスタンスのRunning状態では、EC2 ステータスチェックに依存して、インスタンスの健全性を判断します。ウォームプールインスタンスのヘルスチェック猶予期間はありませんが、Amazon EC2 Auto Scaling はライフサイクルフックが終了するまで、インスタンスのヘルスチェックを開始しません。

インスタンスが異常であることが判明した場合、Amazon EC2 Auto Scaling は自動的に異常インスタンスを削除し、新しいインスタンスを作成して置き換えます。インスタンスは、通常、ヘルスチェックに失敗してから数分以内に終了します。詳細については、「異常なインスタンスの置き換え」を参照してください。

カスタムヘルスチェックもサポートされています。これは、インスタンスの状態を検出し、この情報を Amazon EC2 Auto Scaling に送信できる独自のヘルスチェックシステムがある場合に役立ちます。詳細については、「カスタムヘルス検出タスク」を参照してください。

Amazon EC2 Auto Scaling コンソールで、ウォームプールインスタンスのステータス(正常または異常)を、ウォームプールインスタンスのステータスを表示できます。また、ヘルスのステータスを表示するには、AWS CLIまたは SDK のいずれかを使用することもできます。

ウォームプールインスタンスのステータスを表示するには (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  3. [Instance management (インスタンス管理)] タブにある、[Warm pool instances (ウォームプールインスタンス)] の [Lifecycle (ライフサイクル)] 列にインスタンスの状態が表示されます。

    -ヘルスステータス列には、Amazon EC2 Auto Scaling がインスタンスの健全性に対して行った評価が表示されます。

    注記

    新しいインスタンスは正常に起動します。ライフサイクルフックが終了するまで、インスタンスの健全性はチェックされません。

ヘルスチェックの失敗の理由を表示するには (コンソール)
  1. https://console.aws.amazon.com/ec2/ でAmazon EC2 コンソールを開き、ナビゲーションペインで [Auto Scaling グループ] を選択します。

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

    [Auto Scaling groups] (Auto Scaling グループ) ページの下部にスプリットペインが開きます。

  3. [Activity (アクティビティ)] タブの [Activity history (アクティビティ履歴)] の下の [Status (ステータス)] 列に、Auto Scaling グループがインスタンスを正常に起動したか、終了したかが表示されます。

    正常でないインスタンスを終了した場合、原因列には、終了の日時、およびヘルスチェックが失敗した理由が表示されます。たとえば、「2021-04-01T 21:48:35 Z で、EBS ボリュームのヘルスチェックの失敗に応じて、インスタンスがサービス停止されました」と表示されます。

ウォームプールインスタンスのステータスを表示するには (AWS CLI)

Auto Scaling グループのウォームプールを表示するには、以下を使用します。describe-warm-poolコマンドを実行します。

aws autoscaling describe-warm-pool --auto-scaling-group-name my-asg

出力例。

{ "WarmPoolConfiguration": { "MinSize": 0, "PoolState": "Stopped" }, "Instances": [ { "InstanceId": "i-0b5e5e7521cfaa46c", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2a", "LifecycleState": "Warmed:Stopped", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-08c4cd42f320d5dcd", "LaunchTemplateName": "my-template-for-auto-scaling", "Version": "1" } }, { "InstanceId": "i-0e21af9dcfb7aa6bf", "InstanceType": "t2.micro", "AvailabilityZone": "us-west-2a", "LifecycleState": "Warmed:Stopped", "HealthStatus": "Healthy", "LaunchTemplate": { "LaunchTemplateId": "lt-08c4cd42f320d5dcd", "LaunchTemplateName": "my-template-for-auto-scaling", "Version": "1" } } ] }
ヘルスチェックの失敗理由を表示するには (AWS CLI)

以下の describe-scaling-activities コマンドを実行します。

aws autoscaling describe-scaling-activities --auto-scaling-group-name my-asg

以下に、応答の例を示します。Descriptionは、Auto Scaling グループがインスタンスを終了したことを示し、Causeは、ヘルスチェックが失敗した理由を示します。

スケーリングアクティビティは、開始時刻順に並べられます。まだ進行中のアクティビティを最初に説明します。

{ "Activities": [ { "ActivityId": "4c65e23d-a35a-4e7d-b6e4-2eaa8753dc12", "AutoScalingGroupName": "my-asg", "Description": "Terminating EC2 instance: i-04925c838b6438f14", "Cause": "At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure.", "StartTime": "2021-04-01T21:48:35.859Z", "EndTime": "2021-04-01T21:49:18Z", "StatusCode": "Successful", "Progress": 100, "Details": "{\"Subnet ID\":\"subnet-5ea0c127\",\"Availability Zone\":\"us-west-2a\"...}", "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:283179a2-f3ce-423d-93f6-66bb518232f7:autoScalingGroupName/my-asg" }, ... ] }