학습 목표

이 도메인의 성격

SAA-C03 도메인별 출제 비중에서 복원력 있는 아키텍처 설계는 26%로 두 번째입니다. 과제 진술이 2개뿐이므로 진술 하나당 비중이 네 도메인 중 가장 큽니다. 출제 범위가 좁은 대신 같은 판단을 여러 각도로 묻습니다
도메인 2의 과제 진술 두 개와 중심 질문
과제 진술 중심 질문 주 담당 챕터
2.1 확장 가능하고 느슨하게 결합된 아키텍처 설계 구성 요소가 서로를 기다리는가. 부하가 늘 때 무엇이 먼저 무너지는가 12장 서버리스와 통합 · 7장 ELB·ASG
2.2 고가용성 및 내결함성 아키텍처 설계 무엇 하나가 죽어도 서비스가 유지되는가. 복구까지 얼마나 걸리고 얼마나 잃는가 10장 RDS · 18장 DR

두 진술은 실패의 방향이 다릅니다. 2.1은 부하로 인한 실패를, 2.2는 구성 요소의 고장으로 인한 실패를 다룹니다. 문항을 읽을 때 "트래픽이 늘었다"인지 "무언가 죽었다"인지 먼저 확인하면 후보 서비스군이 절반으로 줄어듭니다.

과제 진술 2.1 · 확장 가능하고 느슨하게 결합된 아키텍처 설계

이 진술의 문항은 대체로 "트래픽이 급증하면 무엇이 먼저 무너지는가"와 "어떻게 끊어 놓을 것인가"를 묻습니다. "서버를 더 큰 것으로 바꾼다"는 선택지는 이 진술에서 거의 언제나 밀립니다.

동기 호출을 끊는다

구성 요소가 서로를 직접 호출하면 느린 쪽이 빠른 쪽을 멈춰 세웁니다. 처리 계층이 밀리면 웹 계층의 요청이 대기하다 타임아웃되고, 그 사이에 들어온 요청은 유실됩니다. 큐나 이벤트 버스를 사이에 두면 웹 계층은 접수만 하고 즉시 응답하며, 급증분은 큐에 쌓입니다.

결합을 끊는 세 가지 도구와 선택 기준
도구 전달 모델 이것을 고르는 신호
Amazon SQS 한 메시지를 한 소비자가 가져가 처리 "작업을 하나씩 처리한다", "급증분을 완충한다", "실패를 재시도한다"
Amazon SNS 한 메시지를 모든 구독자에게 팬아웃 "하나의 사건을 여러 시스템이 동시에 받아야 한다"
Amazon EventBridge 이벤트 내용에 따라 규칙으로 라우팅 "이벤트 종류에 따라 다른 대상으로 보낸다", "필터링과 스키마가 필요하다", "AWS 서비스의 이벤트에 반응한다"

셋을 조합하는 형태도 자주 나옵니다. SNS 주제에 여러 SQS 큐를 구독시키면 팬아웃과 완충을 동시에 얻습니다. 이 조합이 정답인 문항이 반복해서 출제됩니다.

SQS 표준 큐와 FIFO 큐

Amazon SQS 표준 큐와 FIFO 큐 비교
항목 표준 큐 FIFO 큐
순서 최선 노력 — 보장되지 않음 메시지 그룹 안에서 엄격한 순서
중복 같은 메시지가 두 번 전달될 수 있음 중복 제거
처리량 거의 무제한 배치 없이 초당 300개, 배치 사용 시 초당 3,000개. 고처리량 모드로 더 확장
필수 파라미터 없음 MessageGroupId가 없으면 전송이 실패
고르는 신호 처리량이 우선, 순서가 상관없음 "순서가 보장되어야 한다", "중복 처리를 막아야 한다"

가시성 제한 시간과 배달 못 한 편지 큐

소비자가 메시지를 받으면 그 메시지는 일정 시간 동안 다른 소비자에게 보이지 않습니다. 이 시간이 가시성 제한 시간(visibility timeout)이며 기본값은 30초, 최대 12시간입니다. 처리 시간보다 짧게 잡으면 같은 메시지를 두 소비자가 처리하게 됩니다. "메시지가 중복 처리된다"는 시나리오의 첫 번째 확인 대상입니다.

반복해서 실패하는 메시지는 큐를 계속 점유합니다. 배달 못 한 편지 큐(DLQ)를 지정하고 최대 수신 횟수를 설정하면 그 횟수를 넘긴 메시지가 DLQ로 옮겨져 나머지 처리를 막지 않습니다.

Amazon SQS 큐 속성의 범위와 기본값
속성 범위 기본값
가시성 제한 시간 0초 – 12시간 30초
메시지 보존 기간 60초 – 14일 4일
지연 시간(지연 큐) 0초 – 900초 0초
최대 메시지 크기 1 KiB – 1 MiB 1 MiB

확장 설계 — 수평이 기본입니다

탄력성이 요구되면 답은 수평 확장입니다. 인스턴스 타입을 키우는 수직 확장은 상한이 있고, 바꾸는 동안 중단이 필요하며, 고장 났을 때 대체할 것이 없습니다. 수평 확장의 전제는 상태 비저장 설계입니다 — 세션이나 업로드 파일을 인스턴스 로컬 디스크에 두면 인스턴스를 늘리고 줄일 수 없습니다.

Auto Scaling 정책 유형과 선택 기준
정책 동작 고르는 신호
대상 추적 지표를 목표값에 맞춰 자동으로 조절합니다 "평균 CPU를 일정하게 유지" 같은 목표가 주어질 때. 가장 먼저 고려합니다
단계별 경보의 초과 폭에 따라 단계별로 다른 수를 조절합니다 급격한 변동에 강도를 다르게 대응해야 할 때
단순 경보 하나에 정해진 만큼 조절하고 대기합니다 단순한 규칙으로 충분할 때
예약 정해진 시각에 용량을 바꿉니다 "매일 오전 9시에 트래픽이 몰린다"처럼 시점이 예측 가능할 때

스케일아웃이 트래픽 상승을 따라가지 못하는 시나리오에서는 예약 스케일링으로 미리 늘리거나 큐로 완충하는 것이 정답 방향입니다. "스케일링 정책을 더 공격적으로 바꾼다"만으로는 인스턴스가 준비되는 시간을 없앨 수 없습니다.

과제 진술 2.2 · 고가용성 및 내결함성 아키텍처 설계

이 진술의 출발점은 하나입니다. 가용성은 가용 영역의 개수에서 나옵니다. 같은 가용 영역에 인스턴스를 몇 대 두든 그 가용 영역이 무너지면 전부 사라집니다. 선택지를 볼 때 인스턴스 대수가 아니라 가용 영역이 몇 개인지부터 봅니다.

Multi-AZ와 읽기 전용 복제본 SAA 빈출

시험이 가장 집요하게 노리는 혼동입니다. Multi-AZ는 가용성, 읽기 전용 복제본은 읽기 확장입니다. 요구가 둘 다면 둘 다 구성하는 선택지가 정답입니다.

Amazon RDS Multi-AZ 배포와 읽기 전용 복제본 비교
항목 Multi-AZ 배포 읽기 전용 복제본
복제 방식 동기(synchronous) 비동기(asynchronous)
목적 고가용성과 재해 복구 읽기 성능 확장
엔드포인트 동일 엔드포인트 유지. 장애 조치 시 DNS가 대기 인스턴스를 가리킵니다 별도의 읽기 엔드포인트
읽기 처리 대기 인스턴스는 읽기 트래픽을 받지 않습니다 읽기 트래픽을 처리합니다
배치 범위 같은 리전의 다른 가용 영역 같은 리전 또는 다른 리전
애플리케이션 수정 필요 없음 읽기를 읽기 엔드포인트로 보내도록 수정 필요

Amazon Aurora는 구조가 다릅니다. 스토리지 계층이 여러 가용 영역에 걸쳐 있고, 복제본이 읽기 처리와 장애 조치 대상의 역할을 함께 합니다. 리전 단위 요구에는 Aurora 글로벌 데이터베이스가 후보에 들어옵니다. 자세한 구조는 10장 RDS와 관계형 데이터베이스에서 다룹니다.

단일 장애점을 지운다

흔한 단일 장애점과 제거 방법
단일 장애점 증상 제거 방법
단일 가용 영역의 인스턴스 묶음 가용 영역 장애 시 전면 중단 여러 가용 영역에 걸친 Auto Scaling 그룹과 로드 밸런서
단일 NAT 게이트웨이 해당 가용 영역이 죽으면 모든 프라이빗 서브넷의 아웃바운드가 끊깁니다 가용 영역마다 NAT 게이트웨이를 두고 라우팅 테이블을 분리
단일 데이터베이스 인스턴스 인스턴스 장애가 곧 서비스 중단 Multi-AZ 배포로 자동 장애 조치
인스턴스 로컬에 저장된 상태 인스턴스를 교체하면 세션과 파일이 사라집니다 세션은 외부 저장소로, 공유 파일은 Amazon EFS나 Amazon S3로
단일 리전 리전 규모 사고에 대응 수단이 없습니다 DR 전략 선택(아래) — 요구 RTO·RPO에 맞춰 결정

헬스체크와 장애 조치

Elastic Load Balancing은 대상의 헬스체크가 실패하면 그 대상으로 요청을 보내지 않습니다. Auto Scaling 그룹이 로드 밸런서의 헬스체크를 쓰도록 구성하면, 프로세스는 살아 있지만 응답하지 않는 인스턴스까지 교체 대상이 됩니다. EC2 상태 검사만 쓰면 이 경우를 놓칩니다.

리전 단위 장애 조치는 Amazon Route 53의 장애 조치 라우팅과 상태 확인으로 만듭니다. 기본 레코드의 상태 확인이 실패하면 보조 레코드로 응답이 바뀝니다. 로드 밸런서 종류 선택은 계층과 프로토콜이 기준입니다 — HTTP 라우팅은 Application Load Balancer, TCP·UDP와 고정 IP가 필요하면 Network Load Balancer, 서드파티 어플라이언스 삽입은 Gateway Load Balancer입니다.

DR 4전략과 RTO · RPO

RTO(복구 목표 시간)는 얼마나 빨리 복구해야 하는가, RPO(복구 목표 시점)는 얼마만큼의 데이터 손실을 허용하는가입니다. 네 전략은 이 두 값과 상시 가동 비용을 맞바꾼 결과입니다. 문제문이 준 RTO·RPO 요구를 만족하는 가장 단순한 전략이 정답입니다.

DR 4전략의 구성과 교환 관계 — 값이 아니라 상대 순서입니다
전략 평소에 무엇이 켜져 있는가 RTO · RPO 상시 비용
백업 및 복원 백업만 다른 리전에 보관합니다. 인프라는 없습니다 가장 깁니다 가장 낮음
파일럿 라이트 데이터 복제는 계속되고, 핵심 구성 요소만 최소 규모로 켜 둡니다 백업·복원보다 짧습니다 낮음
웜 스탠바이 전체 스택이 축소된 규모로 항상 떠 있습니다 파일럿 라이트보다 짧습니다 높음
다중 사이트 액티브-액티브 양쪽이 모두 운영 트래픽을 처리합니다 가장 짧습니다 가장 높음

표에 숫자를 넣지 않은 이유가 있습니다. 각 전략의 RTO·RPO는 구성과 데이터 크기에 따라 달라지므로 고정된 값이 없습니다. 시험도 "파일럿 라이트의 RTO는 몇 분인가"를 묻지 않고, 주어진 요구를 만족하는 전략이 무엇인가를 묻습니다.

데이터 복제 수단도 함께 나옵니다. 객체는 S3 교차 리전 복제(CRR)로, 규정 준수나 로그 집계처럼 같은 리전 안의 복제가 필요하면 동일 리전 복제(SRR)로, 여러 서비스의 백업을 한곳에서 정책으로 관리하려면 AWS Backup으로 처리합니다.

판단 지점 점검표 18개

각 행의 기준을 한 문장으로 말할 수 없다면 담당 챕터로 돌아갑니다. 서비스 이름을 아는 것과 판단하는 것은 다릅니다.

도메인 2 복원력 있는 아키텍처 설계의 판단 지점과 담당 챕터
번호 판단 지점 기준 담당 챕터
1 Multi-AZ와 읽기 전용 복제본 가용성 요구인가 읽기 확장 요구인가. 둘 다면 둘 다 구성합니다 10장
2 Multi-AZ 배포의 동작 동기 복제, 자동 장애 조치, 대기 인스턴스로는 읽기 불가 10장
3 Aurora의 복제 구조와 글로벌 데이터베이스 복제본이 읽기와 장애 조치를 겸하고, 리전 단위 요구에는 글로벌 데이터베이스 10장
4 느슨한 결합 — 동기 호출을 끊는 판단 느린 쪽이 빠른 쪽을 멈춰 세우는 구조인지 확인합니다 12장
5 SQS 표준과 FIFO 순서와 중복 제거 요구가 있으면 FIFO, 처리량이 우선이면 표준 12장
6 가시성 제한 시간과 DLQ 중복 처리는 가시성 시간, 반복 실패는 DLQ로 격리 12장
7 SNS 팬아웃과 EventBridge 라우팅 모두에게 같은 메시지면 SNS, 내용으로 대상을 고르면 EventBridge 12장
8 트래픽 급증을 큐로 완충 스케일아웃이 준비되는 동안 요청을 잃지 않는 것이 목적입니다 12장
9 ASG의 다중 가용 영역 배치와 상태 비저장 설계 가용 영역을 여러 개 지정하고, 상태를 인스턴스 밖으로 뺍니다 7장
10 ASG 스케일링 정책 선택 목표값이 있으면 대상 추적, 시점을 알면 예약 7장
11 ELB 헬스체크와 연결 드레이닝 ASG가 ELB 헬스체크를 쓰게 해야 응답 불능 인스턴스가 교체됩니다 7장
12 DR 4전략과 RTO · RPO 요구를 만족하는 것 중 가장 단순하고 저렴한 전략 18장
13 RTO · RPO가 주어졌을 때의 전략 선택 복구 시간과 상시 비용의 교환 관계로 판단합니다 18장
14 S3 교차 리전 복제와 동일 리전 복제 리전 장애 대비는 CRR, 같은 리전 안의 규정·집계 요구는 SRR 8장 · 18장
15 백업 중앙화 — AWS Backup 여러 서비스의 백업을 정책 하나로 관리해야 할 때 18장
16 단일 장애점 제거 NAT 게이트웨이와 인스턴스, 엔드포인트를 가용 영역마다 둡니다 3장 · 7장
17 Route 53 장애 조치 라우팅과 상태 확인 리전 장애에 DNS 수준으로 대응합니다 14장
18 Lambda 동시성 · 재시도 · DLQ 예약된 동시성으로 몫을 확보하고 실패는 DLQ로 보냅니다 12장

이 도메인의 함정

도메인 미니 퀴즈

이 도메인의 판단 지점을 확인하는 10문항입니다. 키보드만으로 완주할 수 있습니다 — 숫자키 1~5로 선택지를 고르고 Enter로 제출합니다.

이어서 볼 곳

공식 문서 출처