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

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

■参照
[【DBのディスクサイズ管理が簡単に】RDSのストレージがストレージの自動スケーリングをサポートしました！](https://dev.classmethod.jp/cloud/aws/rds-storage-auto-scaling/)

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

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

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

<img width="879" alt="スクリーンショット 2019-06-22 0.44.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/7b714411-1123-f5f4-848e-f8d2e4de5f99.png">

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

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

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

###結果

<img width="915" alt="スクリーンショット 2019-06-22 0.40.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/8978bbb2-f2a7-e220-830d-68b3148902eb.png">


無事、成功ですね！
イベントログ出力と自動スケーリングの流れを時系列に載せておきます。

###イベントログ
<img width="839" alt="スクリーンショット 2019-06-22 0.42.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/75ac2e11-0723-29d6-7974-221d27e3b813.png">

###自動スケーリングの流れ

|時間|概要|
|---|---|
|00:27|①容量枯渇|
|00:32|②AutoScaling開始|
|00:35|③AutoScaling完了|

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

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

###ストレージステータス
<img width="879" alt="スクリーンショット 2019-06-22 0.44.30.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/357e67c9-ec3f-ba92-93f0-0dc9f6eeb879.png">

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

<img width="795" alt="スクリーンショット 2019-06-22 0.54.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/456f53a9-5904-bd2c-3564-3c9d0b12a558.png">

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

###ストレージ変更の可否
対象のRDSを選択して画面右上の[変更]を押下して確認してみましょう。

<img width="1107" alt="スクリーンショット 2019-06-22 2.00.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/3cd86d81-b6d1-8e1a-4895-7cdb1588c7b4.png">


<img width="791" alt="スクリーンショット 2019-06-22 2.01.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/de77e114-fd96-abcb-3a22-63e12ef7eedc.png">

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


##２回目の自動スケーリング

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

<img width="866" alt="スクリーンショット 2019-06-22 2.09.41.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/96f5c26c-8b67-001f-6be3-3331928305ca.png">

###ステータス確認

<img width="823" alt="スクリーンショット 2019-06-22 2.11.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/7da0b982-318a-616d-40ad-0e581defd82a.png">

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

###約6時間後

<img width="892" alt="スクリーンショット 2019-06-22 7.28.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/b280377a-4d98-bcde-7214-1de57c8b7e03.png">

<img width="860" alt="スクリーンショット 2019-06-22 7.29.22.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354022/a425b471-31f0-5f45-78d1-08b7d9612171.png">

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

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

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

以上、さっくりと検証してみました。
非常に便利な機能なのでAWSでシステムを作る際には積極的に使っていきたいですね！