どうもChromebookマニアのタケイ(@pcefancom)です。
AWSのリレーショナルデータベース(RDS)でStorage Fullになってしまった場合の影響と対策です。
RDSのストレージがフルになった場合、システムに影響があるのかどんな対策が必要かを実体験をもとに紹介します。
目次
RDSがStorage Fullになってしまった場合の影響と対策
影響(1):データベースが止まる
影響はクリティカルです。
データベース自体が止まります。
容赦なく止まります。
ステータスは「Storage-full」となり、RDSが停止した状態になります。
当然ながらMulti-AZにしていてもフェイルオーバー先も「Storage-full」なのでどうしようもありません。
WEBサーバなら、URLにアクセスしても画面がまっしろ、反応しない状態になっていると思います。
影響(2):データベースへのアクセスも不可
「Storage-full」になったときにめんどくさいのがデータベースへのアクセスもできなくなってしまうことですね。
データを削除してStorage-fullの状態を回避しようとしても、そもそもDBにログインできません。
管理者側から一切アクセスできなくなってしまいます。
対策:ストレージを拡張する
ではどうすればいいのでしょうか?
ストレージを拡張するしか対策はありません。
ストレージフルの状態だとデータベースにアクセスができないのでデータを削除し「ストレージフル状態」を回避するのも不可能です。
課金が増えるのを覚悟でストレージを拡張する必要があります。
拡張はマネジメントコンソールなら通常のやり方と一緒です。
RDSのメニューからストレージを拡張しましょう。
ストレージを増やしたら更新すればあとは、自動的にRDSが再起動がかかり復旧してくれます。
なお所要時間は私がやった場合は30分ほどでした。
ステータスとしては再起動がかかって、
(1)停止中
↓
(2)開始中
↓
(3)Optimization
↓
(4)利用可能
の順番に遷移しました。
(1)、(2)は数分で終わりましたが、(3)で15分程かかりましたね。
Multi-AZの場合、同期中みたいなステータスになりますがその時点でDBは利用可能になっています。
システムも復旧しているはずです。
Storage Fullにならないように容量は監視する
以上、Storage-fullになってしまった場合の影響と対策でした。
実際の業務で発生しましたが、そもそも容量監視をしておけば起きなかった問題です。
たとえば
「容量が10%を切ったらSNSで通知する」
などしておけばこの手の障害は回避できます。
容量監視は、RDSに限らずEC2でも必ず設定しておくようにしましょう。
タケイ
監視は完全におまかせで、いきなり連絡が来てびっくりしました。そんな事にならないために関しについては提言したほうが良いなと思った次第です。ほったらかしは良くない