特定のインスタンスタイプが起動しない

こんにちは、hacknoteのohnoです。

朝自動起動しているインスタンスが立ち上がって居なかったので、立ち上げようとしたところ、エラーが起きていたので記録までに。

起きたこと

起動時にこんな表示が。

インスタンス開始のエラー
We currently do not have sufficient t3.medium capacity in the Availability Zone you requested (ap-northeast-1c). 
Our system will be working on provisioning additional capacity.
You can currently get t3.medium capacity by not specifying an Availability Zone in your request or choosing ap-northeast-1d, ap-northeast-1b.

t3.mediumがもうないと。マジカ

言われたとおりに移動させます。

AMI取得→アベイラビリティゾーンを移動して起動→EIPを付け替えで対処

問題なく起動できました。アベイラビリティゾーンによって起動できるインスタンスに全体上限があるようです。

今回の件は新規作成ではなく停止からの起動です。止めて保管しているインスタンスの起動すらできない場合があるので注意しましょう

注意点

今回のインスタンスはローカルIPを変えても問題はほぼ起きないサーバーだったのでよかったのですが、問題ある場合にはこの対応は出来ません。

なので、対応としては

・起動できるようになるまでまつ
・インスタンスのタイプを現在から変更する
・そもそも起きないようにしておく

のどれかになるかと思います。2個目は今回t3.mediumが対象でしたので、t2.largeやt3.largeに変えてしまうなどですね。

スペックを下げるのは少し危険ですので、現行より上のほうが安全でしょう。

また3つ目はインスタンスをリザーブドインスタンスにしたり、インスタンスを停止をさせないなど発生が起きないようにするのも手かもしれません。

(リザーブドインスタンスなら問題はないはずですが、インスタンスを停止させないはメンテなど実質厳しいです。)

今回「ap-northeast-1c」と言っていますが、自分のアカウントのap-northeast-1cと他のアカウントのap-northeast-1cは違う可能性があります。

リージョンとアベイラビリティーゾーン

アベイラビリティーゾーンは、リージョンコードとそれに続く文字識別子によって表されます (us-east-1a など)。リソースがリージョンの複数のアベイラビリティーゾーンに分散されるようにするため、アベイラビリティーゾーンは各 AWS アカウントの名前に個別にマップされます。たとえば、ご使用の AWS アカウントのアベイラビリティーゾーン us-east-1a は別の AWS アカウントのアベイラビリティーゾーン us-east-1a と同じ場所にはない可能性があります。

全部のアカウントをdに移せば安心じゃーんというわけではないので気をつけて。