AWS Elastic Disaster Recovery (DRS) でフェイルバッククライアントを利用した復元機能を試してみました

AWS Elastic Disaster Recovery (DRS) でフェイルバッククライアントを利用した復元機能を試してみました

Clock Icon2024.10.01

はじめに

ディザスタリカバリサービスである AWS Elastic Disaster Recovery (DRS) はオンプレミス環境にも対応していますが、オンプレミスのサーバに対してデータの復元を行う場合、フェイルバッククライアントと呼ばれる機能を利用して実施する必要があります。
最近、このフェイルバッククライアントに関する問い合わせを受けることがあったので、実際に試してみました。

構成図

検証環境の構成図はざっくり以下の通りです。
drs
ローカル端末の VirtualBox 上に作成した Ubuntu Server 24.04.1 をソースサーバとして、 DRS エージェントのインストールを実施。インターネット経由でのレプリケーション完了後にフェイルバッククライアント用のサーバを同じく VirtualBox 上に立ち上げ、そのサーバに対して復元処理を行う構成としています。

DRS エージェントのインストール

以下ドキュメントの手順に従い、まずは DRS のエージェントをソースサーバにインストールします。 
今回は特に明示的な指定は実施していませんが、必要に応じて特定のディスクのみをレプリケーションの対象として指定することも可能です。
https://docs.aws.amazon.com/drs/latest/userguide/linux-agent.html

$wget -O ./aws-replication-installer-init https://aws-elastic-disaster-recovery-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/latest/linux/aws-replication-installer-init
$chmod +x aws-replication-installer-init; sudo ./aws-replication-installer-init
The installation of the AWS Replication Agent has started.
AWS Region name: <レプリケーション先のリージョンを指定>
AWS Access Key ID: <アクセスキーを指定>
AWS Secret Access Key: <シークレットキーを指定>

2024-10-01_11h49_39_mask

リカバリインスタンスの起動

エージェントのインストールが正常に完了すると、マネジメントコンソールの「ソースサーバ」に当該サーバが表示され、レプリケーションの進捗度が確認できる状態になります。
レプリケーションの進行状況が 100% となり「リカバリの準備完了」という項目が「準備完了」という表記になったことを確認後、「リカバリジョブを開始」を選択してリカバリインスタンスを起動します。

2024-10-01_11h50_01

復元ポイントには最新のデータを使用し、「リカバリを開始」します。
2024-10-01_11h50_08

リカバリインスタンスの起動ジョブが実行されるので、しばらく待ちます。
今回は約 10 分程で起動完了しました。
2024-10-01_12h59_33

フェイルバッククライアントの起動

ここまでの作業で事前準備が整ったので、以下ドキュメントの手順に従ってフェイルバックを実行していきます。
https://docs.aws.amazon.com/drs/latest/userguide/failback-performing-on-prem.html

まず、以下の URL からフェイルバッククライアントの ISO ファイルをダウンロードします。

https://aws-elastic-disaster-recovery-{REGION}.s3.{REGION}.amazonaws.com/latest/failback_livecd/aws-failback-livecd-64bit.iso

その後、ダウンロードした ISO ファイルを利用してサーバを作成します。
なお、ドキュメントに記載があります様に、この際起動するサーバは以下のディスク要件を満たしている必要があるので注意が必要です。

(原文)Ensure that the server you are failing back to has the same number of volumes or more than the Recovery Instance and that the volume sizes are equal to or larger than the ones on the recovery instance.
(日本語訳)フェイルバック先のサーバーが、リカバリインスタンスと同数以上のボリュームを持ち、かつそれらのボリュームサイズがリカバリインスタンスのものと同等かそれ以上であることを確認してください。

サーバを起動すると以下の様な画面が表示されるので、表示に従って順番にパラメータを入力していきます。

2024-10-01_13h14_27

Enter AWS region to fail back from: <リカバリインスタンスを起動したリージョンを指定>
AWS Access Key ID: <アクセスキーを指定>
AWS Secret Access Key: <シークレットキーを指定>
Enter a custom endpoint: <プライベートネットワークでレプリケーションを実施している場合に、S3 の VPC エンドポイントを指定する。今回は指定せず>

まずここまで入力すると、フェイルバックに利用するリカバリインスタンスを特定するチェック処理が走ります。
元のソースサーバにフェイルバックする場合は自動で特定してくれる様ですが、今回は復元用サーバを別に用意したので自動特定されず、個別に対象のインスタンス ID を指定する必要がありました。

Which Recovery Instance would you like to failback from? Enter the full Recovery Instance ID (e.g:i-xxxx).
Enter Input: <リカバリインスタンスのインスタンス ID を指定>

2024-10-01_13h18_21_mask

次にリカバリ先のローカルデバイスを選択します。
今回は手動で入力してますが、元のソースサーバにフェイルバックする場合はこちらも自動でマッピングしてくれる様です。

Enter local device for remote '/dev/nume0n1' (10.0 GiB):<リカバリ先ローカルデバイスを指定>

2024-10-01_13h20_36_mask

ここまで入力が完了すると、フェイルバックレプリケーションが開始されます。
ソースサーバにエージェントをインストールした時と同様に、マネジメントコンソールからレプリケーションの進捗度が確認できるので、完了するまでしばらく待ちます。

2024-10-01_13h29_02

レプリケーションの進行状況が 100% になり、「準備完了」という表示が出たら「完全なフェイルバック」を選択してフェイルバック処理を開始します。

2024-10-01_13h42_03

フェイルバック用のジョブが実行されるので、完了するまで待ちます。
2024-10-01_14h47_40

ジョブが完了すると、フェイルバックしたサーバが利用可能な状態になりました。これで復元完了となります。

2024-10-01_14h58_20

終わりに

リカバリを実施するためには、フェイルバッククライアントを立ち上げた後にリカバリ用のレプリケーションを改めて実行する必要があるというのがポイントかなと思いました。
実際の運用環境でリカバリ作業が必要になる場合、ある程度の緊急性を伴う場合が多いと思うのですが、ソースサーバのボリュームサイズや環境のネットワーク帯域によっては、このリカバリレプリケーションにそれなりの時間を要してしまう可能性があります。
DRS を利用したオンプレミスサーバの DR を計画する時は RTO 要件なども踏まえた上での検討が必要となりそうです。

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.