Kinesis + Lambda IteratorAgeMilliseconds 높음 — 샤드 증가 · 병렬화 인자 · Enhanced Fan-Out으로 해결
AWS DEA-C01 시험에 자주 나오는 Kinesis + Lambda 스트리밍 성능 문제입니다. IteratorAgeMilliseconds가 피크 시간대에 높아지는 원인을 진단하고, 샤드 수 증가 · 병렬화 인자(Parallelization Factor) 튜닝 · Enhanced Fan-Out 등록으로 해결하는 방법을 예약 동시성·프로비저닝 동시성과 비교하여 도식으로 정리합니다.
📋 문제
회사가 Amazon S3 데이터 레이크를 운영하며 Amazon Kinesis Data Streams로 데이터를 수집하고 AWS Lambda로 스트림 데이터를 읽어 처리한다. 수집 데이터 볼륨이 매우 가변적이어서 예측할 수 없다.
피크 시간대에 IteratorAgeMilliseconds 지표가 높게 나타난다. 데이터 엔지니어는 Lambda로 Kinesis Data Streams를 읽을 때 성능을 높이는 솔루션을 설계해야 한다.
다음 중 요구 사항을 충족하는 솔루션은 무엇인가? (3개 선택)
🔍 핵심 개념 — IteratorAgeMilliseconds란?
🏗️ 현재 아키텍처 — 병목 지점
(볼륨 가변적)
Data Streams
폴링 처리
⚠️ 지연 발생
데이터 레이크
✅ 정답 3가지 — 처리 병렬성 증가 전략
- 샤드 = Lambda 동시 실행 단위
- 샤드 1개 → Lambda 인스턴스 1개
- 샤드 10개 → 최대 10개 병렬
- 쓰기 1MB/s, 읽기 2MB/s per shard
- 비용 증가하나 처리량 직접 확장
- 샤드당 Lambda 1~10개 동시 실행
- 기본값: 1 (샤드당 1개)
- 최대: 10 (샤드당 10개 병렬)
- 샤드 추가 없이 처리량 최대 10배↑
- 최적값은 테스트로 확인 필요
- 전용 2MB/s 읽기 처리량 per shard
- 기본 공유 읽기: 2MB/s 전체 공유
- Push 방식 (HTTP/2)
- 폴링 지연 없이 즉시 전달
- 다수 Lambda 소비자에 적합
📊 솔루션별 Lambda 처리 처리량 비교 (샤드 5개 기준)
📡 기본 폴링 vs Enhanced Fan-Out 비교
기본 폴링 방식
• 공유 읽기 2MB/s (샤드당 전체 공유)
• 소비자가 많을수록 처리량 분산
• Pull 방식: Lambda가 주기적으로 폴링
• IteratorAge 증가 가능성 높음
Enhanced Fan-Out ⭐
• 전용 2MB/s per shard per consumer
• 소비자 수 증가해도 처리량 유지
• Push 방식: HTTP/2로 즉시 전달
• 지연 최소화 (IteratorAge↓)
❌ 오답 — Lambda 동시성 설정이 IteratorAge를 해결 못하는 이유
E. 예약 동시성 (Reserved Concurrency)
목적: Lambda 함수에 최대 동시 실행 수를 예약·제한하는 기능
문제: IteratorAge는 읽기 처리량 부족이 원인인데,
예약 동시성은 다른 함수가 이 동시성을 사용하지 못하게 막는 것일 뿐
Kinesis 읽기 속도를 높이지 못함
오히려: 동시성을 제한하면 성능이 악화될 수도 있음
F. 프로비저닝 동시성 (Provisioned Concurrency)
목적: Lambda 인스턴스를 미리 워밍업하여 콜드 스타트 지연 제거
문제: IteratorAge는 콜드 스타트가 원인이 아니라
Kinesis 스트림 읽기 처리량 부족이 원인
결론: 콜드 스타트 없애도 처리 병렬성 자체가 늘지 않아 IteratorAge 미해결
📝 선택지 해설
정답: A + B + D
IteratorAge가 높다 = Kinesis 읽기 처리량 병목이 핵심 진단입니다. 해결 방향은 처리 병렬성 증가입니다. A는 샤드 자체를 늘려 Lambda 인스턴스를 추가하고, B는 샤드당 Lambda를 10배까지 늘리며, D는 전용 읽기 처리량을 확보하고 Push로 지연을 제거합니다. E·F(동시성 설정)는 Lambda 실행 환경 최적화이지 Kinesis 읽기 처리량과 무관합니다.
📊 선택지 비교 요약
| 선택지 | 조치 | 처리 병렬성 증가 | IteratorAge 해결 | 결론 |
|---|---|---|---|---|
| A ⭐ | 샤드 수 증가 | ✅ 샤드당 Lambda 1개씩 추가 | ✅ 직접 해결 | 정답 |
| B ⭐ | 병렬화 인자 튜닝 | ✅ 샤드당 최대 10개 | ✅ 직접 해결 | 정답 |
| C | 프로비저닝 용량 모드 | ❌ 처리량 변화 없음 | ❌ 미해결 | 탈락 |
| D ⭐ | Enhanced Fan-Out | ✅ 전용 2MB/s + Push | ✅ 직접 해결 | 정답 |
| E | 예약 동시성 | ❌ 읽기 속도 무관 | ❌ 미해결 | 탈락 |
| F | 프로비저닝 동시성 | ❌ 콜드 스타트만 해결 | ❌ 미해결 | 탈락 |
'Stack > AWS' 카테고리의 다른 글
| [AWS DEA] 문제로 공부하기 14 - SQS 대기열 메시지 제거 (0) | 2026.03.14 |
|---|---|
| [AWS DEA] 문제로 공부하기 13 - Macie + EventBridge (0) | 2026.03.14 |
| [AWS DEA] One Page Study Guide (ChatGPT vs. Gemini vs. Claude (0) | 2026.03.13 |
| [AWS DEA] 문제로 공부하기 11 - 유지 기간 연장 + DLQ 연결 (0) | 2026.03.11 |
| [AWS DEA] 문제로 공부하기 10 - Lake Formation (0) | 2026.03.11 |