SAP-C02-134 · セクション 15 / タスク 3.4
Data Replication Strategyを改善する
レプリケーション / 同期 / 非同期 / マルチAZ / マルチリージョン / レプリケーション遅延 / データ可用性
既存システムに複数のレプリカが存在していても、それだけで必要なデータ可用性を満たしているとは判断できません。
改善するときに確認するのは、
何個コピーがあるかではなく、
どのデータが
↓
どの障害ドメインへ
↓
どのレプリケーション方式で複製され
↓
どの程度の遅延があり
↓
障害時にどのデータ状態を利用できるかです。
このページでは、同期・非同期、マルチAZ、マルチリージョンなどの基本原理は既習として扱います。
目的は、既存のレプリケーション構成を監査し、要求するデータ可用性とのギャップを特定して改善することです。
ゴール
既存環境について、
レプリケーション経路
+
障害ドメイン
+
同期 / 非同期
+
レプリケーション遅延
+
障害時に利用できるデータ状態を対応付け、
コピーは存在する
しかし
必要な障害時に必要なデータを利用できないという問題を特定できるようにします。
1. 最初に現在のレプリケーション経路を可視化する
改善前に、現在のプライマリとレプリカを整理します。
例えば、
リージョンA
├─ AZ-A
│ └─ プライマリ
│
└─ AZ-B
└─ レプリカ1
リージョンB
└─ レプリカ2という配置だけを記録しても不十分です。
| 確認項目 | 確認内容 |
|---|---|
| 更新元 | どこで書き込みを受け付けているか |
| 複製先 | どのコピーへ複製されるか |
| 配置 | 同一AZ / 別AZ / 別リージョン |
| 方式 | 同期 / 非同期 |
| 遅延 | 非同期経路が現在どの程度遅れているか |
| 利用目的 | どの障害時に利用するコピーか |
| データ状態 | 障害時にどの時点のデータを利用できるか |
を対応付けます。
レプリカ1
レプリカ2という名前だけでは、それぞれが同じ役割を持つとは限りません。
2. 各レプリケーション経路の役割を明確にする
既存環境では、異なる目的で作られたコピーが、すべて「レプリカ」として一括管理されていることがあります。
例えば、
リージョンA
AZ-A
プライマリ
AZ-B
同期スタンバイ
↓
リージョンB
非同期レプリカという構成があるとします。
この場合に重要なのは、
コピーが2つあることではありません。
AZ単位の障害では
どのコピーを利用するか
リージョン単位の障害では
どのコピーを利用するか
それぞれのコピーには
どの時点のデータが存在するかを区別することです。
改善時には、各コピーが受け持つ障害範囲とデータ状態を明確にします。
3. 「配置」と「データ状態」を別々に確認する
障害ドメインを分離できていても、必要なデータ状態を維持できているとは限りません。
反対に、レプリケーション遅延が小さくても、必要な障害ドメインの外側にコピーがなければ、想定障害に対するデータ可用性は満たせません。
したがって、
どこにコピーがあるかと、
そのコピーが
どの時点のデータを持っているかを別の軸として確認します。
障害ドメイン
+
データ状態の両方が要求を満たして初めて、そのコピーを想定した障害時に利用できます。
4. サービス名だけでレプリケーション方式を推測しない
改善では、
リードレプリカ
マルチAZ
グローバル
クロスリージョンなどの名称だけから動作を判断しません。
現在利用しているAWSサービスについて、
どこへ複製するか
同期か非同期か
どのコピーが
どの目的に使われるか
現在の構成から
方式を変更できるかを確認します。
同じマルチリージョン構成でも、利用するサービスや設定によってレプリケーションの性質は異なります。
5. 新しい方式へ既存構成をそのまま変更できるとは限らない
必要なレプリケーション方式が変わったとき、
現在の設定値を変更するだけで対応できるとは限りません。
リソース作成時に決まる属性であれば、
新しい要件
↓
現在構成では変更不可
↓
要件を満たす新しい構成を作成
↓
データを移行という対応が必要になります。
改善時には、
AWSがその方式を提供しているかだけでなく、
現在のリソースを
その方式へ変更できるかまで確認します。
6. DynamoDB Global Tablesでは整合性モードの変更制約を確認する
Amazon DynamoDBグローバルテーブルでは、
MREC
Multi-Region Eventual Consistencyと、
MRSC
Multi-Region Strong Consistencyを利用できます。
既存のMREC構成に対して新しい要件が追加され、
複数リージョンで
強い整合性が必要となった場合、
既存MREC
↓
設定変更
↓
MRSCとはできません。
グローバルテーブルの整合性モードは作成後に変更できないため、MRSCが必要なら、対応する新しい構成への移行を検討します。
ここでの判断点はMRECとMRSCの基本比較ではありません。
新しい要件
+
現在リソースの変更制約から、既存構成を修正できるのか、新しい構成へ移行する必要があるのかを判断します。
7. 非同期経路では現在のデータ状態も記録する
非同期レプリケーションを既存構成の一部として利用しているなら、
レプリカが存在するという情報だけでは十分ではありません。
棚卸し時には、
レプリケーション遅延
+
レプリケーションが正常に継続しているかも確認します。
例えば、
通常
数秒の遅延
高負荷時
数十分の遅延であれば、障害時に利用するコピーとして評価するとき、その差を無視できません。
ここではレプリケーション監視そのものを独立して設計するのではなく、既存構成を評価するために現在のデータ状態を把握することが目的です。
8. 既存構成の信頼性ギャップを整理する
確認した内容を、
現在の構成
↓
想定障害
↓
残るコピー
↓
そのコピーのデータ状態
↓
不足しているものとして整理します。
| 現在の状態 | 見つかったギャップ | 改善対象 |
|---|---|---|
| コピーが同一AZだけ | AZ障害で必要なコピーが残らない | 障害ドメイン |
| 別リージョンに非同期レプリカ | 現在の遅延が把握されていない | データ状態の確認 |
| 複数レプリカ | 各コピーの障害時の役割が不明 | 役割の明確化 |
| 既存MREC | 新要件でMRSCが必要 | 新構成への移行 |
| レプリカは存在 | 実際のレプリケーション経路が不明 | レプリケーション経路の整理 |
新しいレプリカを追加する前に、何が不足しているのかを特定します。
9. 改善後は「どの障害でどのコピーを使うか」を再確認する
構成変更後も、
レプリカを追加できただけで完了にしません。
AZ障害
↓
どのコピーを利用するか
リージョン障害
↓
どのコピーを利用するか
そのコピーは
どのデータ状態を持っているかを再確認します。
改善結果は、
レプリカ数ではなく、
必要な障害が発生したとき
必要な場所に
必要なデータ状態が残ることで評価します。
10. 改善の順序
既存環境では次の順序で確認します。
現在のプライマリとレプリカを特定
↓
各レプリケーション経路を特定
↓
AZ / リージョン配置を確認
↓
同期 / 非同期を確認
↓
各コピーの利用目的を確認
↓
非同期経路の遅延と現在状態を確認
↓
障害時に利用できるデータ状態を確認
↓
要求とのギャップを特定
↓
必要な構成だけ改善最初から、
レプリカ追加
マルチAZ化
マルチリージョン化を選ぶのではありません。
どのギャップを
どの変更で解消するかを先に決めます。
11. 混同ポイント
| 誤った判断 | 改善時の判断 |
|---|---|
| レプリカ数が多ければ十分 | 配置・方式・データ状態を対応付ける |
| すべてのレプリカは同じ役割 | 障害範囲と利用目的を区別する |
| 別リージョンにあれば常に同じデータ状態 | 非同期経路なら現在の遅延も確認する |
| サービス名だけで同期 / 非同期を判断できる | 現在利用している構成の公式仕様を確認する |
| 新しい方式がAWSに存在すれば既存構成を変更できる | 現在リソースの変更制約まで確認する |
| レプリカが存在すれば改善完了 | 障害時に必要なコピーとデータ状態を再確認する |
12. SAP-C02での判断フロー
既存データ構成
↓
プライマリ / レプリカを特定
↓
各コピーはどこにある?
↓
どの障害で利用する?
↓
同期 / 非同期は?
↓
非同期なら
現在の遅延と状態は?
↓
障害時に必要なデータ状態を持つ?
│
├─ はい
│ ↓
│ その経路は要件を満たす
│
└─ いいえ
↓
不足内容を特定
├─ 障害ドメイン
├─ レプリケーション方式
├─ 遅延
└─ 既存構成の変更制約
↓
必要な部分だけ改善問題文に、
マルチAZ
マルチリージョン
レプリカという単語があっても、それだけでは十分と判断しません。
そのコピーを
どの障害で使うのか
その時点で
どのデータ状態なのかまで確認します。
13. このページで扱わないこと
ここでは、
RTO / RPOからDR方式を選択する
復旧テストを設計する
復旧サイトを切り替える
フェイルバックを設計することは扱いません。
このページで完成させるのは、
既存のレプリケーション戦略
↓
現在の構成とデータ状態を把握
↓
要求とのギャップを特定
↓
必要なレプリケーション戦略だけ改善という判断です。
まとめ
既存環境のレプリケーション改善では、
レプリカがあることを確認して終わりません。
レプリケーション経路
+
障害ドメイン
+
同期 / 非同期
+
レプリケーション遅延
+
障害時のデータ状態を一つの構成として評価します。
特に、
コピーが存在する
≠
必要な障害時に利用できる
別リージョンにある
≠
必ず必要なデータ状態を持つ
新しい機能が存在する
≠
既存リソースをそのまま変更できるです。
最終的には、
想定する障害が発生したとき
必要な場所に
必要なデータ状態が残るように、既存のレプリケーション構成を改善します。
主要AWS公式資料
- AWS Certified Solutions Architect - Professional(SAP-C02)試験ガイド — タスク 3.4
- AWS Well-Architected Framework — Reliability Pillar
- Amazon RDS — Multi-AZ deployments
- Amazon RDS — Read replicas
- Amazon DynamoDB — Global tables
- Amazon DynamoDB — Multi-Region strong consistency
理解確認
このページの内容を3問で確認します。
理解確認3問へ →