サイトアイコン 協栄情報ブログ

“Amazon RDS for SQL Server”のクロスリージョンリードレプリカを作成・昇格してみた

クロスリージョンリードレプリカ作成アイキャッチ

クロスリージョンリードレプリカは災害対策やレイテンシの低減、負荷分散などのシナリオで利用されます。

 

"Amazon RDS for SQL Server"はクロスリージョンリードレプリカ機能が使えます。しかし、クロスリージョンリードレプリカ機能を利用できるエディションが限定されているため、事前に調査が必要です。

 

今回の記事は、東京リージョンに配置した"Amazon RDS for SQL Server"のプライマリDBインスタンスを、大阪リージョンにクロスリージョンレプリケーションしてみるハンズオンです。また、大阪リージョンに作成したリードレプリカの昇格もやってみます。

 

 

クロスリージョンリードレプリカについて調べてみた。

1. クロスリージョンレプリケーションについて

まずはクロスリージョンレプリケーションについて、ユースケースを簡単にまとめてみました。

 

クロスリージョンレプリケーションは、データの耐久性、可用性、アクセス性を高めるために大規模プロジェクトやグローバルシステムに利用されています。以下は、クロスリージョンレプリケーションのユースケースです。

 

 

ユースケース1. データバックアップと災害復旧

主要なユースケースの一つが、災害復旧のためのデータバックアップです。特定の地域に発生した自然災害やシステム障害から回復するために、重要なデータを異なる地域のデータセンターに複製します。これにより、一方のリージョンがダウンした場合でも、他のリージョンにあるレプリカから迅速にサービスを復旧させることができます。

 

例えば東京リージョンでシステムを稼働していて、災害対策として大阪リージョンにレプリケーションすることが考えられます。

 

ユースケース2. 地理的なレイテンシの低減

ユーザーにより近い地域にデータをレプリケートすることで、アプリケーションのレスポンス時間を短縮し、エンドユーザー体験を改善します。例えば、ヨーロッパのユーザーに対して米国東海岸にホストされているデータベースのコピーをヨーロッパのデータセンターに作成することができます。

 

例えば、本社が東京であったとしても、提供するサービスの想定ユーザーがアメリカの方だった場合、バージニア北部・オハイオ・北カリフォルニア・オレゴンリージョンが候補に挙がるかと思います。

 

ユースケース3. 負荷分散とスケーラビリティ

高トラフィックの状況において、複数のリージョンにデータをレプリケートすることで、一つのリージョンに集中する負荷を分散させ、全体的なシステムの耐久性を高めます。また、ピーク時の需要に応じてリソースをスケールアップすることが可能になります。

 

このケースの例でいえば、オンラインゲームや映画・ドラマを配信するコンテンツ配信サービスです。全世界が対象であれば、先述のレイテンシの低減とともに負荷を分散する必要があります。

 

 

2. クロスリージョンリードレプリカの基本

AWSのデータベースサービスあるRDSにもクロスリージョンレプリケーション機能があります。それがクロスリージョンリードレプリカです。

 

正確には、リードレプリカを作成する際に他リージョンを選択するだけなので、機能名としてはリードレプリカですね。

 

"Amazon RDS リードレプリカ"とは、DB インスタンスの読み取り専用コピーです。クエリをアプリケーションからリードレプリカにルーティングすることにより、プライマリ DB インスタンスの負荷を軽減できます。こうすることにより、単一 DB インスタンスの容量制約にとらわれることなく伸縮自在にスケールアウトし、読み取り負荷の高いデータベースワークロードに対応できます。(AWS公式ドキュメントより)

 

そして、リードレプリカを他のリージョンに作成することを"クロスリージョンリードレプリカ"と言います。

 

 

●クロスリージョンリードレプリカが利用できるエンジン

クロスリージョンリードレプリカは災害復旧において重要な役割を果たします。AWSでは以下のRDSデータベースエンジンでクロスリージョンリードレプリカ機能を提供しています。

 

 

のちほどハンズオンで利用する"RDS for SQL Server"もクロスリージョンリードレプリカを利用できますが、いくつか制限があります。

 

 

●Amazon RDS for SQL Serverでのクロスリージョンレプリケーションのサポート範囲

"RDS for SQL Server"のクロスリージョンリードレプリカは、"Microsoft SQL Server Enterprise Edition"のみで提供されています。また、"Microsoft SQL Server Enterprise Edition"の以下のバージョンで使用できます。(2024/03時点)

 

 

RDS for SQL Server を使用したクロスリージョンリードレプリカは、次を除く以下のすべてのリージョンで使用できます。(2024/03時点)

 

 

さらに詳しく知りたいかたはこちら

 

 

3. クロスリージョンリードレプリカの設定

"Amazon RDS for SQL Server"でクロスリージョンリードレプリカを設定する手順を、ステップバイステップで説明します。各VPC間の接続設定は必要ありません。

 

●事前準備

ハンズオンを実施する前に、RDSの作成と大阪リージョンにVPCがあるかかくにんしてください。RDSの要件は以下の通りで、他の値はデフォルトで構いません。ちなみに今回利用するデータベースは料金が高いです。※消し忘れに注意ください。

 

項目 設定値
エンジン Microsoft SQL Server
エディション SQL Server Enterprise Edition
バージョン SQL Server 2019 15.00.4355.3.v1
マルチAZ あり
自動バックアップ

 

 

 

それでは東京リージョンにあるDBインスタンスのリードレプリカを大阪リージョンに作成していきましょう。

 

↓DBインスタンスが"利用可能"でエンジンは"SQL Server Enterprise Edition"となっているか確認してください。

 

 

↓エンジンバージョンとマルチAZの設定も確認してください。マルチAZの設定がされていないと、リードレプリカは作成できません。

 

 

↓リードレプリカ作成時にデータベースのバックアップが実行されるため。自動バックアップが有効になっている必要があります。

 

 

↓確認が終わりましたら、DBインスタンスを選択し、[アクション]から[リードレプリカの作成]をクリックします。

 

 

↓作成画面に遷移します。

 

 

↓[送信先リージョン]で[Asia Pacific(Osaka)]を選択してください。

 

 

↓その他の設定はデフォルトでかまいません。[リードレプリカの作成]をクリックします。

 

 

↓問題なければ、ページ上部に[正常に作成されました]と表示されます。

 

 

↓大阪リージョンに移り、データベースを見てみましょう。[作成中]のデータベースがありますね。[ロール]を見てみると、[レプリカ]と表示されています。

 

 

↓インスタンスサイズに寄るかと思いますが、20分で[利用可能]となりました。

 

 

リードレプリカの作成は以上です。

 

 

●リードレプリカの昇格

このままリードレプリカの昇格を実施してみましょう。

 

↓レプリカインスタンスを選択し、[アクション]から[昇格]をクリックします。

 

 

↓実際に昇格する際には、[自動バックアップを有効にします]には☑を必ず入れておきましょう。昇格する=メインリージョンに障害、かと思いますので、昇格するDBインスタンスに何かあった場合にはどうしようもありません。[リードレプリカの昇格]をクリックします。

 

 

↓注意分もしっかり読んでおきましょう。

 

 

↓まずは[バックアップ中]というステータスになります。

 

 

↓わたしの環境では10分で[利用可能]となりました。

 

 

リードレプリカの昇格は以上です。

 

 

4. クロスリージョンリードレプリカに関するアレコレ

クロスリージョンリードレプリカについて調べた際、わたしが気になったことを調べました。

 

 

 

 

 

 

まとめ

システムの災害対策で他リージョンにデータをバックアップしたり、トラフィックの集中を避けるために負荷分散したりすることがあります。RDSにはクロスリージョンリードレプリカ機能がありますので、システム要件と照らし合わせて選択肢の一つとして挙げてみてください。

 

 

参考リンク:AWS公式ドキュメントディザスタリカバリブループリントを備えたクロスリージョンリードレプリカを使用して、マルチリージョン Amazon RDS for SQL Server をデプロイする – 第 1 部Amazon Relational Database Service for SQL Server によるクロスリージョンレプリカの利用

 

 

↓ほかの協栄情報メンバーのRDSについての記事を公開しています。ぜひ参考にしてみてください。
 

 
AWS RDS for Oracleメモリー不足際の解決案(dapeng)

 
【AWS初心者向け】RDSリネーム後、PITR&AWS Backupリカバリー手順(Kuroda)

 
オンプレミスからAWS RDSへMSSQLの移行方法(zhangying)

 

 

モバイルバージョンを終了