Amazon EC2 Auto Scaling がインスタンスを終了したのはなぜですか?

所要時間2分
0

Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling グループがインスタンスを終了しました。Amazon EC2 コンソールで終了の理由が表示されていません。

簡単な説明

Amazon EC2 自動スケーリングは、Amazon EC2 または Elastic Load Balancing (ELB) ヘルスチェックを利用してインスタンスのヘルス状態を判断します。ヘルスチェックの置換を含む 自動スケーリンググループのすべてのスケーリングアクションは、Amazon EC2 コンソールのアクティビティ履歴で確認できます。

解決策

トラブルシューティングの手順を決定するには、[アクティビティ履歴] ビューにあるインスタンスの説明を使用してください。

まず、インスタンスの終了の説明と原因を探します。

  1. [Amazon EC2 コンソール] を開きます。
  2. ナビゲーションペインの [自動スケーリング] で、[自動スケーリンググループ] を選択します。次に、インスタンスのグループを選択します。
  3. [アクティビティ] ビューを選択し、[アクティビティ履歴] でインスタンスの終了イベントを検索します。
  4. インスタンスの終了イベントの**[説明]** と [原因] に注意します。

インスタンスが終了した理由をトラブルシューティングするには、次の [説明] 例を参照してください。

「インスタンスが終了または停止したことを示す EC2 ヘルスチェックに応答して、インスタンスがサービス停止されたました」

Amazon EC2 自動スケーリングは、停止して再起動したインスタンスを終了します。ユーザーがインスタンスを手動で停止または再起動したかどうかを判断するには、AWS CloudTrail 履歴を確認します。

  1. [AWS CloudTrail コンソール] を開きます。
  2. ナビゲーションペインで、[イベント履歴] を選択します。
  3. TerminateInstancesStopInstances、または RebootInstances のAPI 呼び出しの履歴を確認してください。

「インスタンスは EC2 インスタンスのステータスチェックの失敗に応じて終了されました」

Amazon CloudWatch メトリクスを使用して、インスタンスまたはシステムチェックの失敗を検出します。

  1. [Amazon CloudWatch コンソール] を開きます。
  2. ナビゲーションペインで [メトリクス] を選択した後、[すべてのメトリクス] を選択します。
  3. メトリクスパネルで [EC2] を選択し、[Per-Instance Metrics] を選択します。
  4. instance-id を入力し、[StatusCheckFailed_Instance][StatusCheckFailed_System]、または [StatusCheckFailed] を選択すると、メトリクスグラフが表示されます。

「ELB システムヘルスチェックの失敗を受けて、インスタンスがサービス停止されました」

自動スケーリンググループの Elastic Load Balancing ヘルスチェックを有効にした場合、Amazon EC2 自動スケーリングは Elastic Load Balancing と EC2 ヘルスチェックの両方を実行します。次に、サービスはいずれかのヘルスチェックに失敗したインスタンスを終了します。自動スケーリンググループで Elastic Load Balancing ヘルスチェックが有効になっていることを確認します。

  1. [Amazon EC2 コンソール] を開きます。
  2. ナビゲーションペインの [自動スケーリング] で [自動スケーリンググループ] を選択し、次にインスタンスのグループを選択します。
  3. [詳細] ビューを選択し、[ヘルスチェックタイプ] を確認します。
  4. ヘルスチェックタイプが「EC2、ELB」の場合、自動スケーリンググループでは Elastic Load Balancing ヘルスチェックが有効になっています。

詳細については、「Elastic Load Balancing システムヘルスチェックの失敗により、インスタンスがサービスを停止しました」を参照してください。

自動スケーリンググループには、複数のターゲットグループまたはロードバランサーがアタッチされている場合があります。その場合、Amazon EC2 自動スケーリングがインスタンスを正常と見なすには、すべてのターゲットグループとロードバランサーがそのインスタンスを正常であると報告する必要があります。

  1. ナビゲーションペインの [自動スケーリング] で、[自動スケーリンググループ] を選択します。
  2. インスタンスのグループを選択し、[詳細] ビューを選択します。
  3. [ロードバランサー] または [ターゲットグループ] に複数のロードバランサーがアタッチされている場合は注意してください。
  4. [ターゲットグループ] または [ロードバランサー] を選択します。
  5. ナビゲーションペインの [ロードバランシング] で、[ターゲットグループ] を選択し、ユーザーのターゲットグループを選択してから [モニタリング] を選択します。
  6. インスタンスがヘルスチェックに失敗しているかどうかを確認するには、Healthy and Unhealthy Hosts のメトリクスグラフを確認してください。

CloudTrail の履歴をチェックして、中断されたプロセスによって異常のあるインスタンスの終了がプロセスの再開まで延期されたかどうかを確認します。

  1. [AWS CloudTrail コンソール] を開きます。
  2. ナビゲーションペインで、[イベント履歴] を選択します。
  3. SuspendProcessesResumeProcesses プロセスの API 呼び出しの履歴を確認します。

「EC2 スポットインスタンスの中断通知を受けて、インスタンスはサービスを停止しました。」

Amazon EC2 自動スケーリングは、以下のいずれかの条件が発生するとスポットインスタンスを終了します。

  • 容量は使用できなくなりました。
  • スポット価格は、インスタンスに指定した最大価格を超えています。

アクティビティ履歴に、ヘルスチェックによりインスタンスがサービスから削除されたことが表示される場合があります。終了理由を確認するには、スポットリクエストのステータスを確認します。

  1. [Amazon EC2 コンソール] を開きます。
  2. ナビゲーションペインの [インスタンス] で、[スポットリクエスト] を選択します。
  3. スポットリクエストを選択し、[説明] ビューを選択して、ステータスを確認します。

「ユーザーリクエストに応じて、インスタンスがサービス停止されました」

TerminateInstanceInAutoScalingGroup API 呼び出しについて、インスタンスがサービスを停止した期間の CloudTrail イベント履歴を確認します。

  1. [AWS CloudTrail コンソール] を開きます。
  2. ナビゲーションペインで、[イベント履歴] を選択します。
  3. TerminateInstanceInAutoScalingGroup API 呼び出しの終了インスタンスの履歴を確認します。

「AutoScalingGroup のユーザーリクエスト更新が最小: 0、最大: 2、必要値: 1 に制約され、希望するキャパシティーが 2 から 1 に変更されました。」

自動スケーリンググループの制約は手動で変更できます。例えば、容量を減らすことができます。制約を変更すると、Amazon EC2 自動スケーリングは新しい設定に合わせてインスタンスを終了する場合があります。

「インスタンスは、us-east-1a ゾーン内のインスタンスと他のゾーンのインスタンスのバランスを取るために起動されました」

デフォルトでは、Amazon EC2 自動スケーリングはすべてのアベイラビリティーゾーンにわたってインスタンスのバランスを取ります。オートスケーリンググループに新しいアベイラビリティーゾーンを追加すると、Amazon EC2 自動スケーリングはそのゾーンで新しいインスタンスを起動します。リバランスを行うと、他のゾーンのインスタンスが終了する可能性があります。

「インスタンスは、オンデマンド容量とスポット容量の配分のバランスを取るために、サービスを停止しました。」

オンデマンドまたはスポットインスタンスのディストリビューションが変更されると、関連するオートスケーリンググループは、希望する購入オプションのディストリビューションに合わせてリバランスされます。そのため、オンデマンドインスタンスまたはスポットインスタンスが終了し、オートスケーリンググループがそれらを置き換えて希望する購入オプションを実現できるようになる場合があります。

「状態アラームのモニターアラーム XXX-High-CPU-Utilization が、ポリシー AAA-scaledown をトリガーし、希望の容量を 2 から 1 に変更されました」

Amazon EC2 自動スケーリングは、設定された CloudWatch アラームに応答してグループ内のインスタンスを終了できます。グループポリシーと CloudWatch アラーム履歴を確認します。

Auto Scaling グループポリシーを確認します。

  1. [Amazon EC2 コンソール] を開きます。
  2. ナビゲーションペインの [自動スケーリング] で、[自動スケーリンググループ] を選択します。
  3. インスタンスのグループを選択します。
  4. ポリシーを表示および編集するには、[自動スケーリング] ペインを選択します

CloudWatch アラームの履歴を表示します。

  1. [Amazon CloudWatch コンソール] を開きます。
  2. ナビゲーションペインで [アラーム] を選択します。
  3. アラームを選択し、[履歴] ビューを選択します。
  4. アラームの状態の変化またはアラーム設定の変更がないか、履歴を確認します。

「ユーザーヘルスチェックに応じて、インスタンスがサービス停止されました」

Amazon EC2 自動スケーリングでカスタムヘルスチェックを定義できます。カスタムヘルスチェックによってインスタンスが異常であると判断されると、チェックは手動で SetInstanceHealth を開始します。次に、インスタンスの状態を [異常] に設定します。Amazon EC2 自動スケーリングは、次回の実行時に異常のあるインスタンスを終了します。

「AutoScalingGroup のスケジュールされたアクションの更新が、最小: 1、最大: 9、必要値: 1 に制約され、希望するキャパシティーが 2 から 1 に変更されました。」

自動スケーリンググループの最小容量、最大容量、または希望容量を変更するスケジュールされたアクションを設定できます。スケジュールされたアクションによって必要な容量が減少すると、Amazon EC2 自動スケーリングは、希望する新しい容量に合わせて 1 つ以上のインスタンスを終了させます。

関連情報

自動スケーリンググループがスケールダウンしたのはなぜですか?

Amazon EC2 自動スケーリングが異常のあるインスタンスを終了しなかったのはなぜですか?

AWS公式
AWS公式更新しました 8ヶ月前
コメントはありません

関連するコンテンツ