AWS RDS はクラウド上のリレーショナルデータベースで、スケールアップやスケールダウン、冗長構成などが簡単に出来て、日々の運用/監視/障害対応などもほとんど必要がなくなるくらい非常に有能なサービスなのですが、先日驚いたことがありました。
Amazon RDSはインスタンスを停止しても7日間後(8日後)に自動的に起動するので注意
先日、検証のため構築いて利用していた RDS を検証が完了したため DB インスタンスを停止しました。
再度検証のため使用する可能性があったため、「削除」ではなく「停止」しました。
しかし、後日 RDS の状態を確認すると停止したはずの DB インスタンスが起動していました。
どう考えても停止した記憶があるのでおかしいと思いログを調べていたところ、停止した日から8日後に起動していることが分かりました。
調査をしたところ、RDS は最大7日間 DB インスタンスを停止できることが分かりました。
つまり、インスタンスを停止してから7日間経ったら(インスタンス停止から8日後)自動的に RDS が起動するということです。
もちろん、従量課金なので起動していれば課金されます。
AWS 一時的に Amazon RDS DB インスタンスを停止する
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_StopInstance.html
インターネットを調べてみたところ、同じようにいつの間にか RDS の DB インスタンスが起動して課金されていたため驚いていた方が多数いました。。
DB をそのままの状態で無償で長期保存されると AWS 側にメリットがないのでしょうがない
例えば、RDS を構築してデータがぎっしり入った状態で RDS を停止されても「無償」だったとすると、それこそ半永久的に無料でデータが保管できてしまうことになるので AWS 側には何らメリットがありません。
しかも勝手にデータを消せませんし品質も保たなければいけなくなるので、7日間停止後に自動的に起動するのはしょうがないと思います。
RDS DB インスタンスを「停止」を利用するメリット
RDS DB インスタンスを7日間しか停止できないなら「メリット」はないのではないかと思うかもしれませんが、7日間のみ停止できることで以下のメリットがあります。
- DB インスタンスの停止・起動速度は、RDS スナップショットから復元するよりも高速
- DB インスタンスを停止しても、ID、DNS エンドポイント、パラメータグループ、セキュリティグループ、オプショングループが保持される
- DB インスタンスを起動すると、停止したときと同じ構成になる
また、7日間なら停止できることで計画的に起動・停止を繰り返すことでコストの削減をすることができます。
AWS Lambda で計画的に起動・停止をするプログラムを作成してもいいかもしれません。
長期で使用しない RDS は「最終スナップショット」を取得して保存すること
長期間利用しないインスタンスは、
コメント