[AWS] DR 공부
전제 : Single-Region resilience 단계를 거친 후 Multi-Region DR
- AZ 장애 ≠ Region 장애
- Multi-Region의 핵심은 리전 전체가 날아가는 경우를 대비하는 것
- 그렇기 때문에 single-region resilience에 대한 설계를 할 줄 알아야한다
- 즉, Multi-AZ 구성 후 Multi-Region 구성이 되는건데 이때 runbook이나 testing이 필수
Multi-AZ Architecture
- 여러 AZ에 배치
- ELB
- Auto Scaling
- RDS Multi-AZ
Fault Isolation
- 하나의 AZ 장애가 다른 AZ로 확산되지 않게
Backup and Restore
- AWS Backup
- EBS Snapshot
- RDS Snapshot
Multi-Region DR
필수 개념
RTO (Recovery Time Objective)
- 복구 시간
- 서비스 중단으로부터 얼마나 빨리 복구할 수 있는가
RPO (Recovery Point Objective)
- 복구 시점
- 얼마나 많은 데이터를 잃었는가
DR 전략
Backup and Restore
- 데이터 백업을 다른 리전에 저장하고 장애 시 복구
- 그렇다면 기본적으로 다른 AZ에도 데이터 백업이 이루어져야 하는가
Pilot Light
- 핵심 데이터 인프라만 다른 리전 유지
- 앱 서버는 장애시 확장
Warm Standby
- 축소시킨 전체 환경을 다른 리전 상시 실행
Multi-Site Active-Active
- 양 리전에서 트래픽 처리
데이터 특성에 따라 전략 수정
CAP Theorem
멀티 리전 환경에서는 네트워크 partition 가능성
→ Partition 이란? 노드(서버)들 사이 통신 끊기는거
- Consistency
- Availability
- Partition Tolerence (네트워크 분할 허용)
에서 trade-off 발생하고 P는 어지간하면 반드시 일어남
Data Replication Pattern
Asynchronous replication
- 대부분의 cross-Region 복제는 비동기
예)
- Amazon Aurora Global Database
- Primary Region → Secondary Region
- Low latency cross-Region 복제
- Amazon DynamoDB Global Tables
- Multi-Region active-active 지원
- Amazon S3 Cross-Region Replication
Dependency Mapping
서비스 가용성
- 모든 서비스가 모든 리전에서 동일하게 제공 x
- Regional service availability 확인
External Dependency
- 3rd party api
- Identity providers
- Payment gateway
→ 서비스 가용성 확인 필요
DNS 전략
Route 53
- Failover routing
- Latency routing
- Weighted routing
- Geolocation routing
- Health check 기반 자동 전환 가능
Operation Readiness
IaC
동일한 환경을 반복적으로 배포가 가능하도록 해야함
- CloudFormation
- Terraform
Runbooks
장애 발생시 프로세스 문서화
- 감지
- 전환
- 복구
- 검증
Testing
GameDay 또는 DR drill
This post is licensed under CC BY 4.0 by the author.