Azure Storageをリージョン間でレプリケーションして、DR構成を実現する

こんにちは、Aireです。

今回はAzure Storageの冗長化によるDR(Disaster Recovery)構成の実現方法を紹介します。

Azure Storageにはいくつかの冗長化オプションが用意されています。リージョン間でAzure Storageを冗長化するオプションを使用することで、災害等でプライマリリージョンが停止した場合でも、フェールオーバーによりセカンダリリージョン側でAzure Storageへのアクセスを継続することができます。

以下、リージョン間でのAzure Storageの冗長化構成イメージです。

以降は構築の流れやポイントをかいつまんで紹介します。なお、本手順は以下のサイトを参考にしています。

リージョン間でストレージデータをレプリケートし、セカンダリロケーションにフェールオーバーすることで、ディザスターリカバリーを実現する(https://docs.microsoft.com/ja-jp/learn/modules/provide-disaster-recovery-replicate-storage-data/

Azure向けMicrosoft Learnより
目次

リージョン間で冗長化されたストレージアカウントを作成する

はじめにストレージアカウントを作成します。
各設定項目の説明は省略しますが、ストレージアカウントの冗長性として「geo冗長ストレージ(GRS)」を選択してください。チェックボックス(リージョン利用不可時のデータへの読み取りアクセス可否)の設定はどちらでも構いません。
なお、「geo冗長ストレージ(GRS)」を選択できるように、[パフォーマンス]欄では「Standard」を選択してください。

作成したストレージアカウントの管理画面に移動し、[データ管理]-[geoレプリケーション]を開きます。
レプリケーションが(読み取りアクセス)geo冗長ストレージであり、プライマリリージョンとセカンダリリージョンの2つのデータセンターが表示され、状態が「利用可能」であることを確認します。

本章の作業により、リージョン間でAzure Storageの冗長化構成を組むことができました。

セカンダリリージョンにフェールオーバーする

次にプライマリリージョンが利用できなくなったと仮定して、ユーザの任意のタイミングで、セカンダリリージョンへのフェールオーバーを行います。
フェールオーバーの方法はシンプルです。先程のストレージアカウント画面で、[フェールオーバーの準備]をクリックし、[フェールオーバーの確認]欄に「はい」と入力後、[フェールオーバー]をクリックするだけです。

  • [フェールオーバーの準備]をクリックすると、[フェールオーバー]画面で最終同期時刻が確認できます。リージョン間のレプリケーションは非同期で実行されるため、手動でフェールオーバーを行う際は、最終同期時刻以降にデータの更新がないか確認してください。
  • [フェールオーバーの準備]をクリックできない場合は、リージョン間での初期同期が完了していないため少し待ちます。

フェールオーバーが完了するまで数分程度待ちます。フェールオーバーが完了すると、レプリケーションタイプが[ローカル冗長ストレージ(LRS)」に、フェールオーバー前のセカンダリリージョンがプライマリリージョンに更新されていることが確認できます。

  • フェールオーバーを実行すると、フェールオーバー前のプライマリリージョンのデータは削除されアクセスできなくなります。

リージョン間でのレプリケーション構成を再構築する

前述の通り、フェールオーバーが完了すると、レプリケーションのタイプがローカル冗長ストレージ(LRS)構成に変更されます。リージョン間でのレプリケーションを再度有効にするには、ストレージアカウントの設定を変更します。

ストレージアカウント画面で[設定]-[構成]に移動し、[レプリケーション]を[geo冗長ストレージ(GRS)]に変更します。(読み取りアクセスを許可する場合は、[読み取りアクセスgeo冗長ストレージ(RA-GRS)]に変更してください)

[データ管理]-[geoレプリケーション]に移動すると、レプリケーションが[geo冗長ストレージ(GRS)]に更新され、再びセカンダリリージョンが追加されていることが確認できます。

元のプライマリリージョンにフェールバックする

ここまでの手順は、Microsoft Learnにも記載されている内容となります。ただし、このままですと、プライマリリージョンとセカンダリリージョンが、フェールオーバー前後で入れ替わった状態であることに気付いたかと思います。

元のリージョン構成に戻す(フェールバックする)方法としては以下が考えられます。

  1. 再度フェールオーバーを実行後、レプリケーションをローカル冗長ストレージ(LRS)からgeo冗長ストレージ(GRS)に変更する。
  2. 元のプライマリリージョンに作成した別のストレージアカウント(geo冗長ストレージ(GRS))にデータをコピーし、当該ストレージアカウントで運用を再開する。

数クリックで済む分、手順としては方法1の方が簡単ですが、機会があれば方法2も試してみようと思います。

おわりに

今回はAzure Storageの冗長化をリージョン間で行い、DRを実現する方法を紹介しました。

DRと聞くと難しそうに思われるかもしれませんが、実際に試してみると想像していたよりも簡単でしたので、ぜひ皆さんも試してみてください。

この記事を書いた人

目次