Auto Scaling インスタンスのHealth チェック - Amazon EC2 Auto Scaling (日本語)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Auto Scaling インスタンスのHealth チェック

Auto Scaling インスタンスのヘルスステータスは、正常または異常のどちらかです。Auto Scaling グループ内のすべてのインスタンスは正常な状態で起動されます。Amazon EC2 Auto Scaling が異常であると通知しない限り、インスタンスは正常であると見なされます。この通知は、次の 1 つ以上のソースから送られる可能性があります。Amazon EC2、Elastic Load Balancing(ELB)、またはカスタムヘルスチェック。

Amazon EC2 Auto Scaling がインスタンスを異常ありとマークすると、置き換えがスケジュールされます。インスタンスを置き換えない場合は、個々の Auto Scaling グループのヘルスチェックプロセスを停止できます。

インスタンスのヘルスステータス

Amazon EC2 Auto Scaling は、次の 1 つ以上のインスタンスのヘルスステータスを判断できます。

  • インスタンスを損なう可能性があるハードウェアとソフトウェアの問題を特定するために Amazon EC2 によって提供されるステータスチェック。Auto Scaling グループのデフォルトのヘルスチェックは、EC2 ステータスチェックのみです。

  • Elastic Load Balancing (ELB) が提供するHealth チェック。これあのヘルスチェックはデフォルトで無効になっていますが、有効にすることができます。

  • カスタムヘルスチェック。

インスタンスのヘルスチェック

インスタンスが完全に設定され、最初のヘルスチェックに合格すると、Amazon EC2 Auto Scaling によって正常とみなされます。Amazon EC2 Auto Scaling は、インスタンスのヘルス状態を定期的にチェックして、Auto Scaling グループ内のすべてのインスタンスが実行中および良好な状態にあることを確認します。インスタンスに異常があると判断した場合、そのインスタンスを終了して新しいインスタンスを起動します。これは、実行中のインスタンスの数を、ユーザーが定義した最小数(または、指定した場合には目標数)に維持するのに役立ちます。

Amazon EC2 ステータスチェック

Amazon EC2 Auto Scaling ヘルスチェックは、Amazon EC2 ステータスチェックの結果を使用してインスタンスのヘルスステータスを確認します。インスタンスがrunningまたはシステムステータスがimpairedと、Amazon EC2 Auto Scaling はインスタンスを異常であると見なし、代替インスタンスを起動します。これには、インスタンスが以下のいずれかの状態にある場合が含まれます。

  • stopping

  • stopped

  • shutting-down

  • terminated

EC2 ステータスチェックは特別な設定を必要とせず、常に有効になっています。これには、インスタンスステータスチェックとシステムステータスチェックの両方が含まれます。詳細については、「」を参照してください。ステータスチェックのタイプ()Linux インスタンス用 Amazon EC2 ユーザーガイド

Elastic Load Balancing シング (ELB) Health チェック

使用しないグループのインスタンスELBヘルスチェックは、それらがrunning状態。使用するグループのインスタンスELBヘルスチェックは、それらがrunning状態にあり、ロードバランサーによって正常であると報告されます。

Auto Scaling グループにロードバランサーまたはターゲットグループをアタッチした場合、Elastic Load Balancing がそれをと報告したときにインスタンスを異常ありとマークするように、グループを設定できます。unhealthy。ロードバランサーに対して Connection Draining が有効になっている場合、Amazon EC2 Auto Scaling は実行中のリクエストが完了するか最大制限時間に達するかのどちらか早いほうまで待ってから、スケーリングイベントまたはヘルスチェック交換によってインスタンスを終了します。詳細については、「ELB ヘルスチェックの追加」を参照してください。

カスタムヘルスチェック

カスタムヘルスチェックがある場合、ヘルスチェックから情報を Amazon EC2 Auto Scaling に送信し、Amazon EC2 Auto Scaling がその情報を使用するようにできます。たとえば、インスタンスが正常に機能していないと判断した場合は、インスタンスのヘルスステータスを Unhealthy に設定できます。Amazon EC2 Auto Scaling が次回インスタンスのヘルスチェックを行うときは、インスタンスが異常であると判断して代替インスタンスを起動します。詳細については、「カスタムヘルスチェックの使用」を参照してください。

Health チェックの猶予期間

インスタンスが起動すると、Amazon EC2 Auto Scaling は、HealthCheckGracePeriodAuto Scaling グループに対して、インスタンスのヘルスステータスをチェックするまでの待機時間を決定します。Amazon EC2 および Elastic Load Balancing のヘルスチェックは、ヘルスチェックの猶予期間が終了する前に完了できます ただし、Amazon EC2 Auto Scaling は、ヘルスチェックの猶予期間が終了するまで、それらに対応しません。

デフォルトでは、ヘルスチェックの猶予期間はです。300から Auto Scaling グループを作成するときの秒数は、AWS Management Console。デフォルト値はです。0Auto Scaling グループを作成するときの秒数は、AWS CLISDK を使用します。

インスタンスに十分なウォームアップ期間を設けるためには、アプリケーションで想定される開始期間 (インスタンスのサービスが開始されてからトラフィックを受信できるようになるまで) に対応するようにヘルスチェックの猶予期間を設定します。ライフサイクルフックを追加した場合、ヘルスチェックの猶予期間が始まるのは、ライフサイクルフックアクションが完了してインスタンスが InService 状態になってからになります。

異常のあるインスタンスの置き換え

ヘルスチェックによってインスタンスが異常ありとマークされると、ほぼ即座に代わりのインスタンスがスケジュールされます。これが自動的に正常に回復することはありません。手動で介入するには、set-instance-healthコマンドまたはSetInstanceHealthオペレーションを実行して、インスタンスのヘルスステータスを正常に設定し直します。インスタンスが既に終了している場合は、エラーが発生します。

注記

インスタンスを異常ありとマークしてからその実際の終了までの間隔は短いため、インスタンスのヘルスステータスを正常に設定し直すためにset-instance-healthコマンドまたはSetInstanceHealth操作は、おそらく中断されたグループに対してのみ有用です。詳細については、「Auto Scaling グループのプロセスの一時停止と再開」を参照してください。

Amazon EC2 Auto Scaling は、異常のあるインスタンスを終了する新しいスケーリングアクティビティを作成し、そのインスタンスを終了します。その後、別のスケーリングアクティビティによって、終了したインスタンスを置き換えるために新しいインスタンスが起動します。

インスタンスを削除すると、関連付けられたすべての Elastic IP アドレスは関連付けを解除され、新しいインスタンスと自動的に関連付けられることはありません。これらの Elastic IP アドレスと新しいインスタンスの関連付けは、手動で行う必要があります。同様に、インスタンスが終了すると、アタッチされている EBS ボリュームはデタッチされます。これらの EBS ボリュームを新しいインスタンスに手動でアタッチする必要があります。詳細については、「」を参照してください。Elastic IP アドレスの関連付け解除と別のインスタンスとの関連付け解除およびAmazon EBS ボリュームのインスタンスにアタッチする()Linux インスタンス用 Amazon EC2 ユーザーガイド

カスタムヘルスチェックの使用

独自のヘルスチェックシステムがある場合、システムから Amazon EC2 Auto Scaling にインスタンスの状態情報を直接送信するには、AWS CLISDK を使用します。次の例は、AWS CLI を使用してインスタンスのヘルス状態を設定し、インスタンスのヘルス状態を確認する方法を示しています。

以下のを使用してください。set-instance-healthコマンドを使用して、指定したインスタンスのヘルス状態をUnhealthy

aws autoscaling set-instance-health --instance-id i-123abc45d --health-status Unhealthy

以下のを使用してください。describe-auto-scaling-groupsコマンドを使用して、インスタンスの状態がであることを確認します。Unhealthy

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg

次に示すのは、インスタンスのヘルスステータスが Unhealthy であり、インスタンスが終了中であることを示す応答の例です。

{ "AutoScalingGroups": [ { .... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-123abc45d", "HealthStatus": "Unhealthy", "LifecycleState": "Terminating" }, ... ] } ] }

以下の資料も参照してください。

ヘルスチェックの詳細については、「Amazon EC2 Auto Scaling のトラブルシューティング: ヘルスチェック」を参照してください。ヘルスチェックが失敗した場合は、このトピックでトラブルシューティングの手順を確認してください。このトピックは、Auto Scaling グループで何が問題となったのかを理解し、その修正方法を示します。