Amazon EC2 Auto Scaling の異常なインスタンスのトラブルシューティング - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling の異常なインスタンスのトラブルシューティング

以下は、Amazon EC2 Auto Scaling によって返されるエラーメッセージ、考えられる原因、および問題を解決するために実行できる手順です。

エラーメッセージを取得するには、「ヘルスチェックが失敗した理由を表示する」を参照してください。

EC2 インスタンスのステータスチェックが失敗したことにより、インスタンスのサービスは停止されました。

問題: Auto Scaling インスタンスで Amazon EC2 のステータスチェックが失敗します。

原因 1: Amazon EC2 が Auto Scaling グループ内のインスタンスに障害が発生したと見なす問題がある場合、Amazon EC2 Auto Scaling はヘルスチェックの一部としてインスタンスを自動的に置き換えます。

解決策 1: インスタンスのステータスチェックが失敗した場合、通常、アプリケーションに問題がなくなるまでインスタンス設定を変更して、自分で問題に対処する必要があります。この問題を解決するには、以下の手順を実行します。

  1. Auto Scaling グループには含まれない Amazon EC2 インスタンスを手動で作成して、問題を調査します。障害が発生したインスタンスの調査に関する一般的なヘルプについては、Amazon EC2 ユーザーガイド」の「ステータスチェックに失敗したインスタンスのトラブルシューティング」およびAmazon EC2 ユーザーガイド」の「Windows インスタンスのトラブルシューティング」を参照してください。

  2. インスタンスが起動に成功し、正常に機能していることを確認したら、エラーのない新しいインスタンス設定を Auto Scaling グループにデプロイします。

  3. AWS アカウントへの課金が継続されないよう、作成したインスタンスを削除します。

EC2 ヘルスチェックでインスタンスが終了または停止済みであることが検出され、インスタンスのサービスが停止されてしまう

問題: 停止、再起動、または終了した Auto Scaling インスタンスは置き換えられます。

原因 1: ユーザーが手動で、インスタンスを停止、再起動、または終了しています。

解決策 1: Auto Scaling グループのインスタンスを停止または再起動する必要がある場合は、まずインスタンスをスタンバイ状態にすることをお勧めします。詳細については、「Auto Scaling グループからインスタンスを一時的に削除する」を参照してください。

原因 2: Amazon EC2 Auto Scaling は、Amazon EC2 スポットサービスがインスタンスを中断した後、スポットインスタンスの置き換えを試みます。これは、スポット料金がお客様の上限価格を超えるか、またはキャパシティーが使用できなくなるためです。

解決策 2: 特定の時点で要求を満たせるだけのスポットインスタンスが存在するという保証はありません。ただし、以下を試すことができます。

  • より高いスポット上限価格を設定します (オンデマンド料金が利用できます)。上限価格を高く設定することで、要求されたキャパシティーを Amazon EC2 スポットサービスが確保し、それを維持できる可能性を高められます。

  • 複数のアベイラビリティーゾーンで複数のインスタンスタイプを実行することで、より多くの異なるキャパシティプールからインスタンスを起動できるようにします。詳細については、「複数のインスタンスタイプと購入オプションを使用する Auto Scaling グループ」を参照してください。

  • 複数のインスタンスタイプを使用する場合は、キャパシティーの再調整機能を有効にすることも考慮してください。この機能は、実行中のインスタンスが終了する前に Amazon EC2 スポットサービスで、新しいスポットインスタンスを起動させたい場合に便利です。詳細については、「キャパシティの再調整を使用して Amazon EC2 スポットの中断に対処する」を参照してください。

原因 3: キャパシティブロックでは、Amazon EC2 はキャパシティブロックの終了時刻の 30 分前にまだ実行中のインスタンスをすべて終了します。この突然の終了により、Auto Scaling グループは、キャパシティブロックが終了している場合でも、希望するキャパシティを維持するために新しいインスタンスを起動しようとします。

解決策 3: この問題を解決するには、以下を試してください。

  • Auto Scaling グループの希望する容量を減らして、新しいインスタンスを起動しようとしないようにします。詳細については、「Amazon EC2 Auto Scaling の手動スケーリング」を参照してください。

  • このエラーが頻繁に発生しないように、キャパシティブロックの終了時刻の 30 分前に Auto Scaling グループをスケールインしてください。キャパシティブロックの終了時刻の 30 分前にライフサイクルフックが完了していることを確認します。詳細については、「機械学習ワークロードCapacity Blocksに を使用する」を参照してください。

ELB システムのヘルスチェックが障害を検出してインスタンスのサービスが停止される

問題: Auto Scaling インスタンスが EC2 ステータスチェックに合格する場合があります。ただし、Auto Scaling グループが登録されている、ターゲットグループや Classic Load Balancer に対するElastic Load Balancing のヘルスチェックで失敗する可能性があります。

原因 1: Auto Scaling グループが Elastic Load Balancing によって提供されるヘルスチェックに依存している場合、Amazon EC2 Auto Scaling は EC2 ステータスチェックと Elastic Load Balancing ヘルスチェックの両方の結果をチェックして、インスタンスのヘルスステータスを判断します。ロードバランサーは、各インスタンスにリクエストを送信して正しい応答を待つか、インスタンスとの接続の確立を試みることで、ヘルスチェックを実行します。インスタンスで実行するアプリケーションに問題があり、ロードバランサーがそのインスタンスを停止中と判断する場合、そのインスタンスは Elastic Load Balancing のヘルスチェックに失敗する場合があります。

解決策 1Elastic Load Balancing のヘルスチェックに合格するには:

  • ターゲットグループのヘルスチェックにおいて、適切な設定が行われていることを確認します。ロードバランサーのヘルスチェック設定は、ターゲットグループごとに定義します。詳細については、「ターゲットのヘルスチェックを設定する」を参照してください。

  • ロードバランサーで予期される成功コードを記録し、成功時にアプリケーションがそれらのコードを返すかを見て、適切な設定が行われていることを確認します。

  • ロードバランサーと Auto Scaling グループのセキュリティグループでの設定が適切であることを確認します。

  • ロードバランサーが Auto Scaling グループと同じアベイラビリティーゾーンに構成されていることを確認します。

解決策 2: Auto Scaling グループを更新して、Elastic Load Balancing のヘルスチェックを無効にします。これらのヘルスチェックを無効にする方法については、「」を参照してくださいAuto Scaling グループに Elastic Load Balancing ロードバランサーをアタッチする Auto Scaling

原因 2: ヘルスチェックの猶予期間とインスタンスのスタートアップ時間の間に不一致があります。

解決策 3: Auto Scaling グループのヘルスチェックの猶予期間を編集します。猶予期間を、Elastic Load Balancing が新しく起動されたインスタンスが正常であると判断するまでに必要なヘルスチェックの連続成功回数をサポートするのに十分な期間に設定します。詳細については、「Auto Scaling グループにヘルスチェックの猶予期間を設定する」を参照してください。

追加リソース

別の問題が発生した場合は、次の AWS re:Post 記事でトラブルシューティングに関するその他のヘルプを参照してください。