Multi-AZ 아키텍처 — SAA-C03 시나리오 패턴 13편

2026-05-01AWS SAA-C03 스터디

AWS SAA-C03 시험의 70%는 시나리오 기반 아키텍처 문제예요. 글로벌 인프라부터 단일 EC2가 고가용성 웹앱으로 진화하는 8단계, 3계층 쇼핑몰의 세션 관리, EFS 공유 스토리지, Elastic Beanstalk, 단일 EC2 HA 3패턴, 이벤트 드리븐(SQS/SNS/EventBridge·Fan-out), 캐싱 4계층, 네트워크 보안, HPC(EFA·FSx Lustre)까지 — 회사 사옥 진화 비유로 흐름 있게 풀어쓴 13편.

📚 AWS SAA-C03 스터디 노트 · 13편 / 14편 — SAA-C03 시나리오 패턴 13편

이 글은 AWS SAA-C03 스터디 노트 시리즈 13편입니다. 시리즈 거의 끝자락이고, 시험에서 가장 결정적인 단원이기도 해요. 13편의 키워드 한 줄로 묶으면 — Multi-AZ입니다. 시나리오 문제 거의 절반이 "Multi-AZ로 어떻게 묶어야 하나"를 묻거든요. 1편부터 12편까지 본 EC2·S3·VPC·RDS 같은 개별 서비스는 각자 단원에서는 분명했는데, 시험 문제는 항상 그것들을 Multi-AZ 단위로 두세 개씩 묶어서 던지거든요. "Multi-AZ 웹 앱에서 세션을 어디 둘까" 같은 문제는 EC2도 알아야 하고, ELB도 알아야 하고, ElastiCache·DynamoDB·세션 쿠키 개념도 알아야 풀립니다.

그래서 이 단원이 마지막 점수의 분기점이에요. SAA의 약 70%가 여러 서비스를 Multi-AZ로 결합한 시나리오 기반 아키텍처 문제라서, 12편까지 쌓아 둔 개별 지식을 솔루션 단위로 다시 묶는 작업을 안 하면 시험장에서 헤맵니다.

이번 글은 노트 한 권을 큰 흐름으로 풀어 갑니다. 회사 비유를 자주 쓸 거예요 — 단일 EC2 한 대로 시작한 회사가 본사·지사 Multi-AZ 멀티사이트로 성장하는 과정처럼 풀면 머릿속에 잘 들어옵니다. 한 단원 한 단원이 결국 "이런 키워드가 보이면 이런 Multi-AZ 조합이 답"이라는 매칭 자료가 돼요. AWS 공식 Well-Architected 신뢰성 기둥 문서도 결국 같은 결론입니다 — 가용성은 Multi-AZ에서 시작합니다.

먼저 한 번 더 — AWS 글로벌 인프라

시험 직전에도 한 번 더 짚어야 할 가장 기초 — 리전·AZ·엣지 로케이션 셋입니다. 1편에서도 다뤘지만 시험 직전 머릿속이 흐릿해질 때 다시 펼쳐 볼 수 있게 한 번 더 박아 둡니다.

구성 요소설명
리전(Region)데이터 센터 클러스터, 대부분의 서비스가 리전 종속
가용 영역(AZ)리전 내 격리된 데이터 센터 묶음 (3~6개), 독립 전원·네트워킹
엣지 로케이션전 세계 400+ 지점, 최종 사용자에게 최저 지연으로 콘텐츠 전달

회사 비유로 풀면 — 리전은 한 도시 안에 여러 사옥이 모인 캠퍼스, AZ는 그 캠퍼스 안에 떨어져 있는 별개 건물들, 엣지 로케이션은 손님 가까이 둔 임시 매장이에요. 한 건물(AZ)에 정전이 나도 다른 건물은 멀쩡합니다 — 이게 바로 결함 내성(Fault Tolerance) 설계.

리전을 고를 때 따져야 하는 4요인을 우선순위로 외워 두면 좋아요 — Compliance(법률) → Latency(지연) → Availability(서비스 제공) → Pricing(요금). GDPR 같은 규정이 가장 우선이고 가격이 가장 마지막입니다. 가격이 1순위로 등장하는 보기는 거의 함정이에요.

글로벌 vs 리전 서비스 — 콘솔에서 'Global' 표시가 붙는 건 딱 4개입니다. IAM·Route 53·CloudFront·WAF. 나머지는 거의 다 리전 종속이에요. 1편 IAM 단원에서 외운 그대로입니다.

AWS와 상호작용하는 통로는 셋 — Console(웹 UI), CLI(터미널), SDK(앱 코드 안에서). 시험에서 어느 통로로 자동화할지 묻는 문제는 보통 "스크립트로 자동화"가 보이면 CLI, "앱 코드 안"이면 SDK입니다.

클래식 패턴 1 — 시간 표시 웹 서비스 예시 (단일 EC2가 Multi-AZ로 성장하는 8단계)

처음 사옥 1개에서 본사·지사 멀티사이트로 성장하는 과정과 똑같습니다. 단일 EC2 한 대가 어떻게 고가용성·확장성 있는 시스템으로 진화하는지 보여 주는 정석 시나리오예요. SAA의 거의 모든 웹앱 문제의 베이스가 되니 한 번 흐름으로 잡고 갑니다.

단계구성해결한 문제 / 새 문제
1. 단일 EC2 (T2 micro)퍼블릭 IP + Elastic IP재시작 시 IP 변경 방지용 EIP 필요
2. 수직 확장 (Scale-up)T2 → M5 large인스턴스 중지 → 변경 → 다운타임 발생
3. 수평 확장 (수동)M5 여러 대 + EIP 각각EIP는 리전당 계정별 기본 5개 제한, 사용자가 여러 IP 인지해야
4. Route 53 도입A 레코드로 여러 EC2 IP 반환TTL 1시간 캐싱 → EC2 장애 시 1시간 접속 불가
5. ELB 도입ALB + Health Check + Alias 레코드EC2 프라이빗 전환, SG 참조로 보안 강화
6. ASG 도입ELB + Auto Scaling Group수동 추가/제거 불필요
7. Multi-AZELB + ASG를 여러 AZ에 배포단일 AZ 장애에도 생존 → 고가용성 확보
8. 비용 최적화기본 용량(2대)은 RI, 변동은 On-Demand/Spot비용 대폭 절감

회사 비유로 한 번 풀면 — 1단계는 동네에 자그마한 사옥 하나, 2단계는 그 사옥을 더 큰 건물로 이사 가는 것(이사 동안 영업 중단), 3단계는 같은 동네에 사옥 여러 개를 두는 것(손님이 어느 사옥으로 갈지 헷갈림), 4단계는 안내 데스크(Route 53)를 두지만 안내가 1시간씩 묵은 정보, 5단계는 회전문(ELB)으로 자동 분배, 6단계는 직원 수가 자동으로 늘었다 줄었다(ASG), 7단계는 여러 동네에 사옥 분산(Multi-AZ), 8단계는 상시 직원만 정규직(RI), 임시 직원은 일당(Spot)으로 비용 최적화. 이렇게 풀면 시험장에서 단계 순서가 헷갈릴 일이 없어요.

여기서 시험 함정이 하나 있어요. AWS 리소스(ELB·CloudFront 등)의 동적 IP를 Route 53에서 가리킬 때 — 보기에 A 레코드가 나오면 거의 100% 오답입니다. 정답은 무조건 Alias 레코드예요. AWS 리소스 IP는 자주 바뀌니까 Alias가 자동으로 따라가 줍니다.

핵심 4가지를 정리하면:

  • AWS 리소스(ELB·CloudFront)의 동적 IP를 Route 53에서 가리킬 때는 반드시 Alias 레코드 (A 레코드 X)
  • EC2가 ELB를 통해서만 트래픽을 받게 하려면 EC2 SG 인바운드 소스를 ELB의 SG ID로 지정 (IP 대신)
  • 고가용성 = Multi-AZ (단일 장애점 제거)
  • 상시 가동 기본 용량 → Reserved Instance, 변동 트래픽 → On-Demand/Spot 혼합

클래식 패턴 2 — 온라인 쇼핑몰 예시 (Multi-AZ 3계층 쇼핑몰의 세션 관리)

웹앱이 무상태(Stateless)일 때는 위 패턴 1로 끝나는데, 쇼핑 카트처럼 상태(State)가 생기면 이야기가 한층 복잡해집니다. 손님이 첫 번째 사옥에서 카트에 옷을 담았는데 다음 클릭에서 두 번째 사옥으로 갔더니 카트가 비어 있다 — 이건 안 되니까요.

세션 상태를 어디 둘지에 길은 셋이에요.

방법단점
ELB 스티키 세션그 EC2 장애 시 세션 데이터 소실
웹 쿠키 (클라이언트)HTTP 무거워짐, 변조 가능, 4KB 제한
ElastiCache / DynamoDBAWS 권장 베스트 프랙티스

답은 마지막입니다. 쿠키에는 세션 ID만 두고, 실제 카트 데이터는 ElastiCache 또는 DynamoDB에 저장하는 거예요. 회사 비유로 — 손님 손에 든 종이는 회원증 번호만 적힌 카드, 실제 쇼핑 정보는 공용 사물함(ElastiCache) 에 보관해 두는 식. 어떤 사옥에 가도 같은 사물함을 보니까 카트가 살아 있어요.

DB 계층은 두 갈래로 확장합니다.

  • 장기 데이터 저장 — RDS (사용자 정보·주소 같은 영구 데이터)
  • 읽기 성능 확장 — RDS Read Replicas(최대 15개)로 읽기 트래픽 분산, ElastiCache Lazy Loading으로 자주 찾는 데이터 캐싱

고가용성을 전 계층에 적용하려면:

  • Route 53 → 기본적으로 HA
  • ELB + ASG → Multi-AZ 배포
  • RDS Multi-AZ → 장애 시 Standby로 자동 페일오버
  • ElastiCache Multi-AZ → 활성화 권장

보안 그룹 계층은 IP가 아닌 SG 참조로 묶는 게 핵심이에요.

인터넷(HTTPS) → ELB SG → EC2 SG (ELB SG에서 오는 트래픽 허용)
                         → RDS SG (EC2 SG에서 오는 트래픽 허용)
                         → ElastiCache SG (EC2 SG에서 오는 트래픽 허용)

이렇게 하면 Auto Scaling으로 EC2 IP가 매번 바뀌어도 SG ID 자체는 그대로니까 규칙을 다시 짤 필요가 없어요. 이게 SG 참조 패턴이 시험에 매번 나오는 이유입니다.

시험 함정

RDS Multi-AZ = 고가용성/DR (동기 복제, 자동 페일오버), RDS Read Replica = 읽기 성능 확장 (비동기 복제). 이 둘은 목적이 완전히 다릅니다. 시험에 거의 매번 헷갈리게 출제되니 절대 섞지 마세요. "장애 대비"가 키워드면 Multi-AZ, "읽기 부하 분산"이면 Read Replica.

클래식 패턴 3 — 블로그 호스팅 예시 (Multi-AZ 공유 스토리지 패턴)

여러 EC2에서 같이 돌아가는 WordPress가 사용자 업로드 이미지를 공유해야 하는 상황입니다. 핵심 비교는 EBS vs EFS.

항목EBSEFS
연결 방식한 시점에 1 EC2만 (AZ 종속)여러 AZ 수백 EC2 동시 공유
접근 방식블록 스토리지NFS (네트워크 파일 시스템)
AZ 분산단일 AZ 종속각 AZ에 ENI로 접근
비용저렴EBS보다 비쌈
사용 시점단일 인스턴스, OS 부팅다중 AZ 분산 앱 공유 스토리지

회사 비유로 — EBS는 개인 USB 드라이브(한 사람만 꽂아 쓸 수 있음), EFS는 공용 파일 서버(여러 사람이 동시에 같은 폴더를 봄). WordPress 이미지 같은 건 공용 파일 서버여야 모든 EC2가 같은 이미지를 볼 수 있어요.

문제 — A 인스턴스 EBS에 이미지를 업로드했는데 B 인스턴스에서 접속하면 이미지가 안 보이는 데이터 불일치. 해결 — EFS로 모두가 같은 파일 시스템을 보게 만듦.

DB는 RDS MySQL과 Aurora MySQL 사이에서 한 번 더 고민이 필요해요.

항목RDS MySQLAurora MySQL
운영 오버헤드상대적으로 높음적음
Read Replicas최대 5개최대 15개
Multi-AZ지원기본 지원
글로벌 DB미지원Aurora Global Database
권장기본 사용글로벌·대규모

시험에서 "여러 리전을 가로지르는 글로벌 서비스 + 관계형 DB" 시나리오가 나오면 답은 거의 항상 Aurora Global Database 입니다. RDS는 글로벌이 안 돼요.

클래식 패턴 4 — 빠른 인스턴스화 전략

EC2를 처음부터 설치·구성하지 않고 가장 빠르게 띄우는 방법은 시험 단골이에요. Auto Scaling 시 부팅 속도가 곧 서비스 응답 속도라서요.

전략개념장점
Golden AMIOS·앱·종속성이 모두 사전 설치된 커스텀 AMI부팅 즉시 앱 실행, ASG 반응 속도 극대화
EC2 User Data인스턴스 첫 시작 시 실행 스크립트동적 구성(DB URL·암호)에만 사용. 설치 목적으로 쓰면 느림
하이브리드 (Golden AMI + User Data)무거운 설치 = AMI / 동적 = User Data빠른 시작 + 유연성. Beanstalk가 내부적으로 사용

회사 비유로 — Golden AMI는 신입 직원이 책상에 앉기도 전에 컴퓨터·계정·소프트웨어가 다 세팅된 상태, User Data는 책상에 앉아서 그날 비밀번호·서버 주소를 입력하는 단계. 무거운 설치를 User Data로 처리하면 신입 직원이 한참 동안 컴퓨터 세팅하느라 일을 못 하는 셈이에요.

DB·스토리지를 빠르게 배포하려면 — RDS는 스냅샷 복원(INSERT 스크립트보다 훨씬 빠름), EBS는 스냅샷에서 볼륨 생성(포맷 + 데이터 복사 과정 없이 즉시 사용). 시험에 "DB를 빠르게 복제·테스트 환경 구축" 시나리오가 나오면 답은 RDS 스냅샷 복원입니다.

클래식 패턴 5 — Elastic Beanstalk

코드만 업로드하면 인프라(EC2·ELB·ASG·모니터링)를 자동 배포·관리해 주는 PaaS가 Elastic Beanstalk 입니다. 회사 비유로는 — 인테리어·전기·통신을 한 번에 해 주는 턴키 사옥 임대 서비스예요. 사장(개발자)은 직원과 사업 계획만 들고 가면 되는 식.

자동화 항목 — 용량 프로비저닝·로드 밸런싱·오토 스케일링·앱 상태 모니터링. 그런데도 기저 리소스(EC2·ASG 등)는 사용자가 완전히 제어 가능합니다(Full Control). 자동이라고 해서 손을 못 대는 건 아니에요.

요금은 — Beanstalk 서비스 자체는 무료, 생성된 EC2·ELB·RDS 등 리소스에만 비용 청구. 내부 동작 — 백그라운드에서 AWS CloudFormation을 사용해 리소스 생성.

구성 요소가 셋이에요.

요소설명
애플리케이션(Application)환경·버전·구성을 묶은 논리적 최상위 컨테이너
애플리케이션 버전(Version)배포 가능한 코드의 특정 버전 (v1·v2·...)
환경(Environment)특정 버전을 실행하는 AWS 리소스 집합 (Dev·Test·Prod)

환경에는 두 가지 계층이 있고, 이게 시험 단골이에요.

계층용도구성
Web Server Tier일반 웹앱·REST APIELB → EC2 (ASG 내)
Worker Tier백그라운드·비동기 처리SQS 대기열 → EC2 (메시지 수에 따라 자동 확장)

> 아키텍처 팁 — Web Server Tier에서 SQS로 메시지를 보내고 Worker Tier가 그걸 Pull해서 처리하는 구조. 두 환경을 SQS로 디커플링(Decoupling) 해서 운영합니다. "비동기 백그라운드 처리"가 키워드면 거의 무조건 Worker Tier + SQS.

배포 모드는 두 가지예요.

모드용도구성
단일 인스턴스Dev/Test 환경ELB 없음, EC2 1대 + Elastic IP
고가용성Production 환경Multi-AZ + ELB + ASG

필수 IAM 역할도 시험에 자주 나옵니다.

  • 서비스 역할(Service Role) — Beanstalk가 EC2·ELB 등을 사용자 대신 만들 권한
  • EC2 인스턴스 프로파일(Instance Profile) — 생성된 EC2 안의 앱이 S3·DynamoDB 같은 다른 AWS 서비스에 접근할 권한

지원 플랫폼 — Go·Java(SE/Tomcat)·.NET·Node.js·PHP·Python·Ruby·Docker.

Beanstalk vs CloudFormation 차이도 짚어 둘게요. Beanstalk는 코드/앱 중심(웹앱을 빠르고 쉽게 배포), CloudFormation은 인프라 중심(모든 종류의 AWS 리소스를 IaC 템플릿으로 정의). 시험에 "코드 한 줄 업로드로 웹앱 배포" → Beanstalk, "조직 전체의 모든 리소스를 코드로 정의" → CloudFormation입니다.

클래식 패턴 6 — 단일 EC2 Multi-AZ HA 3가지 패턴

EC2와 EBS는 기본적으로 단일 AZ에 종속이에요. 그런데 단일 EC2를 다른 AZ로 자동 페일오버하려면 어떻게? — 여기서 시험 함정이 하나 있어요, 패턴 A·B·C 중 어느 게 정답인지가 시나리오 키워드에 따라 갈립니다. 한 번 깔끔하게 정리할게요.

패턴 A — CloudWatch + Lambda + Elastic IP (대기 인스턴스 활용) CloudWatch가 EC2 상태를 감시하다 알람 발생 → Lambda 트리거 → Lambda가 대기 인스턴스를 시작하고 Elastic IP를 재연결(Remapping). 사용자는 동일한 EIP로 접속하니 백엔드 장애를 인지하지 못해요. 키워드 — "대기 인스턴스", "EIP 재연결".

패턴 B — ASG (Min=1, Max=1, Desired=1) + User Data + Elastic IP 2개 AZ에 걸쳐 ASG를 만들고 용량을 1로 고정해 둡니다. 인스턴스 장애 시 ASG가 감지해서 다른 AZ에 새 인스턴스를 자동 생성하고, User Data 스크립트가 API를 호출해 EIP를 자기에게 연결해요. 중요 — EC2가 API를 호출하려면 적절한 권한의 IAM 역할(Instance Profile) 이 연결돼 있어야 합니다. 키워드 — "ASG 1·1·1", "User Data", "API 호출".

패턴 C — ASG + Lifecycle Hook + EBS Snapshot (Stateful HA) Stateful 앱(데이터가 EBS에 저장된 DB 등)에 사용해요. 흐름은 — 장애 발생 → Lifecycle Hook(Terminating) 으로 종료를 일시 중지 → EBS 스냅샷 생성 → 다른 AZ에 새 인스턴스 시작 → Lifecycle Hook(Launching) 또는 User Data로 스냅샷에서 새 EBS 볼륨 생성 → 인스턴스에 연결 → EIP 연결. 키워드 — "Stateful", "EBS 스냅샷 보존", "Lifecycle Hook".

회사 비유로 풀면 — A는 대타 직원이 항상 대기, B는 자리가 비면 자동으로 새 직원이 그 자리를 채움, C는 직원이 떠날 때 자기 책상 서랍을 통째로 박스에 담아서 새 직원이 그대로 받음(데이터 보존). Stateful 앱에는 C가 정답이에요.

이벤트 드리븐 — DLQ 위치의 결정적 함정

이벤트 드리븐 아키텍처에서 시험 단골이 SQS와 SNS의 Lambda 통합 차이입니다. 처음 보면 둘 다 비슷해 보이는데, DLQ를 어디에 다는지가 다르다는 게 핵심이에요.

SQS + Lambda — Lambda가 큐를 폴링(Pull). 처리 실패 시 메시지가 큐로 돌아가서 무한 반복 가능. 그래서 DLQ를 SQS 측에 설정해서 불량 메시지(Poison Pill)를 격리합니다.

SNS + Lambda — SNS가 Lambda를 비동기 Push. 처리 실패 시 Lambda 내부에서 재시도(최대 3번). DLQ는 Lambda 측에 설정해요.

통합방향DLQ 위치
SQS → LambdaPullSQS 측
SNS → LambdaPushLambda 측

여기서 시험 함정이 하나 있어요 — 누가 누구를 호출하는지(누가 능동적인지)에 따라 DLQ 위치가 결정됩니다. SQS는 Lambda가 능동적으로 가져오니까 DLQ가 SQS 쪽, SNS는 SNS가 능동적으로 보내니까 DLQ가 받는 쪽(Lambda)입니다. 이 한 줄만 기억하면 안 헷갈려요.

SQS FIFO도 함정이 있어요. 메시지 순서가 보장되는 대신, 처리 실패 시 전체 큐가 차단(Block) 됩니다. 그래서 FIFO에서도 DLQ로 불량 메시지를 격리하는 게 필수예요.

Fan-out 패턴 — 한 이벤트를 여러 시스템에

Fan-out도 자주 나오는 패턴입니다. 문제 상황은 — 앱이 여러 SQS 큐에 순차적으로 메시지를 보내다가 중간에 크래시 나면 일부 큐만 메시지가 들어가서 데이터 불일치가 생긴다는 거예요. 회사 비유로 치면 우체국 직원이 편지 5장을 한 통씩 우편함에 넣다가 3번째에서 쓰러진 격이죠.

해결 — 앱이 단일 SNS Topic에 메시지를 한 번 보내면, 여러 SQS 큐가 그 SNS를 구독해서 SNS가 모든 큐에 병렬 전달해 줍니다. 결합도 ↓, 신뢰성 ↑.

앱 → SNS Topic ─┬─→ SQS 큐 A
                 ├─→ SQS 큐 B
                 └─→ SQS 큐 C

S3 이벤트 처리 — 기본 알림 vs EventBridge

이것도 시험에 자주 나옵니다.

방식필터링목적지
기본 S3 이벤트 알림이름(접두사·접미사)만SNS·SQS·Lambda 3가지만
S3 + EventBridge고급(메타데이터·객체 크기 등)18+ AWS 서비스 (Step Functions·Firehose 등), 아카이브·재생 지원

객체 크기 기반 필터링이나 Step Functions 트리거 같은 고급 시나리오는 무조건 EventBridge예요. 보기에 "객체 크기" 또는 "Step Functions"가 보이면 EventBridge가 정답.

부수 패턴 둘 더 짚고 갑니다.

CloudTrail + EventBridge (API 호출 모니터링)

특정 API 호출 (예: DynamoDB DeleteTable)
  → CloudTrail이 기록
    → EventBridge가 가로챔
      → SNS로 관리자에게 경고 이메일

외부 이벤트 수집 아키텍처

외부 클라이언트 → API Gateway → Kinesis Streams → Kinesis Firehose → S3

캐싱 4계층 — 어디에 두느냐의 분류

캐싱은 위치에 따라 네 계층으로 나뉩니다. 시험에 "지연 시간을 줄이려면?" 시나리오의 답은 거의 매번 이 표 안에서 나와요.

계층서비스위치특징주의점
엣지 캐싱CloudFront엣지 로케이션 (사용자와 가장 가까운 곳)정적·동적 콘텐츠, 최저 지연TTL 설정, Invalidation으로 즉시 갱신 가능
리전 캐싱API Gateway 캐싱리전 레벨API 백엔드 호출 ↓사용자 ↔ API GW 네트워크 지연은 여전
DB 앞 캐싱ElastiCache (Redis/Memcached)앱 서버 근처RDS 읽기 부하 ↓, 마이크로초 응답캐시 유지보수 (Lazy Loading 패턴)
DynamoDB 전용DAX (DynamoDB Accelerator)DynamoDB 앞단DynamoDB 마이크로초, 앱 변경 최소DynamoDB에만 사용

회사 비유로 — CloudFront는 손님 동네에 있는 임시 매장, API Gateway 캐싱은 본사 1층 안내데스크, ElastiCache는 창고 옆 자주 찾는 물건 진열대, DAX는 DynamoDB 전용 진열대예요.

선택 가이드를 한 줄로 묶으면:

  • 글로벌 지연 시간 ↓ → CloudFront
  • API 백엔드 호출 ↓ → API Gateway 캐싱
  • RDS 읽기 부하 ↓ → ElastiCache
  • DynamoDB 읽기 부하 ↓ → DAX

네트워크 보안 계층 — CloudFront + ALB 함정

EC2에 직접 접근할 때 보안 계층이 셋이 겹쳐 있어요.

인터넷
  ↓ 1차 방어: NACL (서브넷 수준, Allow/Deny 모두 지원, 특정 IP 차단에 적합)
  ↓ 2차 방어: 보안 그룹 (EC2 수준, Allow만 지원, 거부 규칙 없음)
  ↓ 3차 방어: EC2 내부 방화벽 (OS 수준, CPU 자원 소모 주의)
 EC2

CloudFront + ALB 구조의 결정적 함정

이게 시험에 거의 매번 나오는 함정이에요. 한 번 천천히 풀게요.

클라이언트 → CloudFront → ALB (퍼블릭 서브넷) → EC2 (프라이빗)

여기서 시험 함정이 하나 있어요. ALB 서브넷 앞에 NACL을 두고 거기서 클라이언트의 악성 IP를 차단하려고 시도하면 — 실패합니다. 왜냐하면 ALB는 CloudFront를 거쳐 들어오는 트래픽만 받으니까 ALB 서브넷의 NACL 입장에서는 출발지가 항상 CloudFront IP로 보이거든요. 진짜 클라이언트 IP는 NACL 단에서 보이지 않아요.

올바른 설정은 다음과 같습니다.

  • ALB 보안 그룹CloudFront 퍼블릭 IP 대역만 허용 (AWS 관리형 Prefix List 활용해서 자동으로 갱신)
  • 국가 단위 차단CloudFront Geo-Restriction 기능 사용
  • 특정 클라이언트 IP 차단CloudFront에 AWS WAF 연결해서 IP 필터링

WAF는 ALB 또는 CloudFront에 붙여서 SQL 인젝션·XSS 같은 7계층 공격을 막아 줍니다. 추가 비용은 발생해요.

> "CloudFront + ALB 구조에서 클라이언트 IP 차단" → CloudFront에 WAF 연결. 이 한 줄을 통째로 외워두면 시험장에서 함정에 안 빠집니다.

HPC — 키워드 매칭으로 푸는 영역

고성능 컴퓨팅(HPC)은 단시간에 대량 리소스를 띄워 연산 시간을 줄이고, 끝나면 즉시 해체하는 게 클라우드의 강점이에요. 게놈학·계산 화학·금융 리스크 모델링·기상 예보·ML/딥러닝·자율주행 같은 게 대표 사용 사례입니다.

HPC는 시험에서 키워드 매칭으로 풀 수 있게 출제되는 경향이 있어요. 키워드만 잡으면 답이 거의 바로 나오는 영역.

데이터 전송 — Direct Connect·Snow·DataSync

  • AWS Direct Connect — 프라이빗 보안 네트워크, GB/s 단위 전송
  • AWS Snowball/Snowmobile — PB급 대용량 데이터 물리적 이동
  • AWS DataSync — 온프레미스(NFS·SMB) ↔ AWS 스토리지(S3·EFS·FSx) 대량 동기화

컴퓨팅 & 네트워킹

기술설명성능
클러스터 배치 그룹단일 AZ, 동일 랙10Gbps, 노드 간 통신 최적
ENA (Elastic Network Adapter)Enhanced Networking (SR-IOV)최대 100Gbps
Intel 82599 VFEnhanced Networking 레거시최대 10Gbps
EFA (Elastic Fabric Adapter)HPC 전용 ENA 개선판, Linux에서만 작동MPI 활용, OS 우회(Bypass) 로 극저지연, 밀접 결합 워크로드 전용

> 시험 키워드 — "밀접하게 결합된 워크로드(Tightly Coupled)", "Linux", "OS 우회(Bypass)", "MPI" → EFA.

스토리지

스토리지IOPS특징
EBS io2 Block Express256K인스턴스 연결
Instance Store수백만, 초저지연인스턴스 종료 시 데이터 소실 (임시)
Amazon EFS확장형공유 파일 시스템
FSx for Lustre수백만HPC 최적화, S3와 원활하게 연동

> 시험 키워드 — "HPC 파일 시스템", "수백만 IOPS", "S3 연동" → FSx for Lustre.

자동화·오케스트레이션

  • AWS Batch — 다중 노드 병렬 작업 지원, 스케줄링·EC2 자동 관리
  • AWS ParallelCluster — AWS에 HPC를 배포하는 오픈소스 클러스터 관리 툴, 텍스트 파일로 VPC·서브넷·인스턴스 유형 구성, EFA 파라미터 설정으로 네트워크 성능 극대화

시나리오별 서비스 선택 — 시험 직전 매칭표

이 표가 13편의 결론에 가장 가깝습니다. 시험에 자주 나오는 시나리오 → 정답 서비스를 한 표에 정리해 둘게요. 시험 전날 한 번만 다시 훑으면 머리에 남아요.

시나리오정답핵심 이유
Linux EC2 다중 AZ 파일 공유EFSNFS 기반, 여러 AZ 동시 접근
Windows 파일 공유FSx for WindowsSMB 프로토콜
HPC 고성능 파일 시스템FSx for Lustre수백만 IOPS, S3 백엔드
글로벌 정적 캐싱CloudFront엣지 로케이션
수평 확장 웹앱ALB + ASG (Multi-AZ)HA + 자동 확장
하나의 이벤트 → 여러 시스템SNS + SQS Fan-out 또는 EventBridge결합도 ↓
비동기 백그라운드 처리SQS + Lambda디커플링
실시간 대용량 스트리밍Kinesis Data Streams대용량 실시간
스트리밍 → S3Kinesis Firehose완전 관리형 전달
관계형 DB HARDS Multi-AZ자동 페일오버
관계형 DB 읽기 확장RDS Read Replicas읽기 부하 분산
관계형 DB 글로벌Aurora Global Database리전 간
NoSQL 서버리스DynamoDB완전 관리형
DynamoDB 마이크로초DAX앱 변경 최소
컨테이너 서버리스ECS Fargate서버 관리 X
쿠버네티스EKSK8s 호환
빠른 앱 배포 (인프라 X)Elastic BeanstalkPaaS
IaCCloudFormation모든 리소스 템플릿
온프레 DB 마이그레이션DMS동종/이종, 무중단
서버 리프트앤시프트MGN에이전트 기반
온프레 ↔ AWS 동기화DataSync대용량
PB급 물리 이동Snowball/Snowmobile오프라인
악성 IP 즉시 무료 차단NACL서브넷 Deny
CloudFront+ALB 클라이언트 IP 차단CloudFront에 WAF 연결NACL은 CF IP만 봄
EC2 시작 시간 ↓ (ASG)Golden AMI부팅 즉시 실행
DB 빠른 복제·테스트RDS 스냅샷 복원INSERT보다 빠름

핵심 비교표 5종 — 저장본

시험 직전 한 번 더 보고 갈 표 5개입니다.

스토리지

서비스유형AZ용도
EBS블록단일 AZOS 부팅·DB
EFSNFS 공유Multi-AZWordPress 공유
FSx WindowsSMB 공유Multi-AZWindows 공유
FSx Lustre고성능단일 AZHPC + S3
Instance Store임시 블록단일 AZ임시 캐시 (종료 시 소실)
S3객체리전백업·정적 호스팅

DB

서비스HARead 확장글로벌
RDSMulti-AZRR 5개X
Aurora내장RR 15개Global DB
DynamoDB내장Global TablesGlobal Tables
ElastiCacheMulti-AZRRX
DAX내장X

메시징

서비스패턴순서지속성
SQS StandardPullX14일
SQS FIFOPullO14일
SNSPushX없음
EventBridge이벤트 버스아카이브
Kinesis StreamsPull샤드 내365일

네트워크 인터페이스 (HPC)

인터페이스대역폭특징
ENI일반기본
ENA100GbpsEnhanced (SR-IOV)
EFA100Gbps+MPI, OS 우회, Linux 전용

배치 그룹

유형배치 방식사용
Cluster단일 AZ 동일 랙HPC, 빅데이터
Spread여러 AZ 다른 랙 (AZ당 7개)중요 인스턴스 HA
Partition여러 AZ 파티션별 독립 랙Hadoop, Cassandra, Kafka

Multi-AZ 아키텍처 설계 5대 원칙

이 다섯 원칙이 13편 전체의 압축이라고 봐도 됩니다. 시험장에서 보기 4개 중에 헷갈릴 때, 이 다섯 줄에 비춰 보면 답이 나와요.

  1. 고가용성 = Multi-AZ — ELB·ASG·RDS·ElastiCache 모두 Multi-AZ 적용
  2. 보안 그룹 참조 — IP 대신 SG ID를 소스로 지정 (Auto Scaling 시 자동 적용)
  3. Stateless EC2 — 세션·상태 데이터는 ElastiCache 또는 DynamoDB에 분리
  4. Route 53 레코드 — AWS 리소스 가리킴 = Alias / 직접 IP만 A 레코드
  5. EC2 비용 전략 — 상시 가동 = RI(72%↓) / 변동 = On-Demand / 배치 = Spot

시험 직전 한 번 더 — 자주 헷갈리는 함정 압축

여기까지가 13편 핵심입니다. 시험 직전 다시 펼쳐 볼 압축 노트를 마지막에 박아 둘게요. 이 부분만 한 번 더 읽으면 단원 전체가 거의 다 떠오릅니다.

  • 글로벌 서비스 4총사 — IAM·Route 53·CloudFront·WAF
  • 리전 선택 4요인 — Compliance > Latency > Availability > Pricing
  • AWS 리소스 가리키는 Route 53 레코드 = Alias (A 레코드 X)
  • EC2 SG 인바운드 소스 = ELB SG ID (IP X)
  • 세션 상태 = ElastiCache 또는 DynamoDB (스티키·쿠키 X)
  • RDS Multi-AZ = HA·DR(동기) / Read Replica = 읽기 확장(비동기)
  • 다중 EC2 공유 스토리지 = EFS (EBS X)
  • 글로벌 관계형 DB = Aurora Global Database
  • 빠른 인스턴스화 = Golden AMI, 빠른 DB 배포 = RDS 스냅샷 복원
  • Beanstalk 내부 = CloudFormation / Worker Tier = SQS
  • 단일 EC2 HA — A: CloudWatch+Lambda+EIP / B: ASG(1·1·1)+UserData / C: ASG+LifecycleHook+Snapshot
  • SQS+Lambda = SQS DLQ / SNS+Lambda = Lambda DLQ
  • Fan-out = SNS Topic → 여러 SQS 구독
  • S3 객체 크기 필터·Step Functions 트리거 = EventBridge
  • 캐싱 4계층 — CloudFront / API GW 캐싱 / ElastiCache / DAX
  • CloudFront+ALB 클라이언트 IP 차단 = CloudFront에 WAF
  • HPC 키워드 — 밀접 결합·Linux·OS 우회·MPI = EFA
  • HPC 파일 시스템·수백만 IOPS·S3 연동 = FSx for Lustre
  • HPC 클러스터 자동 배포 = ParallelCluster
  • 최저 지연 인스턴스 배치 = 클러스터 배치 그룹

여기까지가 SAA-C03 Multi-AZ 솔루션 아키텍처 패턴 종합입니다. 1편부터 12편까지의 개별 서비스 지식이 13편의 시나리오 매칭표로 변환되는 순간이 시험장에서 가장 결정적이에요. 표를 한 번에 다 외우려 하지 마시고, 각 시나리오 키워드 → 정답 Multi-AZ 서비스 → 핵심 이유의 흐름으로 천천히 짚어 가시면 머리에 남습니다.

다음 글(14편, 마지막)에서는 시험 직전 정리 — 시험 개요·Well-Architected Framework·헷갈리는 함정·숫자 암기·전략을 한 번에 묶어 14편 시리즈를 마무리합니다.

시리즈 다른 편

같은 시리즈의 다른 글들도 같은 친절 톤으로 묶어 정리되어 있어요.

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

error: Content is protected !!