バックアップ/レプリケーション戦略
概要
信頼できるデータ戦略は、バックアップ、レプリケーション、リカバリという3つの柱に基づいています。レプリカはRTO(リカバリ時間)を削減し、バックアップはRPO(データ損失)を保証し、論理エラー/ランサムウェアから保護します。基本原則:3-2-1-1-0(3つのコピー、2つのタイプのメディア、1-オフサイト、1-チェック中の変更不可、0エラー)、定期的なDRテスト、およびクリティカルセットの不変性。
利用規約と目的
RPO-どのくらいのデータを失うことができます(例えば、≤ 5分)。
RTO-復元する時間はどのくらいですか(例えば、≤ 15分)。
PITR (Point-in-Time Recovery)-ログ再生機能を備えた「モーメントX」リカバリ。
データSLOは、RPO/RTOとバックアップタスクの成功のためのサービスレベル契約です。
フォルト・トレランスとレプリケーション・モデル
トポロジオプション
アクティブパッシブ(ホット/ウォーム/コールド):よりシンプルで予測可能なファイローバー。
Active-Active:高可用性ですが、紛争解決と一貫性はより困難です。
マルチゾーン/リージョン/クラウド:遅延と脱出コストのバランス。
同期と非同期
同期:RPO≈0、レイテンシーの上、距離制限。
Asynchron:低いRPOでゼロRTOに近い(分)、領域/雲に耐えます。
ハイブリッド:ゾーン内の同期、リモート領域との非同期。
レプリカ≠バックアップ
レプリカはソースの後にエラー/削除を実行します。バックアップ-バージョン管理、チェック、分離機能を備えたオフパス・コピー。
ポリシー3-2-1-1-0と不変性
3コピー(prod+local backup+offsite)
2種類のメディア(ブロック/NAS/オブジェクト/テープ)。
1オフサイト(他のサイト/クラウド/テープ)。
1不変コピー(WORM:オブジェクトロック、不変スナップショット/テープ)。
0エラー:通常の整合性チェック(チェックサム/検証/復元テスト)。
- 重要なバックアップを持つオブジェクトのバージョン管理とオブジェクトロック(コンプライアンス/ガバナンス)を有効にします。
- NAS/ブロックの場合-期限までの保持と削除の禁止を伴う不変スナップショット。
バックアップとスケジュールの種類
フル-フルコピー。
増分-前のバックアップからの変更のみ。
差分-最後の完了以来の変更。
GFS計画(Grandfather-Father-Son)で永遠にインクリメンタル:毎日のインクリメント、毎週および毎月の「合成フル」。
- Prod DB:毎日フル(または合成フル)、5-15分ごとに増分/ログ(PITR)。
- ファイルサーバー:毎週フル、毎日の増分、毎月のアーカイブ。
- オブジェクト:ライフサイクル+バージョン;cold-ストレージクラス/テープをアーカイブします。
アプリケーションとデータベース: PITRプラクティス
PostgreSQL
WALアーカイブとベースバックアップを有効にします。'restore_command'によるPITR。
ツール: 'pgBackRest'、 'wal-g'(オブジェクト)、'pg_basebackup'
スプリットボリューム:データとWAL;PLPを使用して高速NVMeでWALを書き込みます。
MySQL/MariaDB
PITRのバイナリログ。'Percona XtraBackup'(ホットバックアップ)で完了します。
GTIDレプリケーション;DR-地域/クラウドへの非同期。
MongoDB
PITRのためのOplog;論理コピーのためのstoraj+'mongodump'レベルのスナップショット。
バックアップの前にレプリカの一貫性をテストします。
Redis/キャッシュ
バックアップと見なされない:RDB/AOF+をオフサイトに保つ。ウォームキャッシュまたは真実のソースから復元します。
Kubernetesとコンテナ
etcdクラスタ-別個の重要な目標(頻繁なスナップショット、オフサイト)。
Velero:バックアップマニフェスト/リソース+CSI スナップショット/PV;S3-compatible Bucket内のストレージ(Object Lock付き)。
ステートフルなダウンロード:app-consistentスナップショット(pre/post hooks)、それ以外の場合-crash-consistent。
オブジェクトアーティファクト(モデル/メディア)のバージョニング-バケットのレベルで。
仮想化とファイル・サーバ
VMスナップショット:CBT (Changed Block Tracking)を使用し、オフサイトを保存し、定期的にゲスト対応のquiesce (VSS for Windows)を実行します。
ファイルサーバ(NAS):スナップショット+レプリカおよび通常のカタログ復元テスト(ファイルサンプリング)。
バックアップセキュリティ
残り(LUKS/ZFS/cloud KMS/Vault)および送信中(TLS/mTLS)の暗号化。
キー管理:個々の役割、デュアルコントロール、回転、マスターキーのオフラインストレージ。
分離:不変のコピーを削除する権利のないバックアップソフトウェアアカウント;個々のネットワーク/VLAN。
ランサムウェア抵抗性:不変、エアギャップ(テープ/隔離されたアカウント/ラボ)。
監査:バックアップシステム操作のログ、削除/保持の削減に関する通知。
ウィンドウと帯域幅の計画
バックアップウィンドウとロード:I/O/ネットワークのスロットル、重複排除、圧縮。
ネットワーク:毎分N、個々のチャンネル/VPN、夜間のレプリカ、またはQoSで永久に増分します。
ブロックトラッキング/CDCを変更してトラフィックを削減します。
大規模なベース:パラレルストリーム/ストリーミング、マルチチャンネルmultipart to object。
モニタリング、メトリック、SLO
技術指標:- バックアップ/レプリケーション・タスク(%)、期間、速度、ログ・ラグ(WAL/binlog/oplog)の成功).
- バックアップ記憶域、dedup係数、他の費用。
- テスト回収の時間と成功。
- バックアップの成功≥ 99。9%/30日。
- RPOは時間の≥ 99%を満たしました(目標≤ログラグ)。
- RTO(テストリストア)≤ウォレットの場合は15分、レポートの場合≤ 1時間です。
- 毎月のDRドリル:完了したルーチンシナリオの100%。
- 欠落/失敗したバックアップ、PITR>しきい値の遅延、重複排除の低下、スペース不足、保持ポリシーの変更、新しいテストの復元の欠如。
DRドリルとリカバリチェック
テーブルの上:役割の調整、接触、コミュニケーション。
技術:サンドボックスの回復、RTO測定、チェックサム/データ比較。
ブラックスタート:完全な裸の鉄/クリーンクラスタの回復。
データカタログ:システムクラスごとに事前に説明されたリカバリ手順(ランブック)。
自動化:定期的な「カナリア」チェックサムの復元と検証。
実用的なテンプレート
1) PostgreSQL(オブジェクトへのpgBackRest+WALアーカイブ)
ini
[global]
repo1-type=s3 repo1-path=/pgbackups repo1-s3-endpoint=minio. local:9000 repo1-s3-bucket=pg-wal repo1-s3-key=ACCESSKEY repo1-s3-key-secret=SECRET repo1-retention-full=8 start-fast=y compress-type=zst
2) wal-g (ENV例)
bash export WALG_S3_PREFIX=s3://pg-wal/prod export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export WALG_COMPRESSION_METHOD=zstd
3) Velero (K8s-目的+バケツの不変性)
yaml apiVersion: velero. io/v1 kind: BackupStorageLocation metadata: { name: default, namespace: velero }
spec:
provider: aws objectStorage:
bucket: k8s-backups config:
s3Url: https://minio. example s3ForcePathStyle: "true"
publicUrl: https://minio. example
4)オブジェクトロックポリシー(例'mc')
bash mc version enable my/backups mc retention set --default COMPLIANCE 365d my/backups
5) GFSスケジュールの例(コンセプト)
毎日:15分ごとに増分(雑誌)、毎日の合成フル。
毎週: 1つの「完全な」(合成)、8週間店
毎月:フル、ストア12-24ヶ月(アーカイブ/テープ)。
実装チェックリスト
- 定義されたデータクラス、所有者、RPO/RTO/SLO。
- レプリケーション(同期/非同期)およびトポロジー(AZ/Region/Cloud)モデルが選択されています。
- バックアップは構成されています:full/incremental/PITR、スケジュール、ディレクトリ。
- 不変性(WORM/オブジェクトロック/不変スナップショット)とオフサイト/エアギャップが含まれます。
- 暗号化とKMS/Vault、個別の役割とキーの回転。
- 監視:タスクの成功、ログラグ、場所、テストの復元;警告します。
- Runbooksの回復とfeilover;連絡先、エスカレーション、コミュニケーションテンプレート。
- 毎月のDRドリル+レポート、計画を調整します。
- 予算とFinOps:ストレージのコスト/出力、アーカイブ/破損プロジェクト。
よくあるエラー
「レプリカがあります-バックアップは必要ありません」:論理的な削除とランサムウェアはレプリカに残ります。
リカバリテストなし-バックアップは「理論的に」存在します。
不変性とオフサイトの欠如は、単一のリスク点です。
売上とバックアップのための同じアカウント/キー-妥協=すべての損失。
長すぎるバックアップウィンドウ→ピークとの競合;スロットリングとQoSなし。
ログラグ制御なしのPITR。
アプリケーションの一貫性のあるスナップショットを無視します。
iGaming/fintech固有の
財布/支払の中心:RPO ≤ 1-5分、RTO ≤ 15分;WORMを持つオブジェクトへのログ(WAL/binlog);ゾーン+非同期領域で同期します。
レポート/規制:変更できないリポジトリ、長い保存期間(年)、検証可能な完全性、規制当局にデータを発行するための明確な手順。
ログ/rawイベント/不正防止:安価な長寿命ストレージ(オブジェクト)+ライフサイクル;インデックスとストアフロント-別途。
ピーク(試合/トーナメント):ピーク外のバックアップウィンドウ、スロットリング;イベント期間のDR計画;カナリアは株式の前に復元します。
合計
データ保護はアーキテクチャの分野です:3-2-1-1-0、バージョン管理と不変性、SLOとしてのRPO/RTO、定期的なDR演習、および「現場での」回復テスト。アップタイムおよび高速フェイルオーバーのためのレプリケーションと、論理エラーや妥協のためのバックアップを組み合わせます。自動化、測定、文書化-最悪の日でも常に作業経路を戻すことができます。