[アップデート] Amazon RDS Custom for SQL Server を一時停止して開発環境などのコストを抑制出来るようになりました

2023.09.02

いわさです。

RDS Custom をうまく使うと、RDS で満たせなかった要件を満たしつつデータベースサーバーの一部管理タスクを AWS に任せることが出来ます。

通常の RDS とは責任共有モデルの範囲が異なるのでその点は注意が必要ではあります。
また、それ以外にも標準の RDS と比較するといくつか制限事項もあります。

これまでは一時停止が出来なかった

通常の RDS ではデータベースを一時停止することでコストの発生を抑制することが出来るので、開発・検証環境などではよく一時停止機能が使われていると思います。
ただ、これまで RDS Custom for SQL Server では一時停止機能がありませんでした。

「停止」という概念だけ実現するのであれば RDS Custom for SQL Server を作成すると実体である EC2 インスタンスが作成されるので、その EC2 を停止することは出来ました。
しかしその方法で停止したとしても RDS の利用料金を抑制することは出来ませんでした。

しかし、本日のアップデートで遂に RDS Custom for SQL Server でも一時停止機能がサポートされました。

これによって一時停止が許容出来る環境であれば、実行の必要がないときは一時停止しておくことでコストの発生を抑えることが出来ます。
本日は RDS Custom for SQL Server を作成し一時停止機能を使ってみましたので紹介します。

エディションやインスタンスタイプの制約はないが、シングル AZ 時のみ利用出来る

今回は SQL Server Web Edition の db.m5.large で試してみました。

また、注意点のひとつとして一時停止機能はシングル AZ デプロイ時のみ使うことが出来ます。
2023 年 4 月にマルチ AZ をサポートしていますが、マルチ AZ 環境では従来と同様に同様に一時停止が出来ませんのでご注意ください。

また、一ヶ月前には RDS Custom for SQL Server にてローカルタイムゾーンがサポートされています。
ついでにこちらも設定してみました。
既存の RDS Custom インスタンスのタイムゾーン変更は出来ないのでご注意ください。

構築出来ました。
次のように実体の EC2 インスタンスが起動されていることも確認しました。

通常の RDS と同様にアクションから一時停止、停止期間は 7 日間

作成後、次のようにアクションメニューから「一時的に停止」を選択するだけです。

表示が少し崩れてますが、次のように一時停止の注意事項が表示されますので確認して、操作を確定します。
ここで知っておくべき点としては停止出来る期間は最大で 7 日間という点です。停止していても 7 日後に自動で再起動されます。
このあたりは通常の RDS と同様ですね。

停止の進行中です。
RDS インスタンスのステータスが変更されています。

また、次のように実体の EC2 も停止処理が行われていることも確認出来ました。

ステータスが「一時的に停止済み」となり、停止が完了しました。

起動の流れも同じ

起動も同様にアクションメニューから実行出来ます。

私が確認したこのデータベースインスタンスは初期セットアップ後の状態であり、個別のテーブルやレコードなどは何も作成していない状態ではありますが、起動は数十秒で完了しました。
思ってたより速い。

おまけ:シングル AZ からマルチ AZ へ変更

前半お伝えしたように一時停止機能はシングル AZ でのみ利用可能です。
どうだったか忘れてしまっていたので確認したところ、シングル AZ とマルチ AZ のデプロイモードは変更が可能だったので、必要なタイミングでマルチ AZ に変更することが出来そうです。

ステージング環境でマルチ AZ で最終的には用意したいが、今はシングル AZ で一時停止もさせたい。という場合は配置モードの変更も検討してみてください。

変更ダイアログに表示されますが、稼働環境での配置モード切り替えにはご注意ください。
パフォーマンスに影響を及ぼす可能性があります。

設定に不備があって私はシングル AZ に強制的に戻されてしまったのですが、変更後次のように新しい EC2 が作成されました。
特にネットワーク周りなのですがマルチ AZ は前提条件が色々あるのでご注意ください。

さいごに

本日は Amazon RDS Custom for SQL Server で一時停止機能で開発環境のコストを抑制出来るようになったので試してみました。

RDS Custom は評価から入ることが多いので、停止したいという要望結構多かったと思うんですよね。私も実際に何度かお問い合わせを頂いたことがありました。
シングル AZ 限定ですが、これからは「できまーす」と言えるので嬉しいです。
通常の RDS と同様で一時停止の最大期間が決まっているのと、コンピューティング以外のストレージなどの料金は停止していても発生するのでご注意ください。

あと、RDS Custom for Oracle は本日時点では引き続き停止機能をサポートしていません。今回のアップデートでは SQL Server だけです。

少し前に RDS Custom for SQL で RDS マネージドなマルチ AZ 機能がサポートされたり、直近でローカルタイムゾーンがサポートされたり、RDS Custom で痒かった点が少しづつ解消されているのが結構印象的ですね。今後導入出来る機会が増えるかもしれない。