[アップデート] RDS for SQL Serverでクロスリージョン自動バックアップがサポートされました

2021.05.09

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

しばたです。

まだAWSからのアナウンスは出てない様ですが、ドキュメントが先に更新されおりRDS for SQL Serverでクロスリージョン自動バックアップが可能になっていたので試してみました。

RDS for SQL Serverのクロスリージョン自動バックアップ

RDSのクロスリージョン自動バックアップに関しては去年の年末にRDS for Oracleをはじめ、RDS for PostgreSQLでも既にサポートされている機能となります。

今回これらに加えてRDS for SQL Serverもサポート対象になった形です。

改めてクロスリージョン自動バックアップの概要を説明すると、RDS独自の仕組みでRDSの自動バックアップとトランザクションログを別リージョンにレプリケーションし災害対策のバックアップとして使用します。

災害発生時はバックアップがレプリケートされたリージョンでRDSのリストア処理を行うことでシステムを復旧させます。

機能の詳細はユーザーガイドに記載されています。
RDS for SQL Serverの場合は、

  • SQL Server 2012以降のバージョンのRDSが対象
    • SQL Serverのエディションは問わず
  • 暗号化されたインスタンスは非サポート
    • RDS for OracleとRDS for PostgreSQLは暗号化されたインスタンスをサポートしています
  • 利用可能なリージョンはRDS for OracleやRDS for PostgreSQLと同様
    • バージニア北部 (us-east-1) ←→ オレゴン (us-west-2)
    • フランクフルト (eu-central-1) ←→ アイルランド (eu-west-1)
    • 東京 (ap-northeast-1) → 大阪 (ap-northeast-3) ※片方向のみ
  • 費用はバックアップのデータ量に応じたストレージ費用と、レプリケーションのデータ転送料金のみ

の利用条件となります。

現時点で暗号化されたインスタンスは非サポートですがこれは時間の問題でそう遠くないうちにサポートされるんじゃないかと予想します。
レプリケーションがAWS独自の仕組みなおかげでExpress EditionやWeb Editionでも利用可能なのは面白いですね。

やってみた

それでは早速試していきます。
今回は大阪リージョンが普通に使えるので「東京→大阪」へのレプリケーションをやってみます。

前提条件

VPC等のネットワーク周りのリソースについては作成済みとします。
今回は最新のSQL Server 2019 Standard Edition(Ver. 15.00.4073.23.v1)で試していきます。

RDSの作成

はじめに東京リージョンでRDSを作成します。

通常のRDSの作成と基本的な手順は変わりません。
事前に必要な

  • サブネットグループ
  • パラメーターグループ (すべてデフォルト値のまま変更なし)
  • オプショングループ (すべてデフォルト値のまま)

は作成済みです。

マネジメントコンソールからRDSの作成を開始し、対象RDBMSはSQL Server 2019 Standard Edition、バージョンはSQL Server 2019 15.00.4073.23.v1とします。

データベースの基本的な設定は適当にすすめていき、

追加設定でインスタンス暗号化の「暗号を有効化」のチェックボックスを解除すると「Backup replication」欄が表示されるのでレプリケーション先のリージョンと保持期間を設定します。

(現時点では暗号化されたインスタンスはサポート対象外なのでチェックを外す必要がある)

(今回は宛先を大阪リージョンに、保持期間はデフォルトの7日のまま)

その他のパラメーターは環境に応じて設定してください。
(本記事では内容を割愛します)

あとはこのままRDSを作成すれば完了です。
作成されたRDSの詳細情報を確認すると、「メンテナンスとバックアップ」タブの「バックアップ」欄にレプリケーションの状態が表示されます。

大阪リージョンでは「Automated backups」欄の「Replicated」にレプリケーションされた自動バックアップが表示されます。

詳細情報はこんな感じです。

リストアしてみた

以前RDS for Oracleで試した時と同様にリストアもやっておきます。

今回もデータベースに以下の様に3行だけテストデータを入れておきました。

データ投入後しばらく待って復元可能時刻が更新されたのを確認してからリストアします。

前提条件

リストアに際し大阪リージョンでは以下のリソースは事前準備済みです。

  • VPCをはじめとしたネットワーク環境
  • サブネットグループ
  • パラメーターグループ

RDSのリストア

レプリケーションされたバックアップを選択し「特定時刻への復元」を選択します。

以降は一般的なRDSのリストアと同様です。
今回は「復元可能な最新時刻」にリストアします。
主なパラメーターは以下の様に設定しました。

  • インスタンス識別子 : test-db-restoreと別名を指定
  • パラメーターグループ : 予め作成しておいたものを指定
  • VPC、サブネットグループ : 予め作成しておいた環境を指定。サブネットグループは要事前作成
  • オプショングループ : バックアップで自動生成されているものを選択
  • その他パラメーター : 環境に応じて

「特定時点への復元」をクリックすればリストアを開始します。

しばらく待ってRDSインスタンスが利用可能になればリストア完了です。

リストアしたデータベースに接続ちゃんと復旧できていることが確認できました。

最後に

以上となります。

ある程度のダウンタイムを許容する必要がありますが、お手軽に災害対策を講じることのできる自動バックアップレプリケーションのサポートが拡大していくのは嬉しい限りです。

RDS for SQL Serverといえば先日大阪リージョンでMulti-AZ構成のサポートも増えたばかりです。
これでSQL Serverを使った東京-大阪間でのDR構成もだいぶ現実味が増してきたのではないかと思います。