시험 전 빠른 복습: 요구사항에서 서비스 후보 좁히기
이 글은 앞선 주제의 세부 설명을 반복하지 않고, 문제에서 조건을 읽고 후보를 좁히는 순서를 모아 둔 복습 자료다. 먼저 우선순위와 제약을 표시하고, 비슷한 서비스의 책임 경계를 확인한 뒤 남은 선택지를 비교한다. 숫자와 서비스 기능은 바뀔 수 있으므로 실제 시험 전에는 공식 문서를 다시 확인한다.
1. SAP 시험 접근 전략
문제 읽기 순서
1. 요구사항 키워드 파악
→ "비용 효율적", "최소 운영 부담", "다운타임 없음", "실시간"
2. 제약 조건 확인
→ "기존 코드 변경 없이", "온프레미스 유지", "규정 준수 필요"
3. 오답 소거
→ 요구사항과 명백히 맞지 않는 선택지 먼저 제거
4. 남은 선택지 중 "가장 적합한" 것 선택
→ SAP는 "틀린 것"이 아닌 "가장 좋은 것"을 묻는 경우가 많음
자주 나오는 키워드 → 서비스 매핑
| 키워드 | 즉시 떠올릴 서비스 |
|---|---|
| 최소 운영 부담 / 서버리스 | Lambda, Fargate, Aurora Serverless, DynamoDB |
| 코드 변경 없이 | Storage Gateway, Transfer Family, DMS |
| 실시간 / 스트리밍 | Kinesis Data Streams, Managed Service for Apache Flink |
| 대용량 데이터 이전 | DataSync (온라인), Data Transfer Terminal (물리 시설·지원 요건 확인) |
| 다운타임 최소화 | DMS CDC, Blue/Green, Aurora Global DB |
| 글로벌 사용자 / 낮은 지연 | CloudFront, Global Accelerator, Route 53 지리 라우팅 |
| 비용 최적화 | Savings Plans, 스팟, S3 Intelligent-Tiering |
| 규정 준수 / 감사 | CloudTrail, Config, Macie, GuardDuty |
| 멀티 계정 정책 강제 | SCP (Organizations) |
| 온프레미스 ↔ AWS 연결 | Direct Connect, VPN, Storage Gateway |
| 데이터 주권 / 초저지연 온프레미스 | Outposts |
| 승인된 리소스만 배포 | Service Catalog |
| 사람 개입 승인 포함 자동화 | Step Functions (Wait for Callback) |
2. 시나리오별 선택 기준
시나리오: 마이그레이션
[온프레미스 서버 → AWS, 빠른 이전]
→ AWS Transform MGN (블록 레벨 복제, 컷오버 목표는 테스트로 검증)
[온프레미스 DB → 다른 DB 엔진]
→ AWS SCT (스키마 변환) + DMS (데이터 이전)
[온라인 전송 시간이 길고 물리 반입 가능]
→ AWS Data Transfer Terminal (시설 위치·계정 지원 요건 확인)
[파트너사 SFTP 유지하며 S3 저장]
→ Transfer Family
[온프레미스 파일 서버 → S3 주기 동기화]
→ DataSync
시나리오: 고가용성
[단일 AZ 장애 대비]
→ Multi-AZ (RDS, ALB, Auto Scaling 다중 AZ)
[리전 장애 대비, 분 단위 복구]
→ Pilot Light 또는 Warm Standby + Route 53 장애 조치
[리전 장애 대비, 초 단위 복구]
→ Multi-Site Active-Active + Aurora Global DB + DynamoDB 글로벌 테이블
[RDS 리전 수준 DR]
→ Aurora Global Database (리전 간 비동기 복제, 목표 RTO·실제 복제 지연 검증)
시나리오: 비용 최적화
[예측 가능한 24/7 워크로드]
→ 1년 Savings Plans 또는 Standard RI
[중단 허용 배치 작업]
→ 스팟 인스턴스 (최대 90% 절감)
[개발 환경 비용]
→ EventBridge 스케줄 → Lambda → 업무 외 시간 자동 중지
[S3 오래된 데이터 비용]
→ 수명 주기 정책 → Glacier Deep Archive
[CloudFront 없이 S3에서 직접 서비스]
→ CloudFront 추가 (아웃바운드 비용 절감 + 성능 향상)
시나리오: 보안
[미사용 자격 증명 감지]
→ IAM Access Analyzer, Trusted Advisor
[비정상 API 호출 탐지]
→ GuardDuty + CloudTrail Insights
[S3 개인정보(PII) 탐지]
→ Amazon Macie
[EC2 취약점 스캔]
→ Amazon Inspector
[DDoS 방어]
→ Shield Standard (자동) / Shield Advanced (고급, WAF 포함)
[SQL 인젝션, XSS 방어]
→ WAF (ALB, CloudFront, API Gateway에 연결)
[키 관리, 암호화]
→ KMS (AWS 관리형 키 또는 고객 관리형 키)
[DB 암호, API 키 저장]
→ Secrets Manager (자동 교체 지원)
시나리오: 서버리스 설계
[이벤트 → 여러 시스템 동시 처리]
→ SNS 팬아웃 → 각 SQS → Lambda
[순서 보장 + 중복 방지 큐]
→ SQS FIFO
[15분 초과 작업 또는 복잡한 분기·병렬]
→ Step Functions
[실시간 스트림 데이터 집계]
→ Kinesis Data Streams → Managed Service for Apache Flink
[API 비용 최소화 + Lambda 연동]
→ API Gateway HTTP API (필요 기능을 충족하는지 확인한 뒤 요금 비교)
시나리오: 네트워크
[여러 VPC + 온프레미스 중앙 연결]
→ Transit Gateway
[두 VPC만 연결, 간단]
→ VPC 피어링
[온프레미스 안정적 대용량 연결]
→ Direct Connect
[DX 장애 대비 백업]
→ Site-to-Site VPN (자동 페일오버)
[EC2 → S3 전송 비용 제거]
→ S3 Gateway VPC Endpoint
[글로벌 사용자 TCP/UDP 성능]
→ Global Accelerator (Anycast IP, 엣지에서 AWS 백본으로)
[글로벌 HTTP 콘텐츠 배포]
→ CloudFront (캐싱, 엣지 서버)
3. 함정 패턴 (오답 유발 포인트)
함정 1: RDS Multi-AZ vs 읽기 복제본 혼동
Multi-AZ:
→ 목적: 고가용성 (자동 페일오버)
→ 스탠바이는 읽기 불가 (MySQL, PostgreSQL Multi-AZ 인스턴스)
→ 동기 복제 → RPO ≈ 0
읽기 복제본:
→ 목적: 읽기 성능 향상 (읽기 쿼리 분산)
→ 비동기 복제 → 약간의 지연
→ 크로스 리전 가능 → DR 목적으로도 사용
→ 수동 승격 필요
함정: "읽기 부하 분산"에 Multi-AZ 선택 → 틀림
함정: "장애 조치"에 읽기 복제본 선택 → 불완전 (수동 승격 필요)
함정 2: S3 이벤트 알림의 팬아웃 한계
각 S3 이벤트 알림 설정 → 목적지 하나 지정
(Lambda, SQS, SNS 등 중 하나)
여러 시스템에 동시 전달 필요:
S3 → SNS → (SQS A, SQS B, Lambda C) 팬아웃
여러 소비자에게 한 이벤트를 팬아웃:
S3 → SNS → 각 구독자, 또는 S3 → EventBridge → 규칙별 대상
같은 버킷에 여러 알림 설정을 둘 수 있지만, 이벤트 종류와 필터가 겹치는 구성에는 제약이 있다.
함정 3: CloudFront vs Global Accelerator
CloudFront:
→ HTTP/HTTPS 콘텐츠 캐싱
→ 정적 파일, 동적 페이지 가속
→ 엣지에서 콘텐츠 서빙 (캐시 히트 시 오리진 미접촉)
Global Accelerator:
→ TCP/UDP 모든 트래픽 (HTTP 외 포함)
→ 캐싱 없음
→ Anycast IP로 가장 가까운 엣지 → AWS 백본 경유 → 오리진
→ 고정 IP 제공 (IP 화이트리스트 필요 시)
→ 게임, IoT, VoIP에 적합
함정: "글로벌 HTTP API 성능"에 Global Accelerator → CloudFront가 더 적합한 경우 많음
함정: "고정 IP 필요" → CloudFront는 고정 IP 없음 → Global Accelerator
함정 4: SQS vs SNS vs EventBridge
SQS:
→ 소비자가 폴링, 1개 소비자가 메시지 처리
→ 보존 (최대 14일), 재처리 가능
→ 디커플링, 작업 큐
SNS:
→ 즉시 푸시, 다수 구독자 동시 전달
→ 보존 없음 (실패 시 소멸)
→ 팬아웃
EventBridge:
→ 이벤트 소스에서 자동 수신 (AWS 서비스 이벤트)
→ 규칙 기반 라우팅, 50+ 타겟
→ 스케줄 가능 (cron)
→ SaaS 이벤트 연동
함정: "여러 구독자 동시 알림" → SNS (SQS 아님)
함정: "AWS 서비스 이벤트에 자동 반응" → EventBridge (SNS 아님)
함정: "메시지 보존·재처리" → SQS (SNS 아님)
함정 5: Kinesis Streams vs SQS
Kinesis Streams:
→ 다수 소비자가 동일 데이터 동시 읽기 가능
→ 보존 기간 내 재처리 가능
→ 순서 보장 (샤드 내)
→ 실시간 로그, IoT, 클릭스트림
SQS:
→ 메시지 하나를 하나의 소비자만 처리
→ 처리 후 삭제 (재처리 불가, DLQ 제외)
→ 처리량 무제한
함정: "여러 애플리케이션이 동일 스트림 읽기" → Kinesis (SQS 아님)
함정: "무제한 처리량 작업 큐" → SQS (Kinesis 샤드 한계보다 유연)
함정 6: SCP가 관리 계정에 적용되지 않음
SCP는 멤버 계정에만 적용됨
관리 계정(Management Account)은 SCP의 영향을 받지 않음
함정: "관리 계정도 SCP로 제한 가능" → 틀림
정답: 관리 계정은 최소한의 작업만 수행, 실제 워크로드는 멤버 계정에서
함정 7: CloudTrail vs Config 목적 혼동
CloudTrail: "누가 무엇을 했는가" (API 호출 감사)
Config: "리소스가 어떤 상태인가" (설정 규정 준수)
함정: "보안 그룹이 언제 변경됐는지" → CloudTrail (Config는 현재 상태)
함정: "보안 그룹이 규정을 준수하는지" → Config (CloudTrail은 이력)
두 서비스는 보완 관계: Config로 위반 탐지 → CloudTrail로 변경자 추적
함정 8: Lambda 동시성 한도와 스로틀링
계정 기본 동시성: 1,000 (리전별)
Reserved Concurrency 설정 시:
→ 해당 함수의 최대 동시성 예약
→ 다른 함수는 남은 동시성 공유
→ Reserved = 0이면 함수 완전 비활성화
함정: Reserved Concurrency가 Cold Start를 방지 → 틀림
(Cold Start 방지는 Provisioned Concurrency)
함정: 동시성 1,000 초과 → 오류 없이 처리 → 틀림
(429 TooManyRequests, SQS 트리거는 재처리)
함정 9: NAT Gateway vs NAT 인스턴스
NAT Gateway:
→ AWS 완전 관리형, 고가용성 자동
→ AZ별 배치 (고가용성 위해 각 AZ에 하나씩)
→ 대역폭 자동 확장
NAT 인스턴스:
→ EC2로 직접 운영, 단일 장애점
→ 보안 그룹 직접 관리 가능
→ 포트 포워딩 가능 (NAT Gateway 불가)
→ 더 낮은 비용 (소규모)
함정: "고가용성 NAT" → 각 AZ에 NAT Gateway (단일 NAT Gateway는 AZ 장애에 취약)
함정 10: Aurora vs RDS 선택
Aurora가 유리한 경우:
→ MySQL/PostgreSQL 호환 필요
→ 고성능 (RDS MySQL 대비 5배)
→ 멀티 리전 DR (Aurora Global DB)
→ 서버리스 (Aurora Serverless v2)
→ 스토리지 자동 확장 (128TB까지)
RDS가 유리한 경우:
→ Oracle, SQL Server, MariaDB 필요
→ 특정 엔진 버전 필요
→ Aurora 미지원 리전
함정: "비용 절감" → Aurora가 반드시 저렴하지 않음 (RDS MySQL이 더 저렴할 수 있음)
함정: "Oracle → Aurora 마이그레이션" → SCT 필요 (이기종 변환)
4. 헷갈리는 서비스 비교 치트시트
스토리지 비교
| 서비스 | 특성 | 사용 시나리오 |
|---|---|---|
| S3 | 오브젝트, 무제한, 내구성 11 9s | 정적 파일, 백업, 데이터 레이크 |
| EBS | 블록, EC2 1개 연결, AZ 종속 | OS, DB, 트랜잭션 로그 |
| EFS | 파일, 여러 EC2 공유, 리전 | 공유 파일 시스템, 컨테이너 |
| FSx for Windows | SMB, AD 통합 | Windows 파일 서버 |
| FSx for Lustre | HPC, 고성능 | ML, 빅데이터, HPC |
| Instance Store | 임시 로컬 NVMe | 캐시, 임시 데이터 |
DB 비교
| 서비스 | 유형 | 특성 |
|---|---|---|
| RDS | 관계형 | 관리형, Multi-AZ, 읽기 복제본 |
| Aurora | 관계형 | 고성능, Global DB, Serverless |
| DynamoDB | NoSQL(키-값) | ms 응답, 글로벌 테이블, 서버리스 |
| ElastiCache | 인메모리 | 캐싱, Redis(영속)/Memcached(단순) |
| Redshift | DW | 컬럼형, 페타바이트, 분석 |
| DocumentDB | 도큐먼트 | MongoDB 호환 |
| Neptune | 그래프 | 관계 분석, 소셜 네트워크 |
| Timestream | 시계열 | IoT, 모니터링 지표 |
| QLDB | 원장 | 변경 불가 감사 로그 |
컴퓨팅 비교
| 서비스 | 특성 | 선택 기준 |
|---|---|---|
| EC2 | 완전 제어, OS 접근 | 특수 요구사항, 레거시 |
| Lambda | 이벤트 기반, 15분 제한 | 짧은 이벤트 처리 |
| ECS Fargate | 컨테이너, 서버리스 | 컨테이너, 관리 최소 |
| ECS EC2 | 컨테이너, EC2 제어 | GPU, 특수 인스턴스 |
| EKS | Kubernetes | 멀티클라우드, K8s 생태계 |
| App Runner | 소스→배포 자동 | 최소 설정 웹 API |
| Batch | 배치 작업 관리 | 대규모 배치, 의존성 있는 작업 |
메시징 비교
| 서비스 | 패턴 | 보존 | 선택 기준 |
|---|---|---|---|
| SQS Standard | 큐, 폴링 | 14일 | 디커플링, 작업 큐 |
| SQS FIFO | 큐, 순서 보장 | 14일 | 순서·중복 방지 |
| SNS | Pub/Sub, 푸시 | 없음 | 팬아웃, 다수 구독자 |
| EventBridge | 이벤트 라우팅 | 없음 | AWS 이벤트, 스케줄, 규칙 기반 |
| Kinesis Streams | 스트림, 다수 소비자 | 365일 | 실시간 스트림, 재처리 |
| MQ | 메시지 브로커 (AMQP) | - | 온프레미스 MQ 마이그레이션 |
네트워크 비교
| 서비스 | 목적 | 선택 기준 |
|---|---|---|
| VPC 피어링 | VPC 간 1:1 연결 | 2개 VPC, 단순 |
| Transit Gateway | 허브 앤 스포크 | 3개 이상 VPC |
| PrivateLink | 서비스 노출 (단방향) | 서비스 공유, 타 계정 |
| Direct Connect | 전용 회선 | 안정·대용량 |
| VPN | 암호화 터널 | 빠른 구성, 백업 |
| Global Accelerator | TCP/UDP 가속 | 고정 IP, 비HTTP |
| CloudFront | HTTP 캐싱·배포 | 정적 콘텐츠, 글로벌 |
5. 자주 헷갈리는 숫자 암기
아래 값은 빠른 복습용이다. 기본값과 서비스 한도는 기능·리전·계정에 따라 달라질 수 있으므로 실제 설계 전에는 공식 문서와 Service Quotas를 확인한다.
| 항목 | 값 |
|---|---|
| Lambda 최대 실행 시간 | 15분 |
| Lambda 기본 동시성 | 1,000 (리전별) |
| Lambda 배포 패키지 (ZIP) | 50MB |
| Lambda 컨테이너 이미지 | 10GB |
| SQS 메시지 최대 크기 | 256KB |
| SQS 최대 보존 기간 | 14일 |
| SQS Long Polling 최대 | 20초 |
| SQS 가시성 타임아웃 기본 | 30초 |
| S3 단일 PUT 최대 | 5GB |
| S3 멀티파트 최대 | 5TB |
| S3 오브젝트 최대 크기 | 5TB |
| EBS 최대 볼륨 크기 | 64TB (io2 Block Express) |
| RDS 자동 백업 보존 | 최대 35일 |
| EC2 기본 메트릭 수집 간격 | 5분 |
| EC2 상세 모니터링 간격 | 1분 |
| DynamoDB 항목 최대 크기 | 400KB |
| Kinesis 샤드당 입력 | 1MB/s, 1,000건/s |
| Kinesis 샤드당 출력 | 2MB/s |
| Kinesis 기본 보존 | 24시간 (최대 365일) |
| Aurora 최대 스토리지 | 128TB |
| Aurora 읽기 복제본 최대 | 15개 |
| Aurora Global Database 복제 지연 | 리전 간 비동기 복제, 실제 지연은 워크로드·리전에 따라 확인 |
| Aurora Global Database 복구 시간 | 설계·장애 조치 절차로 목표 RTO 검증 |
| Redshift 노드당 최대 스토리지 | 16TB (ra3.16xlarge) |
| CloudTrail 기본 보존 | 90일 (장기 보관은 S3) |
| Route 53 Health Check 간격 | 10초 or 30초 |
6. 시험 직전 체크리스트
반드시 구분해야 할 서비스 쌍
- RDS Multi-AZ (고가용성)와 읽기 복제본 (읽기 확장)
- SQS (큐)와 SNS (팬아웃), EventBridge (이벤트 라우팅)
- CloudFront (HTTP 콘텐츠 전달)와 Global Accelerator (네트워크 경로 최적화)
- CloudTrail (API 감사)과 Config (리소스 구성·준수 평가)
- Kinesis Data Streams (재처리 가능한 스트림)과 SQS (작업 큐)
- DMS (데이터베이스 이전)와 AWS Transform MGN (서버 이전)
- DataSync (온라인 데이터 이동)와 Data Transfer Terminal (물리 시설 전송)
- Storage Gateway (지속적 하이브리드 접근)와 DataSync (파일 이동·동기화)
- Pilot Light (핵심 구성 대기)와 Warm Standby (축소된 전체 스택)
- Reserved Concurrency (동시성 상한·예약)와 Provisioned Concurrency (사전 초기화)
- SCP (계정 권한 상한)와 IAM 정책 (주체 권한 부여)
- Shield Standard (기본 보호)와 Shield Advanced (추가 보호·요금)
- Secrets Manager (비밀 관리)와 SSM Parameter Store (파라미터 저장)
- EFS (공유 파일 시스템)와 EBS (블록 스토리지)
- Aurora (지원 엔진과 고가용성 옵션 확인)와 RDS (관리형 관계형 DB)
설계 원칙 핵심 3줄
느슨한 결합 (Loose Coupling): SQS·SNS로 서비스 간 직접 의존 제거
수평 확장 (Scale Out): 단일 대형 서버 대신 여러 소형 서버 + Auto Scaling
장애 설계 (Design for Failure): 모든 컴포넌트가 장애날 수 있다고 가정하고 설계
7. 마무리
20편에 걸쳐 AWS SAP 시험의 전 영역을 다뤘다.
01. 글로벌 인프라
02. IAM & 보안
03. VPC 네트워킹
04. EC2 & 스토리지
05. 고가용성 & Auto Scaling
06. 데이터베이스
07. S3 & 스토리지 서비스
08. 고급 네트워킹
09. 보안 서비스 심화
10. 모니터링 & 운영 자동화
11. 서버리스 아키텍처
12. 컨테이너 서비스
13. 마이그레이션 & 전송
14. 하이브리드 아키텍처
15. 재해 복구 & 비즈니스 연속성
16. 비용 최적화
17. 멀티 계정 & 조직 관리
18. 분석 서비스
19. Well-Architected Framework
20. 시험 단골 시나리오 & 치트시트
서비스 이름을 외우는 것만으로는 제약 조건이 겹친 문제를 풀기 어렵다. 데이터 위치, 복구 목표, 운영 부담, 비용을 먼저 표시한 뒤 각 선택지가 그 조건을 어떻게 만족하는지 비교한다. 최신 기능과 한도는 공식 문서에서 다시 확인한다.