AWS Elastic Disaster Recovery で構築する災害復旧 - 継続的レプリケーションと復旧テスト
継続的レプリケーションでオンプレミスサーバーを AWS に複製し、復旧ドリルで手順を検証する。フェイルバックまでの一連の流れを紹介します。
Elastic Disaster Recovery の概要
Elastic Disaster Recovery (DRS) はオンプレミスや他クラウドのサーバーを AWS に継続的にレプリケーションし、災害時に迅速に復旧するサービスです。ソースサーバーにエージェントをインストールすると、ブロックレベルの変更が継続的に AWS のステージングエリアにレプリケーションされます。
復旧ドリルとフェイルオーバー
復旧ドリルはレプリケーションデータから EC2 インスタンスを起動し、アプリケーションの動作を検証するテストです。本番のレプリケーションに影響を与えずに実行でき、RTO の実測値を取得できます。フェイルオーバーはドリルと同じ手順で EC2 インスタンスを起動し、DNS を切り替えて本番トラフィックを AWS に向けます。フェイルバックは AWS から元のオンプレミス環境にデータを戻す操作で、DRS がレプリケーションの逆方向を管理します。
ネットワーク設計と復旧自動化
DRS のレプリケーションサーバーはステージングサブネットに配置され、ソースサーバーからのデータを受信します。復旧時に起動するインスタンスは別のサブネット (復旧サブネット) に配置し、本番環境のネットワーク設定を事前に定義します。起動テンプレートでインスタンスタイプ、セキュリティグループ、サブネット、 IAM ロールを設定し、復旧時の手動作業を最小化します。ポストローンチアクションで、インスタンス起動後にスクリプトを自動実行し、 DNS の切り替えやアプリケーションの設定変更を自動化します。 DRP 設計のベストプラクティスを把握するうえで関連書籍 (Amazon)が参考になります。
DRS の料金
DRS の料金はレプリケーションサーバーの EC2 インスタンスと EBS ボリュームで構成されます。レプリケーションサーバーは t3.small 程度の小さいインスタンスで動作し、月額約 15-20 ドル/サーバーです。復旧ドリルやフェイルオーバー時に起動するインスタンスは、実行時間分のみ課金されます。EBS スナップショットのストレージ料金 (1 GB あたり月額約 0.05 ドル) がデータ量に応じて発生します。従来の DR ソリューション (常時稼働のスタンバイ環境) と比較して、大幅にコストを削減できます。
まとめ
Elastic Disaster Recovery は継続的レプリケーションで RPO を秒単位に短縮し、数分での復旧を実現する DR サービスです。起動テンプレートで復旧時のインスタンス設定を事前定義し、ポストローンチアクションで DNS 切り替えを自動化します。定期的な復旧ドリルで RTO/RPO 目標の達成を検証し、従来の常時稼働スタンバイ環境と比較して大幅にコストを削減します。