AutoScalingで複数AZでEC2が起動しなかった話

AWS
この記事は約2分で読めます。

こんにちは、@Manabu です。

最近、1からAWS環境を構築する機会がありました

その中で、AutoScalingを使用してEC2を複数のアベイラビリティゾーン(以下、AZ)に分散して配置しようとした際に、期待通りに動作なかった事象が発生しました。

簡単なことなのに、解決するまでに3時間以上かかりましたので、共有させていただきます。

ぜひ参考にして下さい。

今回の構成

今回想定している構成は、よくある以下のようなCloudFront+ALB+EC2(2台)構成です。

EC2のインスタンスタイプは、「t3a.mideum」で、配置するAZに関しては特に決めていませんでした。

ALBとASGの設定

ALBには以下のように、1aと1cに作成したサブネットにルーティングするように設定しました。

また、AutoScalingグループの設定でも、それぞれ作成したAZのサブネットに作成させるように設定していました。

発生した問題と原因、解決策

上記のように設定しているにも関わらず、2台のインスタンスはどちらも1aのAZにあるサブネットに作成されました

ネットで検索しても、設定する場所に関しては問題ないようでしたので、何度も挑戦し色々試しましたが、うまくいきませんでした。

原因

色々調査した中で、EC2のインスタンスタイプには、サポートされていないAZがあるということを知りました。

調べてみると、案の定1cではt3a.mideumのインスタンスタイプがサポートされていませんでした

解決策

サポートされているのは、1aと1dだということがわかったため、ALBとASGの設定を対象のAZに変更し、起動させると正しくAZが分散された状態でEC2が立ち上がりました。

サポートされているAZで起動させるということが大事ですね。

まとめ

これまで、インスタンスタイプにはサポートされていないAZがあるなんてことは知りませんでした。

警告も出ず、サポートされているAZでのみ起動するため、見逃しがちになります。

皆さんはこのような事象が発生しないように、注意して構成を検討することをお勧めします。