Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling グループを設定していますが、異常な Amazon EC2 インスタンスは終了されません。
簡単な説明
Amazon EC2 Auto Scaling は、Amazon EC2 ステータスチェックと Elastic Load Balancing (ELB) ヘルスチェックを使用して、インスタンスのヘルスステータスを自動的に判断できます。Amazon EC2 Auto Scaling グループのすべてのスケーリングアクションは、Amazon EC2 コンソールのアクティビティ履歴に記録されます。Amazon EC2 Auto Scaling が異常なインスタンスを削除しなかった理由を、アクティビティ履歴だけでは判断できない場合があります。
異常なインスタンスの状態と、そのインスタンスを終了する方法の詳細については、Amazon EC2 コンソールで確認できます。次の設定を適用します。
- ヘルスチェック猶予期間
- 中断されたプロセス
- EC2 コンソールのインスタンス状態
- 自動スケーリンググループのインスタンス状態
- ELB ヘルスチェック
解決策
まず、Amazon EC2 Auto Scaling のインスタンスの状態をメモします。
- Amazon EC2 コンソールにサインインします。ナビゲーションペインの [自動スケーリング] で [自動スケーリンググループ] を選択し、次にインスタンスのグループを選択します。
- [インスタンス] ビューを選択し、インスタンスのヘルス状態をメモします。
ヘルスチェック猶予期間
Amazon EC2 Auto Scaling は、ヘルスチェックの猶予期間が終了するまで、EC2 ステータスチェックと ELB ヘルスチェックに基づいてサービスを開始したインスタンスを終了しません。猶予期間の長さを調べるには:
- Amazon EC2 コンソール のナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択し、インスタンスのグループを選択します。
- [詳細] ビューを選択し、[ヘルスチェック猶予期間] の長さをメモします。
**中断されたプロセス **
HealthCheck、ReplaceUnhealthy、Terminate などのプロセスの停止は、Amazon EC2 Auto Scaling の異常なインスタンスを検出、置換、または終了する機能に影響します。
- Amazon EC2 コンソール のナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択し、インスタンスのグループを選択します。
- [詳細] ビューを選択します。
- [編集] を選択し、次のプロセスのいずれかが存在する場合は、[中断されたプロセス] から削除します。 [HealthCheck]、[ReplaceUnhealthy]、または [Terminate]。
- [保存] を選択してプロセスを再開します。
Amazon EC2 コンソールのインスタンスの状態
Amazon EC2 Auto Scaling は、ステータスが「障害あり」のインスタンスをすぐには終了しません。代わりに、Amazon EC2 Auto Scaling はインスタンスが回復するまで数分待ちます。インスタンスに障害があるかどうかを確認するには:
- Amazon EC2 コンソールのナビゲーションペインの [インスタンス] で、[インスタンス] を選択し、インスタンスを選択します。
- [ステータスチェック] ビューを選択し、インスタンスのステータスが [障害] になっているかどうかをメモします。
Amazon EC2 Auto Scaling は、ステータスチェックのデータを報告しないインスタンスを遅延させたり、終了させなかったりする場合もあります。これは通常、Amazon CloudWatch のステータスチェックメトリクスのデータが不十分な場合に発生します。これらのインスタンスを手動で終了するには:
- Amazon EC2 コンソールのナビゲーションペインの [インスタンス] で、[インスタンス] を選択し、インスタンスを選択します。
- [モニタリング] ビューを選択し、インスタンスのステータスをメモします。
- ステータスが [データ不足] の場合は、インスタンスを再度選択し、[アクション] メニューを選択し、[インスタンスの状態] を選択して、[終了] を選択します。
Auto Scaling グループのインスタンス状態
Amazon EC2 Auto Scaling は、スタンバイ状態のインスタンスではヘルスチェックを実行しません。スタンバイインスタンスを InService 状態に戻すには:
- Amazon EC2 コンソールのナビゲーションペインの [Auto Scaling グループ] で、インスタンスのグループを選択し、[インスタンス] ビューを選択します。
- フィルターメニュー [すべてのライフサイクルステータス] を選択し、[スタンバイ] を選択します。
- ヘルスチェックを再開するには、インスタンスのコンテキスト (右クリック) メニューを開き、[InService に設定] を選択します。これにより、スタンバイ状態が終了します。
Amazon EC2 Auto Scaling は、ライフサイクルフックが完了するのを待っている場合、インスタンスの終了を待ちます。ライフサイクルステータスを確認してライフサイクルフックを完了するには:
- Amazon EC2 コンソール のナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択し、インスタンスのグループを選択します。
- [インスタンス] ビューを選択し、インスタンスの [ライフサイクル] ステータスをメモします。
- ステータスが [terminating: wait] の場合は、ハートビートのタイムアウトを確認してから [completing-lifecycle-action] を実行してライフサイクルフックを完了できます。
Amazon EC2 Auto Scaling が ELB 接続のドレイン期間の完了を待っている場合は、インスタンスを終了するまで待機します。
- Amazon EC2 コンソール のナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択し、インスタンスのグループを選択します。
- [インスタンス] ビューを選択し、インスタンスの [ライフサイクル] が終了していることを確認します。
- 次に、[アクティビティ履歴] ビューを選択します。
- [フィルター] で [ELB 接続のドレインを待機中] を選択して、グループがインスタンスの終了を待っているかどうかを確認します。
[ELB ヘルスチェック]
ELB 設定は、ヘルスチェックとインスタンスの置き換えに影響する可能性があります。ELB コンソールでインスタンスのステータスをメモします。
- Amazon EC2 コンソールのナビゲーションペインの [ロード バランシング] で [ロードバランサー] を選択し、インスタンスが登録されているロードバランサーを選択します。
- [インスタンス] ビューを選択し、インスタンスのステータスと説明をメモします。
Amazon EC2 Auto Scaling は、グループのヘルスチェック設定が EC2 に設定されている場合、[ELB ヘルスチェック] の結果を使用してインスタンスのヘルスステータスを判断しません。その結果、Amazon EC2 Auto Scaling は ELB ヘルスチェックに失敗したインスタンスを終了しません。ELB コンソールではインスタンスのステータスが OutOfService であるが、Amazon EC2 Auto Scaling コンソールではインスタンスのステータスが Healthy の場合は、ヘルスチェックタイプが ELB に設定されていることを確認します。
- Amazon EC2 コンソール のナビゲーションペインの [Auto Scaling] で [Auto Scaling グループ] を選択し、インスタンスのグループを選択します。
- [詳細] ビューを選択し、[ヘルスチェックタイプ] をメモします。
- [編集] を選択し、[ヘルスチェックタイプ] で [ELB] を選択し、[保存] を選択します。
グループのヘルスチェックタイプがすでに ELB で、ELB コンソールのインスタンスのステータスが OutOfService の場合は、前にメモしたステータスの説明を使用して以降の手順を決定してください。
- インスタンスの登録はまだ進行中です。ロードバランサーがインスタンスの登録を完了し、インスタンスが [InService] 状態になるのを待ちます。
- インスタンスは、ロードバランサーがトラフィックをにルーティングするように設定されていない Amazon EC2 アベイラビリティーゾーンにあります。 Auto Scaling グループまたはロードバランサーのサブネットを編集して、インスタンスのサブネットと同じであることを確認してください。
- インスタンスが設定された HealthyThreshold 数のヘルスチェックに連続して合格していません。ELB がヘルスチェックを完了し、インスタンスが InService 状態になるのを待ってください。
関連情報
ステータスチェックに失敗したインスタンスのトラブルシューティング
Amazon EC2 Auto Scaling がインスタンスを終了したのはなぜですか?