type
status
date
slug
summary
tags
category
icon
password
理論
スナップショットとレプリカは、データ保護やシステムの耐障害性を向上させるための重要な手法ですが、それぞれ異なる目的と動作を持っています。以下にその違いを説明します。
1. スナップショット
スナップショットは、特定の時点でのデータの完全なコピーを保存するものです。AWSでは、主にEBSスナップショットやRDSスナップショットを使用します。
- 目的: スナップショットは主にバックアップ目的で使用され、特定の時点に戻るための復旧手段として機能します。スナップショットを使うことで、データが失われた場合や、システムが壊れた場合に、その時点の状態に復元できます。
- 動作: スナップショットは、通常、保存したい時点のデータを「キャプチャ」し、保存します。AWSのEBSスナップショットは、差分バックアップ(変更された部分のみ保存)を行うため、効率的に保存できます。
- 利点:
- 短期間で復元可能(復元ポイントが明確)。
- 低コスト(変更されたデータのみ保存するため)。
- 他のリージョンに複製して災害復旧にも使用できる。
- 欠点:
- リアルタイムでのデータ変更反映はされないため、最新データにすぐアクセスしたい場合には適していません。
2. レプリカ
レプリカは、データをリアルタイムで他の場所にコピーし、常に同期を取る方法です。AWSのRDSのリードレプリカやクロスリージョンリードレプリカが典型的な例です。
- 目的: レプリカは主に可用性の向上と、読み取りトラフィックの分散、障害発生時の迅速なフェイルオーバーを目的とします。レプリカは、常にプライマリ(元)のデータベースと同期し、同じデータをリアルタイムで保持します。
- 動作: レプリカは、元のデータベースで発生した変更(書き込み操作)を即座に反映します。これにより、データベースの負荷分散や、障害時の迅速な切り替えが可能になります。
- 利点:
- リアルタイムで同期され、常に最新のデータを保持。
- 読み取り専用のレプリカを利用することで、読み取り負荷の分散が可能。
- 障害発生時に迅速なフェイルオーバーが可能(特にクロスリージョンレプリカ)。
- 欠点:
- 書き込み操作は元のデータベースに集中するため、レプリカ側では書き込みはできません(読み取り専用)。
- 他のリージョンにレプリカを作成すると、レイテンシが発生する可能性があり、完全なリアルタイム性を確保するのは難しい場合もあります。
スナップショットとレプリカの主な違い
特徴 | スナップショット | レプリカ |
目的 | データのバックアップ、災害復旧 | 高可用性、負荷分散、リアルタイム同期 |
同期性 | 特定の時点の静的なコピー | リアルタイムまたはほぼリアルタイムのデータ同期 |
更新頻度 | 変更があった場合に手動でスナップショットを取る | 元データベースの変更が即座にレプリカに反映される |
可用性 | 復元ポイントが指定された時点のもの | 障害発生時に即座に切り替えが可能 |
使用例 | バックアップ、データの保護、特定時点への復元 | 可用性の向上、フェイルオーバー、読み取り負荷の分散 |
コスト | 比較的低い(保存した時点の差分のみ) | 常にデータが同期されるため、追加リソース(別のインスタンス)を必要とする |
まとめ
- スナップショットはバックアップやデータ保護の手段であり、特定の時点に戻すことができます。
- レプリカは、高可用性や負荷分散を目的とし、リアルタイムでデータが同期され、フェイルオーバーに利用されます。
用途に応じてスナップショットとレプリカを使い分けることが重要です。
実践
略
一問道場
問題 #169
トピック 1
ある企業が、Amazon EC2インスタンス2台を使用して、アプリケーションロードバランサー(ALB)の背後で状態を保持する重要なWebアプリケーションを実行しています。企業は、Amazon RDS for MySQLデータベースをホストしています。企業は、Amazon Route 53でアプリケーションのDNSレコードを管理しています。
ソリューションアーキテクトは、アプリケーションの耐障害性を改善するためのソリューションを推奨する必要があります。
このソリューションは、次の目的を満たす必要があります:
アプリケーション層:RPO(復旧時点目標)2分、RTO(復旧時間目標)30分
データベース層:RPO(復旧時点目標)5分、RTO(復旧時間目標)30分
企業は、既存のアプリケーションアーキテクチャに大きな変更を加えたくありません。また、フェイルオーバー後の最適なレイテンシを保証する必要があります。
どのソリューションがこれらの要件を満たしますか?
A. EC2インスタンスをAWS Elastic Disaster Recoveryを使用して構成し、RDS DBインスタンスのクロスリージョンリードレプリカを作成します。2番目のAWSリージョンにALBを作成し、AWS Global Acceleratorエンドポイントを作成して、そのエンドポイントをALBに関連付けます。DNSレコードをGlobal Acceleratorエンドポイントを指すように更新します。
B. EC2インスタンスをAmazon Data Lifecycle Manager(Amazon DLM)を使用してEBSボリュームのスナップショットを取得するように構成します。RDSの自動バックアップを構成し、バックアップの複製を別のAWSリージョンに作成します。2番目のリージョンにALBを作成し、AWS Global Acceleratorエンドポイントを作成して、そのエンドポイントをALBに関連付けます。DNSレコードをGlobal Acceleratorエンドポイントを指すように更新します。
C. EC2インスタンスとRDS DBインスタンスのバックアッププランをAWS Backupで作成します。バックアップの複製を別のAWSリージョンに作成します。2番目のリージョンにALBを作成し、ALBの前にAmazon CloudFrontディストリビューションを構成します。DNSレコードをCloudFrontを指すように更新します。
D. EC2インスタンスをAmazon Data Lifecycle Manager(Amazon DLM)を使用してEBSボリュームのスナップショットを取得するように構成します。RDS DBインスタンスのクロスリージョンリードレプリカを作成します。2番目のAWSリージョンにALBを作成し、AWS Global Acceleratorエンドポイントを作成して、そのエンドポイントをALBに関連付けます。
解説
A
この問題においては、レプリカを使用する方が適しています。理由は以下の通りです。
問題の要件:
- アプリケーション層 (RPO: 2分、RTO: 30分)
- データベース層 (RPO: 5分、RTO: 30分)
- 高可用性と迅速なフェイルオーバーを求めている。
- 既存のアーキテクチャには大きな変更を加えたくない。
レプリカが適している理由:
- リアルタイムのデータ同期 (RPOの短縮)
- レプリカは、データのリアルタイム同期を提供するため、アプリケーションやデータベースがダウンした場合でも、レプリカに即座に切り替えることができます。これにより、データの損失を最小限に抑え(RPOを短縮)、システムの可用性を高めます。
- 特にデータベース層において、RPOが5分という要件があるため、クロスリージョンリードレプリカを使用することで、フェイルオーバー時のデータ損失を最小限に抑えることができます。
- RTOの短縮
- クロスリージョンのレプリカを利用すると、RTOが30分の要件を満たすために、迅速にフェイルオーバーを実施できます。新しいリージョンでレプリカが即座に読み取りを提供できるため、アプリケーションの復旧が早く、全体のダウンタイムを短縮できます。
- 変更が少ない
- 現行のインフラに大きな変更を加えることなく、レプリカを追加するだけで、高可用性を実現できます。これは、既存アーキテクチャに最小限の影響を与えつつ、災害復旧計画を強化できるため、要件に適しています。
スナップショットの問題点:
- スナップショットはバックアップ目的で使用されるものであり、リアルタイムのデータ同期を提供しません。したがって、RPOが長くなり、最悪のケースでデータ損失が発生する可能性があります。
- RTOが30分の場合でも、スナップショットを復元するには時間がかかるため、完全な復旧に30分以上かかる可能性があります。
まとめ:
- レプリカ (特にクロスリージョンリードレプリカ) を使用することで、RPOが短縮され、RTOの要件も満たしやすくなるため、この問題に最適です。
- スナップショットはバックアップ用途には適しているものの、フェイルオーバー時の迅速な復旧には不向きです。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/170d7ae8-88e2-8083-9258-fe93c71ab533
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章