DEA / ドメイン2 データストア管理
データの保護とレジリエンス
データパイプラインの価値は、データが失われないことに支えられています。障害、誤操作、ランサムウェアからデータを守り、決めた時間内に戻せるように設計します。DEA-C01 では、適切なレジリエンスと可用性でデータを保護する方法 (スキル 2.3.6) として、、 のとマルチ 、 の 、 のと、 のグローバルデータベースを、 と の要件から選ぶ力が問われます。
Point
- RPO = Recovery Point Objective (目標復旧時点): どれだけ前のデータまで戻れればよいか。失ってよいデータの量です。
- RTO = Recovery Time Objective (目標復旧時間): どれだけの時間で使える状態に戻すか。止まってよい時間です。
- レジリエンス (resilience): 障害から立ち直る力です。
- 和訳
- Resilience: 回復力
- Weblio英和辞書「resilience」
概要
守る相手によって、選ぶ仕組みが変わります。
| 脅威 | 有効な仕組み | 効かない仕組み |
|---|---|---|
| ハードウェアや の障害 | マルチ AZ (、、)、 の複数 AZ の保管 | (単一 AZ の構成) |
| 全体の障害 | クロスリージョンの・のコピー、Aurora グローバルデータベース | 同じリージョン内のバックアップだけ |
| 誤った更新・削除 | 、、スナップショット | レプリケーション (誤りもそのまま複製される) |
| 悪意ある削除・ランサムウェア | Object Lock、 Vault Lock、別アカウントへのバックアップのコピー | 同じアカウント内で消せるバックアップ |
試験では、「 / がどれだけか」「何から守るのか」「運用の手間をどこまで減らしたいか」から仕組みを選びます。
主要技術
①AWS Backup ⚠️ 頻出
は、複数のサービスのバックアップを、バックアップ計画 (頻度、保持期間、コピー先) で一元的に自動化します。
| 機能 | 内容 |
|---|---|
| バックアップ計画 | 頻度、保持期間、コールドストレージへの移行、別・別アカウントへのコピーをまとめて定義する。タグでリソースを割り当てる |
| 対応するデータストア | 、、、、 (プロビジョンド・Serverless)、、、、 など |
| 継続的バックアップ | S3、RDS、Aurora などで、保持期間内の任意の時点へ戻せる () |
| Vault Lock | バックアップを (書き込み1回、削除不可) にする。モードは猶予期間 (最短3日) を過ぎると root ユーザーを含め誰も解除できない。モードは十分な 権限を持つ利用者が解除できる |
| 論理的にエアギャップされたボールト | 別アカウントと共有でき、本番アカウントが侵害されても復元に使える隔離されたボールト |
| Backup | バックアップが方針どおりに取られているかを監査し、レポートを作る |
| 復元テスト | 定期的に自動で復元して、戻せることを確かめる |
サービスによって、AWS Backup でできることが違います。たとえば DynamoDB の別リージョン・別アカウントへのコピーは、AWS Backup の DynamoDB 向けの高度な機能を有効にすると使えます。使う前に、リソースごとの対応表で確かめます。
②Redshift のスナップショットとマルチ AZ ⚠️ 頻出
| 仕組み | 内容 |
|---|---|
| 自動 | 既定で有効。約8時間ごと、またはノードあたり 5 GB のデータ変更ごとに増分で取る。保持期間の既定は1日で、RA3・RG では1〜35日 (無効にはできない) |
| 手動スナップショット | いつでも取れる。既定では削除するまで (クラスターを削除した後も) 残る。作成時や後からの変更で保持期間を設定すると、期限で自動削除される |
| クロスのスナップショットのコピー | 自動・手動のスナップショットを別リージョンへ自動でコピーする。 で暗号化したクラスターでは、コピー先リージョンのキーを使う設定 (スナップショットコピーの許可) が必要 |
| 復元 | スナップショットから新しいクラスターを作る。全データのロード前から問い合わせを始められる |
| マルチ 配置 (RG・RA3) | 2つの AZ にコンピューティングを置き、1つので使う。AZ の障害でも処理を続ける。 はゼロで、SLA は単一 AZ の 99.9% から 99.99% に上がる |
| Serverless | 自動の復旧ポイントと手動のスナップショットで戻す。 でも管理できる |
リージョン障害への備えはクロスリージョンのスナップショットのコピー、AZ 障害への備えはマルチ AZ、と分けて考えます。
③DynamoDB と S3 の保護
| サービス | 仕組み | 内容 |
|---|---|---|
| 1〜35日で設定した期間内の任意の時点へ、秒単位で新しいテーブルとして復元する | ||
| DynamoDB | バックアップ | 削除するまで残る完全なバックアップ。 でも取れる |
| DynamoDB | 削除保護 | テーブルの誤削除を防ぐ |
| DynamoDB | 複数で読み書きでき、リージョン障害でも別リージョンで続けられる | |
| 複数の に冗長に保管する (One Zone 系と Express One Zone を除く) | ||
| S3 | 上書き・削除から以前の版へ戻せる | |
| S3 | (CRR / SRR) | 別の・リージョン・アカウントへ自動で複製する |
| S3 | Object Lock | 保持期間中の削除・上書きを防ぐ |
| S3 | AWS Backup | 継続的バックアップで任意の時点へ戻す、別アカウントへコピーする |
グローバルテーブルやレプリケーションは、誤った更新も複製します。データの破損や誤削除からは、PITR やバージョニングで戻します。S3 の機能の詳細は「S3 のライフサイクル・バージョニング・レプリケーション」の章で扱います。
④RDS と Aurora の可用性
| 仕組み | 内容 | 守る相手 |
|---|---|---|
| の | 別の に同期でスタンバイを置き、障害時に自動で切り替える | AZ の障害 |
| のストレージ | 3つの AZ に6つのコピーを持つ。レプリカへの | AZ の障害 |
| 自動バックアップ () | 保持期間内の任意の時点へ戻す | 誤操作 |
| クロスの | 別リージョンにレプリカを置き、昇格させる | リージョンの障害 |
| Aurora グローバルデータベース | 1つのプライマリリージョンと最大10の読み取り専用のセカンダリリージョン。複製の遅れは通常1秒未満。計画的な切り替え (スイッチオーバー) はデータ損失なし、障害時はフェイルオーバー | リージョンの障害、遠隔地の読み取り |
⑤パイプラインとしてのレジリエンス
データストアの保護に加えて、パイプラインの作りでもデータを守れます。
| 工夫 | 内容 |
|---|---|
| raw ゾーンを残す | 変換後のデータが壊れても、raw から作り直せる |
| ストリームの保持期間 | や の保持期間内なら、コンシューマーの障害後に読み直せる |
| な書き込み | 再実行しても重複しない書き方 (、上書き) にする |
| の | 誤ったバッチ書き込みの前の状態へロールバックする |
のあるパイプラインの設計は「耐障害性のあるデータパイプライン」の章で扱います。
試験対策
①判断マトリクス
| 問題文のキーワード | 選ぶもの |
|---|---|
| 複数のサービスのバックアップを一元的に自動化 | のバックアップ計画 |
| バックアップを管理者にも消させない | AWS Backup Vault Lock |
| 本番アカウントが侵害されても復元できるように | 別アカウントへのコピー、論理的にエアギャップされたボールト |
| バックアップが方針どおりか監査したい | Backup |
| を障害に備える | のクロスリージョンコピー |
| Redshift を 障害でも止めない | マルチ AZ 配置 (RG・RA3) |
| Redshift の自動スナップショットを長く残す | 保持期間を延ばす (最大35日)、手動スナップショットへコピー |
| の誤った一括更新の前に戻す | |
| の誤削除から戻す | (または AWS Backup) |
| S3 を別リージョンにも置く | クロスリージョン |
| をリージョン障害に備え、 を秒単位に | Aurora グローバルデータベース |
②よくある誤答
- やを、誤操作からの復旧手段と考えること。誤りも複製されます。
- 同じアカウント・同じのバックアップだけで、リージョン障害やアカウントの侵害に備えたと考えること。
- の のスタンバイを、リージョン障害への備えと考えること。同じリージョンの別 です。
- の自動を、そのまま長期保管に使うこと。保持期間で消えるため、手動スナップショットや を使います。