みなさん、こんにちは。サニービュー事業部の小寺です。
re:Inventでのアップデート情報、AWS Elastic Disaster Recoveryがクロスリージョン及びクロスアベイラビリティゾーンのフェイルバックをサポートするようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-elastic-disaster-recovery-supports-cross-region-cross-availability-zone-failback/

Elastic Disaster Recoveryとは

AWS Elastic Disaster Recoveryとは、AWSの災害対策のためのサービスです。

パフォーマンスに影響を与えることなく、複製したい環境(ソースサーバー)を AWS アカウントに継続的にレプリケートします。
アイドル状態のリカバリサイトリソースを削除することで、従来のオンプレミスの災害対策ソリューションと比較してコストが削減され、手頃な AWS ストレージと最小限のコンピューティングリソースを活用して継続的なレプリケーションを維持します。

いつの時点にリカバリするかは、利用者が2パターンのうち一つを選ぶことができます。

・最新時点のリカバリポイント
・過去のある時点を指定

ポイントインタイムリカバリは、ランサムウェアなどのデータ破損イベントからのリカバリに役立ちます。
プライマリ環境で例えば、ランサムウェア等のデータ破損の問題が解決されたら、AWS Elastic Disaster Recovery を使用してリカバリされたアプリケーションをフェイルバックできます。
本コラムでの過去記事はこちら

追加の記載事項として、クロスリージョン レプリケーション、フェイルオーバー、およびフェイルバックを実行するコストがかかります。追加コストは、初期のレプリケーション、進行中のデータ レプリケーション、およびフェイルバック レプリケーション中のクロスリージョン データ転送コスト、フェイルバック レプリケーションに使用されるレプリケーション リソース (EBS ボリューム、スナップショットなど) のコストです。
また、フェールバック ソース サーバーに対する DRS の時間単位の課金も含まれます。正式な料金はこちら

アップデート内容

AWS Elastic Disaster Recovery(以下、DRS)でAWS で実行しているアプリケーションに対してスケーラブルな「クロスリージョン」及び「クロスアベイラビリティゾーン」のフェイルバックをサポートするようになりました。プライマリの AWS リージョンまたはアベイラビリティーゾーンに簡単にフェイルバックできます。

元々、フェイルバックの機能はありましたが、クロスリージョン/クロスアベイラビリティゾーンでのフェイルバックの機能が追加されています。

以下がソースリージョンからリカバリーリージョンへフェイルオーバーし、ソースリージョンへフェイルバックするフローです。DRS Source Server (A2) がソースリージョンに作成されます。

https://docs.aws.amazon.com/drs/latest/userguide/failback-failover-region-region.html#failback-failover-region-region-failbackより引用

リカバリーインスタンスのステータスが正常になっていたら、 「Launch for failback」をクリックしましょう。 Source Server (B1) が A4サーバ(A1の代替)を保護します。 以下がフェイルバック完了した後に残る不要リソースです。

https://docs.aws.amazon.com/drs/latest/userguide/failback-failover-region-region.html#failback-failover-region-region-failbackより引用

フェイルオーバーからフェイルバックが完了後、複数の AWS リソースが不要になり、起動しておけば当然コストがかかります。具体的な不要リソースはソースおよびフェイルオーバー EC2 インスタンス (A1、B3)、リカバリ インスタンス (B2、A3)、およびソース サーバー (A2) です。

(1)ソース リージョンのソース サーバー (A2) でレプリケーションを停止します。ソース リージョン (A2) のソース サーバーに移動し、[レプリケーション] メニューの [レプリケーションの停止] をクリックします。この手順は、リカバリ インスタンス (B2) を終了する前に実施が必要です。

(2)Recovery インスタンス (B2) を終了します。復旧 AWS リージョンで起動されたこれらのインスタンスは、元のソース AWS リージョンで新しいプライマリ インスタンスを起動したため、不要になっています。これらのインスタンスを終了するには、リカバリ AWS リージョン (B2) の AWS DRS コンソールに移動します。終了後、これらのインスタンスは DRS コンソールの [リカバリ インスタンス] ページに表示されなくなります。このプロセスは、復元された EC2 インスタンス (B3) も終了します。

(3)ソース リージョンの EC2 インスタンス (A1) を終了します。起動された新しいインスタンス (EC2 フェイルバック インスタンス、A3) に置き換えられました。フェイルオーバー後にこのインスタンスを停止した可能性があり、AWS EC2 コンソールから終了できるようになりました。

(4)ソース リージョンの Recovery インスタンス (A3) を削除します。DRS コンソールで Recovery インスタンスに移動します。関連するリカバリ インスタンスを選択し、[Actions] ドロップダウンの下にある [Disconnect from AWS] をクリックします。次に、同じ [アクション] ドロップダウンの下にある [サーバーの削除] をクリックします。

(5)ソース リージョンのソース サーバー (A2) を削除します。DRS コンソールでソース サーバーに移動します。関連するソース サーバーを選択し、[Actions] ドロップダウンの下にある [Disconnect from AWS] をクリックします。次に、同じ [アクション] ドロップダウンの下にある [サーバーの削除] をクリックします。

これで、不要リソースは削除され、以下が不要リソース削除後の状態です。

https://docs.aws.amazon.com/drs/latest/userguide/failback-failover-region-region.html#failback-failover-region-region-failbackより引用

対象リージョン

Elastic Disaster Recovery がサポートされているすべての AWS リージョンでGAになっています。

まとめ

日本でDRを考えるときに、東京、大阪リージョンを使った対策を考えられている方も多いかと思います。
セッション内で公開されたデザインパターンもEC2を使ったアプリケーションでしたが、実際にはEC2メインのアプリケーション以外も多く使われているとは思うので、複数パターンでの検証が必要になるかと思います。