백업 및 복제 전략
간략한 요약
신뢰할 수있는 데이터 전략은 백업, 복제, 복구의 세 가지 기둥에 있습니다. 복제본은 RTO (복구 시간) 를 줄이고 백업은 RPO (데이터 손실) 를 보장하며 논리적 오류/랜섬웨어로부터 보호합니다. 기본 원칙: 3-2-1-1-0 (3 부, 2 가지 유형의 미디어, 1-오프 사이트, 1-변경 불가능, 수표 오류), 정기적 인 DR 테스트 및 중요한 세트의 불변성.
용어 및 목표
RPO-얼마나 많은 데이터를 잃을 수 있습니까 (예: 소 5 분).
RTO-복원하는 데 걸리는 시간이 얼마나 걸립니까 (예:- PITR (Point-in-Time Recovery) - 로그 재생을 통한 "moment X" 복구.
- Data SLO는 RPO/RTO의 서비스 수준 계약 및 백업 작업의 성공입니다.
결함 허용 오차 및 복제 모델
토폴로지 옵션
액티브 패시브 (뜨거운/따뜻한/차가운): 더 간단하고 예측 가능한 파이 오버.
액티브 액티브: 가용성이 높지만 충돌 해결 및 일관성이 더 어렵습니다.
다중 영역/지역/클라우드: 지연 및 탈출 비용의 균형.
동기식 vs 비동기식
동기식: 대기 시간 이상, 거리 제한 이상의 RPO 약 0.
Asynchron: 낮은 RPO (분) 에서 0 RTO에 가까운 지역/구름을 견뎌냅니다.
하이브리드: 영역 내에서 동기화되고 원격 영역과 비동기식입니다.
Replica 체크 백업
복제본은 소스 뒤에 오류/삭제를 전달합니다. 백업-버전 지정, 확인 및 격리가있는 경로 외 사본.
정책 3-2-1-1-0 및 불변성
3 부 (prod + 로컬 백업 + 오프 사이트).
두 가지 유형의 미디어 (블록/NAS/객체/테이프).
오프 사이트 1 개 (기타 사이트/클라우드/테이프).
불변의 사본 1 개 (WORM: Object Lock, 불변의 스냅 샷/테이프).
0 오류: 정규 무결성 점검 (체크섬/검증/복원 테스트).
- 중요한 백업이있는 객체에 대해 버전을 지정하고 Object Lock (준수/거버넌스) 을 사용하십시오.
- NAS/블록의 경우-마감일까지 삭제를 유지하고 금지하는 불변의 스냅 샷.
백업 및 일정의 유형
전체-전체 사본.
증분-이전 백업에서만 변경됩니다.
차이-마지막 완료 이후 변경.
GFS 계획 (Grandfather-Father-Son) 을 통해 영원히 증분: 일일 증분, 주간 및 월별 "합성 전체".
- Prod DB: 매일 풀 (또는 합성 풀), 5-15 분마다 증분/로그 (PITR).
- 파일 서버: 매주 전체, 매일 증분, 월간 아카이브.
- 객체: 수명주기 + 버전; 콜드-스토리지 클래스/테이프를 보관합니다.
응용 프로그램 및 데이터베이스: PITR 관행
PostgreSQL
WAL 보관 및 기본 백업 사용; '복원 _ 명령' 을 통한 PITR.
도구: 'pgBackRest', 'wal-g' (객체), 'pg _ basebackup' 완료.
분할 볼륨: 데이터 및 WAL; PLP로 빠른 NVMe에 WAL을 작성하십시오.
MySQL/MariaDB
PITR 용 이진 로그, 'Percona Xtraback' (핫 백업) 을 통해 완료됩니다.
GTID 복제; DR - 비동기식 영역/클라우드.
MongoDB
PITR 옵로그; 논리적 사본에 대한 storaj + 'mongodump' 수준의 스냅 샷.
백업 전에 복제본의 일관성을 테스트하십시오.
Redis/캐시
백업으로 간주되지 않음: RDB/AOF + 오프 사이트 유지; 따뜻한 캐시 또는 진실의 근원으로 복원하십시오.
쿠 베르네 테스 및 컨테이너
etcd 클러스터-별도의 중요한 목표 (빈번한 스냅 샷, 오프 사이트).
Velero: 백업 표현/리소스 + CSI 스냅 샷/PV; S3 호환 버킷 (Object Lock 포함) 에 저장합니다.
안정적인 다운로드: 앱 일관된 스냅 샷 (사전/사후 후크), 그렇지 않으면 충돌 일관성.
버킷 수준에서 객체 아티팩트 (모델/미디어) 의 검증.
가상화 및 파일 서버
VM 스냅 샷: CBT (Changed Block Tracking), 오프 사이트 저장, 정기적으로 게스트 인식 퀴즈 (VSS for Windows) 를 사용하십시오.
파일 서버 (NAS): 스냅 샷 + 복제본 및 일반 카탈로그 복원 테스트 (파일 샘플링).
백업 보안
휴식 시간 암호화 (LUKS/ZFS/클라우드 KMS/Vault) 및 전송 중 (SL/mSL).
주요 관리: 마스터 키의 개별 역할, 이중 제어, 회전, 오프라인 스토리지.
격리: 불변의 사본을 삭제할 권한이없는 백업 소프트웨어 계정; 개별 네트워크/VLAN.
랜섬웨어 저항: 불변의 에어 갭 (테이프/격리 된 계정/랩).
감사: 백업 시스템 작업 로그, 삭제/유지 감소에 대한 알림.
창 및 대역폭 계획
백업 창 대 부하: 스로틀 링 I/O/네트워크, 중복 제거, 압축.
네트워크: 1 분마다 증가, 개별 채널/VPN, 밤에 복제 또는 QoS로 영구적으로 증가합니다.
트래픽을 줄이기 위해 블록 추적/CDC를 변경하십시
큰 기초: 병렬 스트림/스트리밍, 멀티 채널 멀티 파트 대 객체.
모니터링, 메트릭 및 SLO
기술 지표:- 백업/복제 작업 성공 (%), 지속 시간, 속도, 로그 지연 (WAL/binog/oplog).
- 백업 저장 공간, 제거 계수 및 기타 비용.
- 테스트 복구의 시간과 성공.
- 백업의 성공은 99 이상입니다. 9 %/30 일.
- RPO는 시간의 99% 이상을 충족했습니다 (통나무 지연
- 지갑의 경우 RTO (테스트 복원)
- 월간 DR 드릴: 일상적인 시나리오의 100% 가 완료되었습니다.
- 누락/실패한 백업, PITR> 임계 값 지연, 중복 제거, 공간 부족, 보존 정책 변경, 새로운 테스트 복원 부족.
DR 훈련 및 복구 점검
탁상: 역할 조정, 연락처, 통신.
기술: 샌드 박스 복구, RTO 측정, 체크섬/데이터 비교.
블랙 스타트: 베어 아이언/클린 클러스터 복구.
데이터 카탈로그: 각 시스템 클래스에 대해 사전 설명 된 복구 단계 (런북).
자동화: 주기적으로 "카나리아" 체크섬 복원 및 검증.
실제 템플릿
1) PostgreSQL (pgBackRest + WAL 아카이브 to 오브젝트)
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 (K8-버킷의 객체 + 불변성)
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 분마다 (잡지) 증가하며 매일 합성됩니다.
주간: 하나의 "풀" (합성), 8 주 동안 저장
월간: 전체, 저장 12-24 개월 (보관/테이프).
구현 체크리스트
- 정의 된 데이터 클래스, 소유자, RPO/RTO/SLO.
- 복제 (동기화/async) 및 토폴로지 (AZ/지역/클라우드) 모델이 선택되었습니다.
- 백업은 전체/증분/PITR, 일정, 디렉토리로 구성됩니다.
- 불변성 (WORM/Object Lock/불변의 스냅 샷) 및 오프 사이트/에어 갭이 포함됩니다.
- 암호화 및 KMS/Vault, 별도의 역할 및 주요 회전.
- 모니터링: 작업 성공, 로그 지연, 장소, 테스트 복원; 경고.
- 런북 복구 및 feilover; 연락처, 에스컬레이션, 통신 템플릿.
- 월간 DR 훈련 + 보고서, 계획 조정.
- 예산 및 FinOps: 저장 비용/탈출, 보관/찢어짐 프로젝트.
공통 오류
"복제본이 있습니다-백업이 필요하지 않습니다": 논리적 삭제 및 랜섬웨어가 복제본으로 남습니다.
복구 테스트가 없습니다-백업이 "이론적으로" 존재합니다
불변성 및 오프 사이트 부족은 단일 위험 지점입니다.
판매 및 백업에 대한 동일한 계정/키-타협 = 모든 것 손실.
너무 긴 백업 창 → 피크와 충돌합니다. 스로틀링과 QoS 없음.
로그 지연 제어가없는 PITR.
앱 일관된 스냅 샷-더러운 복구 가능한 볼륨을 무시하십시오.
iGaming/fintech 특정
지갑/결제 코어: RPO WORM이있는 객체에 로그 (WAL/binlog); 영역 + 비동기 영역에서 동기식.
보고/규제: 변경 불가능한 저장소, 긴 보존 (연도), 검증 가능한 무결성, 규제 기관에 데이터 발급을위한 명확한 절차.
로그/원시 이벤트/사기 방지: 저렴한 장기 스토리지 (객체) + 수명주기; 지수 및 상점-별도로.
피크 (매치/토너먼트): 피크 외부의 백업 창, 스로틀 링; 행사 기간 동안의 DR 계획; 카나리아는 주식 전에 회복합니다.
합계
데이터 보호는 3-2-1-1-0, 버전 지정 및 불변성, SLO 로서의 RPO/RTO, 정기적 인 DR 연습 및 "현장" 복구 테스트와 같은 아키텍처 분야입니다. 가동 시간 및 빠른 장애인을위한 복제와 논리적 오류 및 타협을위한 백업을 결합하십시오. 자동화, 측정, 문서-최악의 날에도 항상 작업 경로가 있습니다.