RDS for SQL Serverでストレージサイズの拡張が可能になりました

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

ウィスキー、シガー、パイプをこよなく愛する大栗です。

昨日RDS for SQL Serverのアップデートがあり、ストレージサイズの拡張が可能になりましたので試してみます。

ストレージサイズの拡張

今までRDS for SQL Serverは他のDBエンジンと異なりストレージサイズの拡張ができませんでした。以下のエントリーのように、新たに別のDBインスタンスを起動してデータ移行が必要でした。

RDS for Microsoft SQL Serverの制限事項とデータ移行手順(SQLAzureMW)

今回のアップデートで、既存DBインスタンスをそのままストレージサイズ拡張できるようになり、16TiBまで拡張できるようになりました。

しかし、拡張に際して動作の制限があります。

  • ストレージサイズを増やせますが、減らすことはできません。
  • 拡張のリクエストをしてから6時間が別のストレージの変更はできません。
  • 一部の古いDBインスタンスや古いスナップショットからリストアしたDBインスタンスではストレージサイズの拡張ができません。拡張が可能かはAWS CLIのdescribe-valid-db-instance-modificationsコマンドで確認できます。
  • 拡張に際して短時間停止する場合があります。
  • ストレージの最適化中にパフォーマンスが低下することがあります。ストレージの最適化は24時間以上かかる場合があります。

またFAQによると以下の制限が記載されています。

  • ストレージタイプがマグネティックでは対応できません。
  • 2017年1月1日より前に起動したDBインスタンスは対象外の古いストレージ構成を使用している場合があります。

とのことです。

試してみます

先にRDS for SQL Serverを起動しています。

  • リージョン:東京
  • インスタンスタイプ:db.m4.large
  • DBエンジン:SQL Server SE 14.00.1000.169.v1
  • ライセンスモデル:License Included
  • ストレージタイプ:プロビジョンド IOPS(SSD)
  • IOPS:1000
  • ストレージ:200 GB

このDBインスタンスを変更します。

  • ストレージタイプ:汎用 (SSD)
  • ストレージ:300 GB

ダウンタイムが発生する旨のメッセージと変換に長い時間がかかりパフォーマンスに影響する旨のメッセージが表示されます。

ステータスが変更中になります。

少しするとステータスがstorage-optimizationとなります。

しばらく待つと利用可能になります。

さいごに

今までのストレージサイズ拡張は別のDBインスタンスへデータ移行をするためサービスの停止時間が長くなるので、あらかじめ余裕のあるストレージサイズにして拡張をしなくて済むようにしていました。今回のアップデートにより既存DBインスタンスをそのまま拡張できるためサービスのダウンタイムも短くて済みます。そのため長期的なストレージサイズではなく、短中期的に使用するストレージサイズを使用すればよく、見込みのずれが減って、コストも効率的になると思います。