CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
  • Week 1
    • 1.개발자 시점에서 본 AWS: 리전, 인프라, 그리고 책임의 경계
    • 2.IAM의 4대 엔터티: User, Group, Role, Policy
    • 3.STS와 정책 조건: 임시 자격증명의 깊은 세계
    • 4.AWS CLI와 SDK: 자격증명 체이닝부터 SigV4까지
    • 5.Week 1 종합: 인프라와 IAM이 만드는 신뢰의 사슬
  • Week 2
  • Week 3
  • Week 4
    • 1.API Gateway REST API: 요청이 백엔드에 도달하기까지의 전체 경로
    • 2.API Gateway 통합 유형과 VTL 매핑 템플릿: Lambda 없이 DynamoDB를 직접 호출하기
    • 3.API Gateway 보안·캐싱·스로틀링: SigV4부터 Token Bucket까지 요청이 통제되는 방법
    • 4.WebSocket API와 HTTP API: 실시간 연결과 경량 프록시의 내부 동작
    • 5.Week 4 복습: API Gateway 종합 시나리오로 실전 감각 다지기
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
  • Week 13
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← DVA-C02/Week 4/Day 5

기준: DVA-C02 시험 가이드·오류 제보

DVA-C02· AssociateWeek 4 · Day 5읽기 약 21분

Day 5 - Week 4 복습: API Gateway 종합 시나리오로 실전 감각 다지기

Week 4에서 다룬 API Gateway는 단순한 HTTP 프록시가 아니다. REST API, HTTP API, WebSocket API라는 세 가지 독립적인 제품군이 서로 다른 패러다임을 구현하며, 각각 다른 인증 방식, 통합 유형, 성능 특성을 가진다. 이번 복습에서는 개별 개념의 재확인보다 경계 케이스와 선택 판단에 집중한다. DVA-C02는 "어떤 서비스를 쓸까"보다 "왜 이 설정이 틀렸는가", "이 오류가 발생하는 근본 원인은 무엇인가"를 묻는다. 아래 시나리오 문제들은 실제 시험에서 출제되는 방식과 같은 복합 조건 형태로 구성했다.


Week 4 전체 스펙 레퍼런스

API Gateway 세 가지 유형 완전 비교

기능REST APIHTTP APIWebSocket API
프로토콜HTTP/1.1HTTP/1.1RFC 6455 WebSocket
통신 방향요청-응답요청-응답양방향
비용(100만 호출)~$3.50~$1.00연결 시간 + 메시지 수
Lambda Proxy 통합✅✅✅
VTL 매핑 템플릿✅❌❌
AWS Service 직접 통합✅❌❌
MOCK 통합✅❌❌
IAM 인증✅✅✅
Lambda Authorizer✅✅✅($connect만)
Cognito User Pool Authorizer✅❌❌
JWT Authorizer❌✅❌
API Key + Usage Plan✅❌❌
Resource Policy✅❌❌
mTLS✅✅❌
WAF✅(직접)❌(CF 우회)❌
응답 캐싱✅❌❌
Request Validation✅❌❌
Gateway Response 커스터마이즈✅❌❌
X-Ray Tracing✅❌❌
Canary Deployment✅❌❌
VPC Link 백엔드NLB만ALB/NLB/CloudMap❌
CORS 자동 설정❌(수동)✅N/A
Payload FormatLambda Proxy 형식v1.0 또는 v2.0(기본)별도

인증 방식 선택 매핑

시나리오권장 인증 방식
AWS Lambda/EC2가 다른 계정 API 호출IAM + SigV4
외부 OAuth2 / 자체 JWT 검증Lambda Authorizer (TOKEN)
헤더 + 쿼리 + 경로 복합 검증Lambda Authorizer (REQUEST)
Cognito User Pool 사용자 (REST API)Cognito User Pool Authorizer
Cognito/Auth0/Okta JWT (HTTP API)JWT Authorizer
파트너 API 사용량 추적 + 할당량API Key + Usage Plan
VPC 내부에서만 접근 허용Resource Policy (SourceVpce)
IP 화이트리스트Resource Policy (SourceIp)
교차 계정 API 접근Resource Policy (Principal ARN)
IoT 디바이스, B2B 파트너 인증mTLS
SQL 인젝션·XSS 방어WAF (REST API만 직접)

통합 유형 선택 매핑

시나리오통합 유형
Lambda를 가장 단순하게 연결AWS_PROXY (Lambda Proxy)
Lambda 응답을 변환해서 클라이언트에 전달AWS (non-Proxy) + 응답 매핑
DynamoDB/SNS/SQS 직접 호출 (Lambda 없이)AWS (non-Proxy) + VTL
외부 HTTP 서버 프록시HTTP_PROXY
외부 HTTP 서버 + 응답 변환HTTP + 응답 매핑
개발/테스트용 하드코딩 응답MOCK

주요 CloudWatch 메트릭 정리

메트릭측정 대상활용
Latency클라이언트 수신 ~ 응답 반환 (전체)전체 성능 모니터링
IntegrationLatencyAPI GW → 백엔드 호출 ~ 응답백엔드 성능 분리
Count총 API 호출 수트래픽 추세
4XXError400·401·403·429 등 클라이언트 오류오용·인증 실패·스로틀링 탐지
5XXError500·502·503·504 등 서버 오류백엔드 장애·타임아웃 탐지
CacheHitCount캐시에서 응답한 횟수캐시 효율성
CacheMissCount백엔드 호출이 필요했던 횟수캐시 효율성

Latency - IntegrationLatency가 크면 API GW 내부 처리(인증·VTL·캐시 조회)가 병목. IntegrationLatency 자체가 크면 백엔드가 느린 것.


Week 4 핵심 함정 목록

  1. 배포(Deploy) 없으면 변경이 적용되지 않는다: REST API에서 리소스, 메서드, 통합, Authorizer를 변경해도 스테이지에 재배포하지 않으면 반영되지 않는다. HTTP API는 자동 배포된다.

  2. API 키는 인증이 아니다: x-api-key 헤더는 클라이언트 식별과 사용량 추적 목적이다. 보안 수단으로 오해하면 안 된다. API 키 단독으로는 인가(authorization)를 제공하지 않는다.

  3. Edge-Optimized API의 ACM 인증서는 반드시 us-east-1: Edge-Optimized 엔드포인트는 CloudFront를 통해 트래픽이 흐르므로, 커스텀 도메인의 SSL/TLS 인증서를 us-east-1 ACM에서 생성해야 한다. Regional/Private는 해당 리전 ACM.

  4. WAF는 REST API에만 직접 연결 가능: HTTP API에는 WAF Web ACL을 직접 연결할 수 없다. CloudFront를 앞에 두고 CloudFront에 WAF를 연결하는 우회 방법을 써야 한다.

  5. HTTP API Payload v2.0의 이벤트 구조가 다르다: httpMethod, resource, path 필드가 없다. 기존 REST API Lambda를 그대로 붙이면 KeyError 발생. payloadFormatVersion: "1.0"으로 설정하거나 코드를 수정해야 한다.

  6. Lambda Authorizer REQUEST 타입의 캐시 키를 명시해야 한다: 캐시 키를 지정하지 않으면 캐싱이 작동하지 않아 매 요청마다 Authorizer Lambda가 호출된다.

  7. Lambda Proxy 응답의 body는 반드시 문자열이어야 한다: json.dumps()를 호출해야 하며, dict 객체를 직접 넣으면 API Gateway가 직렬화하지 못한다.

  8. WebSocket $disconnect 실행이 보장되지 않는다: 네트워크 강제 종료 시 $disconnect가 실행되지 않을 수 있다. DynamoDB TTL로 stale 연결을 자동 정리해야 한다.

  9. WebSocket Idle Timeout 10분, Max Duration 2시간: 이 한도를 초과하면 연결이 강제 종료된다. 클라이언트는 Ping/Pong으로 idle timeout을 방지할 수 있다.

  10. 캐시 무효화(InvalidateCache)에 IAM 권한이 필요하다: 스테이지에서 requireAuthorizationForCacheControl을 활성화하면, execute-api:InvalidateCache 권한 없는 클라이언트가 Cache-Control: max-age=0을 보내도 403이 반환된다.

  11. CORS는 통합 유형에 따라 처리 주체가 다르다: Lambda Proxy에서는 Lambda가 직접 CORS 헤더를 반환해야 한다. AWS_PROXY에서 API Gateway는 자동으로 CORS 헤더를 추가하지 않는다. Gateway Response를 사용하면 API Gateway 자체 오류(4XX 포함)에도 CORS 헤더를 추가할 수 있다.

  12. DynamoDB 직접 통합 VTL에서 DynamoDB 타입 시스템을 처리해야 한다: DynamoDB 응답은 {"S": "value"}, {"N": "123"} 형식이다. VTL에서 이를 파싱해 클린 JSON으로 변환하지 않으면 클라이언트가 DynamoDB 내부 형식을 그대로 받는다.


DVA-C02 도메인 매핑

도메인관련 Week 4 주제비중
Domain 1: Development with AWS ServicesLambda Proxy 통합, VTL, DynamoDB 직접 통합32%
Domain 2: SecuritySigV4, Lambda Authorizer, Cognito Authorizer, Resource Policy, WAF, mTLS26%
Domain 3: Deployment스테이지, 카나리 배포, SAM 통합, Stage Variables24%
Domain 4: TroubleshootingLatency vs IntegrationLatency, 429/504/502 오류 원인, Authorizer 캐시18%

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

스타트업이 외부 파트너에게 API를 제공한다. 파트너 A는 월 10만 건, 파트너 B는 월 50만 건으로 API 호출을 제한해야 한다. 또한 파트너 B는 초당 100 요청, 파트너 A는 초당 20 요청으로 속도 제한이 필요하다. 가장 적절한 구성은?

문제 2

회사의 REST API Lambda 함수가 외부 결제 서비스에 의존한다. CloudWatch에서 5XXError가 증가하고 있으며, Latency는 29초에 가깝고 IntegrationLatency도 29초에 가깝다. 가장 가능성 높은 원인은?

문제 3

개발팀이 REST API에 DynamoDB 직접 통합(VTL)을 구현했다. API Gateway는 DynamoDB GetItem을 호출하고 응답을 클라이언트에 반환한다. 클라이언트 개발자가 응답이 {"Item": {"name": {"S": "홍길동"}, "age": {"N": "30"}}} 형식으로 오는 것에 불만을 제기했다. 어떻게 해결하는가?

문제 4

모바일 앱이 API Gateway REST API를 통해 데이터를 조회한다. Cognito User Pool로 인증한다. 같은 사용자가 동일한 데이터를 반복 조회할 때 Lambda 호출을 줄이고 싶다. 응답 캐싱을 설정했는데, 모든 사용자의 응답이 같은 캐시 값을 공유하는 문제가 발생했다. 원인과 해결책은?

문제 5

실시간 주식 거래 알림 시스템을 구축한다. 트레이더가 웹 브라우저에서 연결하면 서버가 가격 변동을 즉시 푸시해야 한다. 트레이더에서 서버로 메시지를 보낼 필요는 없다. 가장 적합한 아키텍처는?

문제 6

회사가 REST API에 WAF를 설정해 SQL 인젝션을 차단하려 한다. 그런데 일부 합법적인 요청도 차단된다. 팀은 차단된 요청의 패턴을 분석하고 WAF 규칙을 세밀하게 조정하고 싶다. 어떤 WAF 설정을 활성화해야 하는가?

문제 7

스타트업이 Next.js 백엔드 API를 AWS에 배포하려 한다. 각 API 경로를 별도 Lambda로 분리했으며, 요구사항은: (1) 낮은 비용, (2) Cognito 기반 JWT 인증, (3) 자동 CORS 설정, (4) 커스텀 도메인. 가장 적합한 API 유형은?

문제 8

Lambda Authorizer(TOKEN 타입, TTL 300초)를 사용하는 API가 있다. 보안팀이 특정 사용자의 JWT 토큰을 즉시 무효화해야 한다는 요청을 했다. 토큰은 아직 만료되지 않았다. 가장 빠른 방법은?

문제 9

WebSocket API 기반 실시간 채팅에서 특정 채팅방에 있는 사용자들에게만 메시지를 브로드캐스트해야 한다. DynamoDB에 연결 레지스트리가 있다. 가장 효율적인 DynamoDB 조회 방법은?

문제 10

팀이 API Gateway HTTP API와 Lambda 통합을 사용한다. 기존 Lambda 코드는 REST API에서 작동하던 코드로, event["requestContext"]["identity"]["sourceIp"]로 클라이언트 IP를 읽는다. HTTP API로 전환 후 해당 코드에서 오류가 발생한다. 근본 원인과 해결책은?

Week 4 자기 평가

문제 유형포함 문제재학습 필요 시
인증 방식 선택1, 8Day 18
통합 유형·VTL3Day 17
캐싱·스로틀링4, 1Day 18
실시간 통신 설계5, 9Day 19
API 유형 선택7Day 16, 19
트러블슈팅 (메트릭)2Day 18
WAF·보안6Day 18
Payload Format10Day 19
점수평가
9-10API Gateway 완전 이해. Week 5로 진행
7-8우수. 틀린 문제의 Day 파일을 재확인
5-6양호. Week 4 Day 16-19 함정 목록 재숙지
3-4보통. Day 16-19 전체 재학습 권장
0-2Week 4 처음부터 재학습 필요
이전WebSocket API와 HTTP API: 실시간 연결과 경량 프록시의 내부 동작Week 4 · Day 4다음 S3: 객체 스토리지의 철학과 스토리지 클래스 설계Week 5 · Day 1

참고 공식 자료

  • DVA-C02 공식 시험 안내(새 탭에서 열림)
  • AWS Lambda 공식 문서(새 탭에서 열림)
  • Amazon API Gateway 공식 문서(새 탭에서 열림)
  • Amazon DynamoDB 공식 문서(새 탭에서 열림)
  • AWS WAF · Shield 공식 문서(새 탭에서 열림)
  • Amazon Cognito 공식 문서(새 탭에서 열림)

이 페이지

  • Week 4 전체 스펙 레퍼런스
  • API Gateway 세 가지 유형 완전 비교
  • 인증 방식 선택 매핑
  • 통합 유형 선택 매핑
  • 주요 CloudWatch 메트릭 정리
  • Week 4 핵심 함정 목록
  • DVA-C02 도메인 매핑
  • 시나리오 연습 문제 (10문제)
  • Week 4 자기 평가