【Amazon RDS】Microsoft SQL ServerはマルチAZ構成だと停止できない (2020年10月現在)

coffee and book

サーバエンジニアのダニエルです。

掲題の通り、RDSのDBエンジンとしてMicrosoft SQL Serverを使用している場合は、マルチAZ構成のままでは停止できなくなるので注意が必要です。

これはAWSの仕様によるもので各DBエンジンタイプ毎に停止可否が違います。
停止できないと常時起動することになり、その分コストがかかってしまいます。本番環境のDBならともかく検証・開発用で使用する際は止めておきたいタイミングもあるかと思いますので、停止できるかどうかは事前に把握しておきたいところです。

マルチAZで停止できるかはDBエンジンによって違う

各エンジンタイプ別の停止可否

Amazon RDSでは、複数のDBエンジンを選択できて大変便利です。
2020年10月現在は6つのエンジンタイプが選択可能で、停止可否は以下の通りとなっています。
Microsoft SQL ServerとそれからAmazon AuroraについてもマルチAZ構成での停止には対応していないようです。

エンジンタイプ停止可否
(シングルAZ)
停止可否
(マルチAZ)
Amazon Aurora不可
PostgreSQL
MySQL
MariaDB
Oracle
Microsoft SQL Server
(Amazon RDS for SQL Server DB)
不可

公式ドキュメントの記載

公式ドキュメントの根拠としては、以下に記載があります。

マルチ AZ 設定の Amazon RDS for SQL Server DB インスタンスは停止できません。

引用元:AWS 一時的に Amazon RDS DB インスタンスを停止する

各エンジンで同じことができると思ってはいけない

今回なぜ気付いたかについてお話しすると、以前にPostgreSQLを使ってRDS DBインスタンスの作成をしたことがあり、その時はマルチAZ構成であったものの停止することができていました。
最近になってMicrosoft SQL Serverを使った構築をするタイミングがあり、同じようにマルチAZ構成の設定にし、停止できることには何の疑いもありませんでしたが、いざコンソール上の[アクション]メニューを開いて[停止]を押そうとしたときにボタンが非活性化されていることに気づきました。

事前の参考ドキュメントの読み込みで分かることも多いですが、やはり実機を触ってみて分かることもたくさんあるので、実機検証には時間を割かないといけないなと実感しました。。特にAWSのマネジメントコンソールだとどのDBエンジンも同じように見えてしまいますし、共通する設定項目も多いですが、それぞれに違いがあることにアンテナを張ることが大事ですね。

以前は他のエンジンタイプでもマルチAZ構成だと停止できなかった

元々、RDSをマルチAZ構成で使用する場合は常時起動させておくしかなかったようですが、以下の公式ドキュメントにてMySQL、MariaDB、PostgreSQL、Oracleでは停止ができるようになった旨、記載されています。

更に以前はシングルAZ構成でも停止できなかった

以下のクラスメソッドさんの記事を見て分かりましたがシングル構成でも停止できない時期があったようですね。

以下の記事では、Amazon Auroraでシングル構成の場合に一時的な停止ができるようになった旨が書かれています。

今回は以上です!