type
status
date
slug
summary
tags
category
icon
password
书籍
理論
災害復旧(Disaster Recovery)におけるデータレプリケーションの戦略
災害復旧(Disaster Recovery, DR)は、自然災害やシステム障害などの予期せぬ事態に備え、システムやデータを迅速に復旧するための計画や実装を指します。ここでは、AWSを活用した低コストで効果的なDR戦略に焦点を当てます。
基本用語
- RPO(Recovery Point Objective): データが失われても許容できる時間の最大値。例えば、RPOが1時間の場合、復旧時に最大1時間分のデータ損失が許容される。
- RTO(Recovery Time Objective): システムやサービスを復旧するのに必要な時間。例えば、RTOが1時間の場合、サービスが停止しても1時間以内に復旧する必要がある。
AWSを活用したデータレプリケーション手法
1. Auroraグローバルデータベース
- 概要: Auroraグローバルデータベースは、データを複数のAWSリージョン間でほぼリアルタイムに同期します。プライマリリージョンでの書き込み操作がセカンダリリージョンに1秒未満でレプリケートされます。
- 適用例: 高速な復旧(低RPO)が求められる場合。
- 利点:
- レプリケーションが非常に高速。
- セカンダリリージョンのデータを読み取り専用として活用可能。
- 欠点:
- コストが高い。
- 高度な要件がない場合にはオーバースペックになることも。
2. AWS DMSを利用したデータレプリケーション
- 概要: AWS Database Migration Service(DMS)は、変更データキャプチャ(CDC)機能を使用して、データの継続的なレプリケーションを実現します。ターゲットとしてAmazon S3や別リージョンのデータベースを指定可能。
- 適用例: RPOが1時間程度で許容される場合、またはコスト効率が重視される場合。
- 利点:
- 低コスト。
- 柔軟なターゲット設定(例: S3, DynamoDB)。
- 運用が比較的簡単。
- 欠点:
- レプリケーションには若干の遅延が発生する。
- データ復元時に追加作業が必要な場合がある。
3. スナップショットとバックアップを利用
- 概要: AuroraやRDSの自動バックアップ機能を活用し、定期的にデータを他リージョンにコピーする。手動スナップショットの運用も可能。
- 適用例: データ復旧に即時性が求められない場合。
- 利点:
- コストが非常に低い。
- 操作が簡単。
- 欠点:
- データ損失が大きくなる可能性がある(RPOが長い)。
- 手動作業が多くなる場合がある。
低コストかつ効果的な選択肢の比較
手法 | RPO | RTO | コスト | 適用例 |
Auroraグローバルデータベース | 数秒以内 | 数分 | 高い | ミッションクリティカルなアプリケーション |
AWS DMS + CDC | 数分~1時間 | 1時間程度 | 低い | 災害復旧のコスト効率を重視したアプリケーション |
スナップショットとバックアップ | 数時間 | 数時間 | 非常に低い | データ損失のリスクが比較的許容されるシステム |
実用的なアプローチ
- 要件に応じて選択:
- ミッションクリティカルなシステムでは、Auroraグローバルデータベースが最適。
- コスト効率を重視する場合は、AWS DMSを活用。
- データ復元が迅速である必要がない場合は、スナップショットを利用。
- モニタリング: Amazon CloudWatchやAWS Configを活用して、レプリケーションの状態やRPO/RTOの達成状況を監視。
- 定期的な演習: DR戦略を実行可能に保つために、定期的なテストを実施する。
まとめ
AWSではAuroraグローバルデータベース、AWS DMS、スナップショットなど、多様な手法を活用して災害復旧計画を構築できます。要件に応じて最適なソリューションを選択し、費用対効果を最大化することが重要です。
実践
略
一問道場
問題 #298
ある会社が、単一のAWSリージョンでECアプリケーションを運用しています。このアプリケーションは、Amazon Aurora MySQL DBクラスタ(5ノード)を使用して顧客情報や最近の注文情報を保存しています。このDBクラスタは、一日を通じて大量の書き込みトランザクションを処理します。
この会社は、Auroraデータベースのデータを別のリージョンに複製して、災害復旧要件を満たす必要があります。会社のRPO(復旧目標時点)は1時間です。
以下の解決策のうち、最も低コストでこの要件を満たすものはどれですか?
選択肢
A. AuroraデータベースをAuroraグローバルデータベースに変更し、別のリージョンに2つ目のAuroraデータベースを作成する。
B. AuroraデータベースにBacktrack機能を有効にする。AWS Lambda関数を作成して、データベースのスナップショットを別のリージョンに毎日コピーするように設定する。
C. AWS Database Migration Service(AWS DMS)を使用する。DMSの変更データキャプチャ(CDC)タスクを作成し、Auroraデータベースから別のリージョンのAmazon S3バケットに進行中の変更を複製する。
D. Auroraの自動バックアップを無効にする。バックアップの頻度を1時間に設定し、別のリージョンを宛先リージョンとして指定する。Auroraデータベースをリソース割り当てとして選択する。
解説
この問題の要件は以下の通りです:
- 災害復旧のためのデータレプリケーションが必要。
- RPO(復旧目標時点)は1時間。これは、最大で1時間以内に失われたデータを復元できる必要があることを意味します。
- 最も低コストなソリューションを選択する必要がある。
各選択肢の解説
A. Auroraグローバルデータベースを利用する
Auroraグローバルデータベースは、複数のリージョン間でデータをほぼリアルタイムでレプリケートできます。このソリューションは、高い可用性と低いRPO(通常1秒未満)を提供しますが、グローバルデータベースのコストは高く、低コスト要件に適していません。
コスト: 高い
要件の適合性: RPO要件は満たすが、コストが最適でない。
B. Backtrack機能を有効にしてスナップショットをコピー
BacktrackはAurora MySQLのデータを特定の時点に「巻き戻す」機能で、通常、データ修復用に使用されます。ただし、Backtrack自体は別リージョンへのデータレプリケーションを提供しません。また、スナップショットのコピーをLambda関数で管理するソリューションは運用が複雑であり、リアルタイム性が不足してRPO 1時間を満たす可能性が低いです。
コスト: 中程度
要件の適合性: 複雑でRPO要件を満たしにくい。
C. AWS DMSでCDCタスクを使用
AWS Database Migration Service(DMS)は、Aurora MySQLのデータ変更(CDC: Change Data Capture)を検出し、指定されたターゲット(ここでは別リージョンのS3)にレプリケートできます。この方法は低コストであり、変更の追跡によりRPO 1時間以内を実現することも可能です。ただし、S3をターゲットに選んだ場合、直接のクエリは難しくなり、復旧時にデータをAuroraに戻す必要があります。
コスト: 低い
要件の適合性: コスト効率が高く、RPO要件を満たす。
D. Auroraの自動バックアップを無効にして手動バックアップを設定
この方法は、1時間ごとにデータをバックアップして別リージョンにコピーするものですが、バックアップのプロセス自体が遅く、RPO 1時間を満たす可能性が低いです。また、バックアップ復元のプロセスが手動で行われる可能性が高いため、災害復旧時に復元が遅れる可能性があります。
コスト: 低い
要件の適合性: RPO要件を満たしにくい。
正解: C. AWS DMSでCDCタスクを使用
このソリューションは以下の理由で最適です:
- 低コストである(DMSとS3を利用)。
- RPO 1時間以内を満たすことが可能(CDCを使用したリアルタイムに近いレプリケーション)。
- 管理の複雑さが他の選択肢と比べて低い。
補足
- Auroraグローバルデータベース(選択肢A)は最も高性能ですが、コストが高く、ローコストの要件に適していません。
- RPOがさらに厳しい要件(例えば、数分以内)が求められる場合は、選択肢Aが選ばれる可能性があります。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/175d7ae8-88e2-8086-b53c-cdc3939ce5e5
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章