【AWS】RDS自動スケーリングが発表されたけど注意事項があるので検証した話


RDS自動スケーリング

いつにもまして唐突にリリースされた感のあるRDSにおけるAuto Scaling。先日発表された新機能により、これまでの手動で行っていたストレージの拡張作業から開放されるかもしれません。細かな機能説明に関しては参照元のクラスメソッドさんの記事を読む事をお勧めします!

■参照

【DBのディスクサイズ管理が簡単に】RDSのストレージがストレージの自動スケーリングをサポートしました!


RDSストレージ拡張時のAWS仕様

通常RDSのストレージ容量を拡張した場合、公式ガイドのように以下の仕様によりStorage-optimizationのステータスが解除されるか、6時間の長い方の何れかが経つまで次の変更を加える事が出来ません。この仕様はRDS 自動スケーリングにおいても適用されるものなのかが気になるところ…。


DB インスタンスのストレージサイズを変更すると、DB インスタンスのステータスは Storage-optimization になります。ストレージ変更後、DB インスタンスは完全に動作します。ただし、6 時間 あるいは DB インスタンスステータスが Storage-optimization の間のいずれか長い方の間は、ストレージに変更を加えることはできません。


Storage-optimizationとは画像だとこのようなステータス状態です。

スクリーンショット 2019-06-22 0.44.30.png

私自身、業務で手動によるストレージ拡張を実施することがあり、その際にもこの仕様には度々意識させられてきたのでこれは検証せねばということでやってみました。


1回目の自動スケーリング

※検証方法は参照の記事をそのまま使わせて頂きました。


結果

スクリーンショット 2019-06-22 0.40.50.png

無事、成功ですね!

イベントログ出力と自動スケーリングの流れを時系列に載せておきます。


イベントログ

スクリーンショット 2019-06-22 0.42.00.png


自動スケーリングの流れ

時間
概要

00:27
①容量枯渇

00:32
②AutoScaling開始

00:35
③AutoScaling完了

今回のケースですと、20GBから25GBへの増加に対しては容量が枯渇してからおよそ8分で完了していますね。


ステータス確認

気になるストレージステータスと変更可否ですが、自動スケーリング直後ですと以下の様になっておりました。


ストレージステータス

スクリーンショット 2019-06-22 0.44.30.png

想定通りのステータスが表示されています。

スクリーンショット 2019-06-22 0.54.09.png

※そしておよそ10分後に利用可能ステータスに切り替わっていました。


ストレージ変更の可否

対象のRDSを選択して画面右上の[変更]を押下して確認してみましょう。

スクリーンショット 2019-06-22 2.00.34.png

スクリーンショット 2019-06-22 2.01.37.png

やはり、ストレージ容量の設定項目がグレーアウトされて注意書きが表示されて変更が不可になっていますね。1回目が実行された状態でもう一度容量を枯渇させてみたらどうなるか検証してみましょう。


2回目の自動スケーリング


結果

1回目と同様の方法でストレージを枯渇させて1時間ほど暫く様子を見てみたところ、自動スケーリングは実行されませんでした。

スクリーンショット 2019-06-22 2.09.41.png


ステータス確認

スクリーンショット 2019-06-22 2.11.56.png

ステータスはStorage-fullと、その名の通り容量が一杯ですよと表示されておりました。暫く放置して2回目が実行されるのを見届けましょう。


約6時間後

スクリーンショット 2019-06-22 7.28.14.png

スクリーンショット 2019-06-22 7.29.22.png

6時間経過してようやく実行されました〜。公式ガイドの記載の通りの動きとなりましたね。これらで得たい結果を見ることが出来ました!


結論

RDS自動スケーリングにおいても、これまで通りストレージ拡張時には変更制限の仕様に沿った挙動となることが分かりました。余程の事がない限り6時間以内という短期期間の間に連続して容量の拡張が必要なシチュエーションは訪れないでしょうけれども、自動スケーリング設定を有効にする際には念頭においた方がいいかもしれませんね。

また、専用のイベントサブスクリプションも作成できるようになれれば尚良いですね。今後のリリースに期待しましょう。

以上、さっくりと検証してみました。

非常に便利な機能なのでAWSでシステムを作る際には積極的に使っていきたいですね!