私たちは、AWS 上の小さな自動スケーリング グループ (通常 2 ~ 4 インスタンス) でいくつかの Web サーバーを実行しています。そのヘルスチェックは ELB ヘルスチェックに基づいており、Web サーバーの 1 つが応答を停止すると、新しいインスタンスに置き換えられます。
これは現在うまく機能しています。停止が発生した場合、応答しないサーバーは終了され、その代わりに新しいサーバーが起動されます。
問題は、現時点ではサーバーがダウンしている理由がまったくわからないことです。ログからいくつか疑わしい点はあるのですが、サーバーにログインしたり、Web ログやシステム ログなどを確認したりすることができなくなりました。
自動スケーリング グループからインスタンスを手動でデタッチする方法があることは知っていますが、障害が発生した場合にこれを自動的に行う方法はありますか?
私が望んでいるのは、サーバーに障害が発生した場合、サーバーは実行されたままですが、自動スケーリング グループから削除され、何が問題だったのかを分析できるようにすることです。明らかな利点は、これが発生する頻度を制限して、何らかの理由でサーバーのサイクルが継続した場合に、数百のインスタンスが分離されることがないようにすることです。
それで、これは何らかの方法で実行できるのでしょうか、そしてできるとしたらどのように実行できるのでしょうか?
答え1
それにはいくつかの方法があります。
ASG -> 詳細 -> 編集 -> プロセスの一時停止 -> 「終了」で、「終了」アクションを一時停止できます。マシンは終了されません。
また、ASG -> インスタンス -> アクション -> インスタンス保護から特定のインスタンスを保護することもできます。
さらに、イベントが発生したときにインスタンスを ASG から追い出すなど、独創的な方法もあります。