기준: DOP-C02 시험 가이드오류 제보
Week 13은 "장애가 나도 살아남는 시스템을 어떻게 설계하고, 그것이 정말 작동하는지 어떻게 검증하는가"를 다뤘다. 이 한 주를 관통하는 단 하나의 통찰이 있다 — 가용성은 "장애가 안 나게 막는 것"이 아니라 "장애가 날 것을 전제로, 정족수·복제·페일오버로 견디게 설계하고, 그 견딤을 실험으로 검증하는 것"이다. 단일 AZ에서 다중 AZ로, 단일 리전에서 다중 리전으로, 백업에서 Active-Active로, 그리고 "잘 되겠지"라는 믿음에서 FIS 카오스 실험으로 — 한 주의 흐름은 점점 더 강한 장애를 가정하고 점점 더 엄밀하게 검증하는 방향이었다.
오늘은 네 날의 핵심을 다시 엮고, DOP 시험에서 실제로 나오는 형태의 시나리오 문제로 종합 점검한다. 시험의 함정은 거의 항상 "비슷해 보이는 두 선택지 중 트레이드오프의 미묘한 차이"에 있다 — 동기냐 비동기냐, 단일 리더냐 멀티 마스터냐, RTO를 위해 평소에 켜두느냐 마느냐, Compliance Mode냐 Governance Mode냐. 이 경계들을 다시 또렷이 한다.
복제는 동기/비동기 사이의 RPO-지연 트레이드오프이고, 이는 CAP/PACELC 좌표 위에 놓인다. RDS Multi-AZ는 블록 레벨 물리 동기 복제라 Standby가 그림자 디스크처럼 동작해 읽기를 못 받지만, Read Replica는 논리적 비동기 복제라 자기 쿼리 엔진으로 읽기를 받는다 — 이 물리/논리 차이가 "왜 한쪽은 read 불가, 한쪽은 가능"의 답이다. Aurora는 복제를 스토리지로 내려 6-copy/3-AZ 쿼럼(4/6 write, 3/6 read, AZ+1 장애 모델)과 "로그가 곧 DB" 설계로 전통 DB를 앞선다. RTO는 "승격 후보가 떠 있고 데이터 복사가 불필요할수록 짧다"가 원리이며, RDS Proxy가 커넥션 풀링으로 페일오버를 클라이언트로부터 숨긴다.
멀티 리전은 빛의 속도 때문에 비동기 복제를 받아들여야 하고, 그 충돌·불일치를 다루는 게 본질이다. Route 53은 DNS 기반 GSLB(7종 정책 + 정족수 헬스 체크)지만 DNS 캐시 TTL이라는 지연 한계가 있어, 즉각 페일오버는 anycast 고정 IP의 Global Accelerator가 맡는다. 데이터 복제는 단일 리더(Aurora Global, 충돌 없음)와 멀티 마스터(DynamoDB Global Tables, LWW)의 트레이드오프이며, LWW는 clock skew로 silent lost update 위험을 품는다. KMS Multi-Region Key가 같은 키 자료를 리전 간 공유해 복제 암호문의 이식성을 주고, Route 53 ARC가 컨트롤/데이터 플레인 분리로 안전한 DR 토글을 제공한다.
DR은 "얼마나 빨리"가 아니라 BIA로 RTO/RPO를 정하고 비용과 저울질하는 경제 문제(ISO 22301)다. 4 전략은 "평소에 얼마나 켜두느냐"의 스펙트럼 — Backup & Restore(아무것도 안 켬, 가장 싸고 느리나 IaC면 단축) → Pilot Light(데이터만, 앱 꺼둠, 경로 미검증) → Warm Standby(축소판 상시, 경로 검증됨) → Active-Active(풀 용량 둘 다, RTO 0이나 비싸고 "절반 죽어도 전부 받는" 용량 계획 필요). AWS Backup이 태그 기반 정책으로 통합하고, Vault Lock Compliance Mode가 WORM 불변 백업으로 랜섬웨어를 막는다.
검증 안 된 복구는 작동하지 않는다. 카오스 엔지니어링(Netflix Chaos Monkey 기원)은 과학적 방법(정상 상태→가설→장애 주입→검증)을 신뢰성에 적용한 것이다. FIS는 Targets(폭발 반경 다이얼: ALL/COUNT/PERCENT)·Actions·Stop Conditions(안전벨트)로 카오스를 관리형으로 구현하고, Resilience Hub는 RTO/RPO 목표 대비 실측 갭을 계량화한다. EventBridge Scheduler + FIS로 정기 자동화하고, Game Day(사람·일회성)와 Chaos(시스템·정기)는 보완 관계다.
| 헷갈리는 쌍 | 결정적 차이 |
|---|---|
| RDS Multi-AZ Standby vs Read Replica | 물리 동기(read 불가) vs 논리 비동기(read 가능) |
| Aurora vs Aurora Global | 단일 리전 6-copy(30초) vs 멀티 리전 비동기(promote 수 분 단위) |
| Aurora Global vs DDB Global Tables | 단일 리더(충돌 없음) vs 멀티 마스터(LWW) |
| Route 53 Failover vs Global Accelerator | DNS(캐시 TTL 지연) vs anycast IP(즉각) |
| Pilot Light vs Warm Standby | 앱 꺼둠(미검증) vs 축소판 상시(검증됨) |
| Vault Lock Governance vs Compliance | 권한자 우회 가능 vs root도 불가(WORM) |
| Backtrack vs PITR | in-place 되감기(MySQL,72h) vs 새 클러스터 복원 |
| Game Day vs Chaos | 사람·일회성 vs 시스템·정기 자동 |
선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
글로벌 게임 서비스가 UDP 트래픽을 쓰고, 한 리전이 죽으면 클라이언트의 DNS 캐시와 무관하게 즉각 다른 리전으로 페일오버해야 한다. 동시에 클라이언트는 고정 IP 2개만 알면 되도록 하려 한다. 가장 적합한 것은?
문제 2
결제 시스템이 RTO 0·RPO 0에 가까워야 하고 비용은 제약이 거의 없다. 두 리전에서 동시에 쓰기를 받아야 한다. 데이터 계층 구성과 반드시 검증할 위험은?
문제 3
전통적 RDS Multi-AZ를 쓰는 시스템에서 읽기 부하가 커졌다. Standby로 읽기를 분산하려 했으나 불가능했다. 이유와 올바른 해법은?
문제 4
Aurora MySQL에서 운영자가 실수로 대량 UPDATE를 실행했다. 5분 전 상태로 클러스터 전체를 가장 빠르게 되돌리려 한다. 또한 별도 케이스로 "30일 전 특정 테이블만" 복구해야 할 때의 차이는?
문제 5
Lambda 기반 서버리스 앱이 트래픽 급증 시 RDS의 "too many connections"로 실패하고, DB 페일오버 시 커넥션이 일제히 끊겨 connection storm이 난다. 한 번에 해결하는 표준은?
문제 6
금융 규제로 백업을 보존 기간 내 절대 삭제·변조 불가하게 만들어 랜섬웨어가 백업까지 지우는 것을 막아야 한다. root 사용자조차 예외가 없어야 한다. 올바른 구성은?
문제 7
Tier 3 비중요 워크로드의 DR 비용을 최소화해야 한다. 전체 인프라는 Terraform으로 코드화돼 있고, RTO는 한두 시간까지 허용된다. 가장 적합한 전략과 그 이유는?
문제 8
Pilot Light DR을 자동 발동하는 절차를 코드화하려 한다. 발동 시 수행할 단계와 도구로 올바른 것은?
문제 9
EC2 운영 인스턴스 중 무작위 30%에 5분간 CPU 부하를 주입해 Auto Scaling 자가 치유를 검증하되, 실험이 진짜 장애로 번지면 즉시 중단되게 하려 한다. FIS 구성은?
문제 10
코드와 인프라가 자주 바뀌는 환경에서, 복원력이 시간이 지나며 조용히 깨지는 것(regression)을 막으려 한다. 가장 적합한 운영 패턴은?
문제 11
한 워크로드의 실제 복원력이 설정한 RTO/RPO 목표(AZ 장애 RTO 600초 등)를 충족하는지 측정하고, 미달 항목에 대한 개선안과 그 비용 영향을 자동으로 받고 싶다. 가장 적합한 서비스는?
문제 12
글로벌 사용자에게 평소엔 지연 최저 리전으로 서비스하되, 한 리전이 죽으면 자동으로 건강한 리전만 응답하고, 데이터는 리전 간 비동기 복제로 유지하려 한다(관계형 DB, 쓰기는 한 곳). 올바른 조합은?
이 한 주의 결론은 하나다 — 가용성은 장애를 막는 게 아니라, 장애를 전제로 견디게 설계하고 그 견딤을 실험으로 검증하는 것이다. Day 1에서 복제·쿼럼(Aurora 6-copy/3-AZ, CAP/PACELC)으로 단일 리전 HA를 세웠고, Day 2에서 비동기 글로벌 복제(Aurora Global 단일 리더 vs DDB Global Tables 멀티 마스터 LWW)와 DNS/anycast 라우팅, KMS MRK 암호화 경계로 멀티 리전으로 확장했다. Day 3에서 BIA 기반 RTO/RPO 경제학으로 DR 4 전략("평소 얼마나 켜두느냐"의 스펙트럼)을 정하고 Vault Lock WORM으로 백업을 불변화했다. Day 4에서 Netflix發 카오스 엔지니어링을 FIS(폭발 반경 + Stop Condition)와 Resilience Hub(계량화)로 제품화해 "검증 안 된 복구는 작동 안 한다"를 정면으로 풀었다. 시험에서는 동기/비동기, 단일 리더/멀티 마스터, Pilot Light/Warm Standby, Governance/Compliance Mode, Game Day/Chaos 같은 경계의 미묘한 차이를 읽어내는 것이 관건이다.
보안 자동화 — GuardDuty, Security Hub, Config, Audit Manager