AWSのEC2は様々な原因で起動に失敗し、Status CheckがFailureとなることがあります。
私の例ですと、ENI(Elastic Network Interface)の構成に問題が生じた(?)ことによる起動の失敗など...
そんなときのDesign for FailureとしてMulti-AZなどが考えられますが、Auto Scalingを用いたSelf-Healing Patternでも条件付ですが対処できるようです。
Self-Healing Patternとは
-
Auto Scaling GroupではインスタンスのStatus Checkに失敗すると、インスタンスの置き換えが行われることを利用
-
Auto Scaling Groupの
・Minimum Size
・Maximum Size
・Desired Capacity
をすべて1に指定すると、Status Checkが失敗した際にのみインスタンスの置き換えが生じる
-> 解決!
注意
Auto Scalingを使う仕様上、Self-Healing Patternを使うには、以下の条件を許容する必要があります。
・当該インスタンスはAMIからLaunchされる
・Status Checkに失敗したインスタンスはTerminateされる
この2つは裏表ですが、特に後者があるためデータの保存などに注意が必要です。