[アップデート]各種RDSのストレージサイズが16TBまで拡張できるようになりました!

2017.12.11

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは、yokatsukiです。

MySQL, MariaDB, Oracle DB, PostgreSQLにて、従来6TBまでだったRDSのSSDストレージサイズが16TBまで拡張できるようになりました。 また、従来は30,000IOPSだったプロビジョンドIOPSストレージボリュームは、今回のアップデートで最大40,000IOPSまで割り当てることができるようになりました。

試してみた

では、これらの機能を東京リージョンで試してみます。

MySQL

DBインスタンス起動画面のステップ3:DB詳細の指定画面です。

ストレージタイプをプロビジョンドIOPS(SSD)にして、割り当てが16384GBまで設定できることが確認できています。

IOPSの割り当ては、以下の条件を両方満たす範囲で設定することができ、その範囲外ではエラーになります。

  • 1000〜4000IOPS
  • ストレージ割り当てGB:IOPS=1:1〜1:50

詳細はAWSのドキュメントStorage for Amazon RDSの英語版をご確認下さい。

ストレージタイプを汎用(SSD)の場合も同様に16TBまでサイズ割り当てが可能です。

マグネティックの場合は、割り当ては3072GBまで可能です。

MariaDB

MariaDBの設定範囲は、MySQLと同じです。SSDを16TB、IOPSを40000まで設定できています。

Oracle DB

Oracle DBも同様です。ライセンスモデルを設定する前にストレージ割り当てを設定すると、昔の設定が残っていてエラーになってしまいますが、ライセンスモデルを設定した後は問題ありませんでした。全ての設定でSSDを16TB、IOPSを40000まで設定できるようになっています。

PostgreSQL

PostgreSQLも同様です。SSDを16TB、IOPSを40000まで設定できました。

動的拡張

AWS発表によると、「さらに、Amazon RDS は Amazon Elastic Block Store (Amazon EBS) Elastic Volumes を利用して、ストレージのスケーリングオペレーションに必要な時間を最小化します。」とあります。

裏側ではSSDのI/Oクレジットを消費しているようで、変換中は性能に影響が出るそうです。詳細は下記。

運用中にストレージサイズを変更するとどうなるかも試してみました。確認に使用したのは東京リージョンに作成した以下のデータベースです。

  • エンジン:MySQL 5.6.37
  • インスタンスクラス:db.m4.xlarge
  • ストレージタイプ:汎用(SSD)
  • ストレージサイズ:100GB→10TB

クライアントは同一セグメントに立てたEC2インスタンスを使いました。クライアントEC2インスタンスからMySQLにログインし、SQL文(SELECT, INSERT)の発行を行いつつ、MySQLに接続したままストレージサイズを100GBから10TBに拡張して、その間の挙動を確認しました。

以下がイベントの履歴です。

16:00ちょうどにストレージ変更の操作を発行したのですが、しばらく(3〜4分)したところで一度再起動が入って切断が発生しました。しかしそれ以降はクライアント側でSELECTやINSERT処理も特にエラーを見ることなく、おおよそ50分でストレージの拡張が終了しました。管理コンソールのモニタリングでは、イベント"Applying modification to allocated storage"が表示されているあたりから新しいストレージサイズ(10TB)が表示されるようになりました。

まとめ

いずれのデータベースも、最大容量16TB、IOPS40000まで拡張できることが確認できました。また、運用中のサイズ拡張も再起動が発生するものの、影響範囲は小さいことを確認しました。ストレージサイズ不足でRDSを諦めていた方、改めてご検討下さい。それでは、また。