AWS Elastic Disaster Recovery

オンプレミスや他クラウドのサーバーを AWS に継続的にレプリケーションし、数分でフェイルオーバーする DR サービス

概要

AWS Elastic Disaster Recovery (DRS) は、オンプレミスのサーバーや他クラウドの仮想マシンを AWS に継続的にレプリケーションし、災害発生時に数分でフェイルオーバーを実行するディザスタリカバリサービスです。ブロックレベルのデータレプリケーションにより、RPO (目標復旧時点) を秒単位、RTO (目標復旧時間) を分単位に抑えられます。ソースサーバーにエージェントをインストールするだけで、OS やアプリケーションの変更なしにレプリケーションを開始でき、Windows と Linux の両方に対応しています。

継続的データレプリケーションのアーキテクチャ

DRS のレプリケーションは、ソースサーバーにインストールした AWS Replication Agent がブロックレベルの変更を検出し、ステージングエリアのレプリケーションサーバーに転送する仕組みです。初回は全ディスクのフルコピーが実行され、以降は変更ブロックのみが継続的に転送されます。ステージングエリアは軽量な EC2 インスタンス (t3.small 程度) と EBS ボリュームで構成され、ソースサーバーのディスクデータを低コストで保持します。レプリケーションの通信は TLS で暗号化され、帯域幅のスロットリング設定で業務ネットワークへの影響を制御できます。ポイントインタイムリカバリ機能により、過去の任意の時点のスナップショットからリカバリーが可能です。ランサムウェア攻撃でデータが暗号化された場合でも、感染前の時点に巻き戻してリカバリーできます。レプリケーションの遅延 (ラグ) はコンソールでリアルタイムに監視でき、CloudWatch メトリクスとしても取得可能です。

リカバリードリルとフェイルバック運用

DRS の運用で最も重要なのは、定期的なリカバリードリル (DR 訓練) の実施です。ドリルはソースサーバーのレプリケーションを中断せずに実行でき、本番環境に影響を与えません。ドリルを開始すると、最新のレプリケーションデータから EC2 インスタンスが起動し、リカバリー後のサーバーが正常に動作するかを検証できます。検証完了後にドリルインスタンスを終了すれば、追加コストは起動時間分の EC2 料金のみです。月次または四半期ごとのドリル実施を運用ルールに組み込み、RTO の実測値を記録しておくことが推奨されます。実際の災害時にはリカバリーを実行し、ソースサーバーの代わりに AWS 上のインスタンスで業務を継続します。災害が収束した後のフェイルバック (元の環境への復帰) も DRS がサポートしており、AWS 上のインスタンスからオンプレミスへの逆方向レプリケーションを実行できます。フェイルバック完了後にレプリケーションを再開すれば、通常の DR 体制に復帰します。

ランチテンプレートとネットワーク設計

リカバリー時に起動する EC2 インスタンスの構成は、ランチテンプレート (Launch Settings) で事前に定義します。インスタンスタイプ、サブネット、セキュリティグループ、IAM ロール、EBS ボリュームタイプなどを指定し、リカバリー後のインスタンスが本番環境と同等のネットワーク接続性とセキュリティ設定を持つようにします。ソースサーバーが複数のネットワークインターフェースを持つ場合、リカバリー後のインスタンスにも同数の ENI を割り当てる設定が可能です。ネットワーク設計では、ステージングエリアのサブネットとリカバリー先のサブネットを分離することが推奨されます。ステージングエリアはレプリケーショントラフィック専用とし、リカバリー先のサブネットは本番ワークロードのネットワーク要件に合わせて設計します。オンプレミスとの接続には Direct Connect または Site-to-Site VPN を使用し、レプリケーションエージェントからステージングエリアへの通信経路を確保します。DNS の切り替えには Route 53 のヘルスチェックとフェイルオーバールーティングを組み合わせ、フェイルオーバーの自動化を実現します。

共有するXB!