EC2 Auto Scaling で起動中のインスタンスを Auto Scaling グループから外す方法を教えてください

2023.07.07

困っていること

EC2 Auto Scaling で起動中の EC2 インスタンスで何らかの問題が発生しているように見受けられます。 そのため起動中インスタンスを Auto Scaling グループから外して、原因調査を行いトラブルシューティングを実施したいと考えています。 EC2 Auto Scaling の起動中インスタンスを Auto Scaling グループから外す方法を教えてください。

どう対応すればいいの?

2 つの方法より可能です。

  • スタンバイ(一時的なインスタンスの削除)
  • デタッチ

[AWS Black Belt Online Seminar](P95)

スタンバイ(一時的なインスタンスの削除)

インスタンス単位で設定を行い、対象のインスタンスは Auto Scaling グループに所属しながらも「スタンバイ」状態に入ります。具体的には、その対象インスタンスは ELB から登録の解除がされて、ヘルスチェック対象から外されます。なお、デフォルトでは、インスタンスをスタンバイ状態にすると、希望するキャパシティーとして指定した値は 1 つ減少します。その間に、原因調査を行いトラブルシューティングを実施してください。
詳細、手順については以下ドキュメント又は AWS re:Post をご確認ください。

インスタンスを InService 状態から Standby 状態に移行でき、インスタンスを更新またはトラブルシューティングして、インスタンスをサービスに返すことができます。スタンバイ状態のインスタンスはまだ Auto Scaling グループの一部ですが、ロードバランサートラフィックをアクティブに処理しません。

この機能を使用すると、Amazon EC2 Auto Scaling がヘルスチェックの一部として、またはスケールインイベント中にインスタンスを終了することを心配することはなく、インスタンスを停止して起動したり、再起動したりできます。

たとえば、起動テンプレートまたは起動設定を変更することで、Auto Scaling グループの Amazon マシンイメージ (AMI) をいつでも変更できます。Auto Scaling グループが起動する後続のインスタンスには、この AMI が使用されます。ただし、Auto Scaling グループは現在稼働中のインスタンスを更新しません。これらのインスタンスを終了し、Amazon EC2 Auto Scaling で置き換えるか、インスタンスの更新機能を使用してインスタンスを終了して置き換えることができます。または、インスタンスをスタンバイ状態にしてソフトウェアを更新し、次にインスタンスをサービスに戻すことができます。

デタッチ

インスタンス単位で設定を行い、対象のインスタンスは所属している Auto Scaling グループから外れます。 前途の「スタンバイ」と実質的な効果は概ね同一であると認識してください。対象のインスタンスは Running 状態で保持されます。
一方で、デタッチの場合は Auto Scaling グループに付与していたタグも削除される点に注意してください。
詳細、手順についてはドキュメントを、挙動などについては弊社ブログをご確認ください。

InService 状態にあるインスタンスは、Auto Scaling グループから削除 (デタッチ) することができます。インスタンスをデタッチした後、Auto Scaling グループの残りのメンバーとは別にそれらのインスタンスを管理できます。インスタンスをデタッチすることで、以下のことを行えます。

● インスタンスを 1 つの Auto Scaling グループから移動して別のグループにアタッチします。詳細については、「Auto Scaling グループに EC2 インスタンスをアタッチする」を参照してください。

● アプリケーションを実行している既存のインスタンスを使用して Auto Scaling グループを作成し、テストします。テストが完了したら、Auto Scaling グループからインスタンスをデタッチできます。

参考資料