体験談
ある日、AWSからAWS_EC2_PERSISTENT_INSTANCE_RETIREMENT_SCHEDULED
の通知が届きました。いわゆる「リタイア通知」です。
内容を確認すると何やら物騒なことが書かれています。
Due to this degradation your instance could already be unreachable.
つまり既にインスタンスにアクセスできなくなっている可能性があるということを意味します。
私の(誤った)認識ではこの文章はあくまで「保険」的なニュアンスで書かれているものであり、通知文に記載されている対応期限前に突然サーバーが落ちる可能性は流石に低いだろうと、たかを括っていました。
とはいえ念の為、対象インスタンスを確認しにいくとインスタンスの状態は「✅実行中」ですが、メトリクスの部分で「特定時間帯からデータがない状態」が発生しているではありませんか。
ファッ!? (゜Д゜;)
まさにこんな顔になっていたと思います。
この時点でなんだか悪い予感がしてきます。
次にターゲットグループを見にいったら、案の定「✖️異常」状態になっているインスタンスが1つあり、確信に変わりました。サーバが、、、落ちて、、、いました。
(幸い、冗長化はしていたのでサービス自体に大きな影響はありませんでした。)
「もうこうなったら今、リタイア通知の件の対応をしてしまおう」ということで、ターゲットグループから対象インスタンスを外し、「インスタンスの停止」と「インスタンスの起動」を行い、無事に復旧しました。
(※補足:インスタンスの再起動ではダメらしい)
時間帯的にもそんなにアクセスが多くはなかったので、なんとか無事でしたがヒヤリとした体験談でした。
まとめ
この時ほど「冗長化しておいて良かったぁぁ」と実感したことはありませんでした。
一方で死活監視部分の甘さもかなり痛感した出来事となりました。
コストが多少かかるとしても今回のような事象が発生し得るので、冗長化はしておくことをお勧めします。
ここまでお読み頂き、ありがとうございました。
少しでも学びになれば幸いです。