작성 요령
livepack-v4-issues.md또는livepack-v4-issues-pending.md에서 결정 완료된 항목을 이동받는 문서- 번호는 이 문서의 마지막 번호 +1로 순서대로 부여
- 이동 시 결론/결정 사항을 요약 포함
| MediaLive | IVS | CF Stream | |
|---|---|---|---|
| 녹화 | S3 HLS .ts |
S3 HLS .ts |
CF 내부 HLS |
| MP4 다운로드 | 별도 변환 필요 | 미지원 (HLS만, MP4 변환 파이프라인 필요) | /downloads API (자동, 무료) |
| 녹화 비용 | S3 비용 | S3 비용 | $5/1,000분 |
플레이어 → couscous-api (API Gateway /api/liveWatches)
→ Kinesis Data Stream (wcdAnalytics-Livepack-PlayLive-Play-V3)
├→ Flink (analytics-liveplay-flink) : 10초 윈도우 집계 → DynamoDB upsert
├→ couscousRealtimeLiveWatches2 (Firehose Transform Lambda) : DynamoDB put_item + peak(mvc/muvc) 추적
└→ Firehose → S3 (Parquet, Athena 배치 분석용)
DynamoDB LiveWatchesManager 컬럼:
| 컬럼 | 설명 | 갱신 주체 |
|---|---|---|
key |
beid (PK) | Flink / Lambda |
chid |
채널 ID | Flink / Lambda |
cvc |
동시 시청자 (세션 기준) | Flink (upsert) + Lambda (put_item) |
cuvc |
고유 시청자 (유저 기준) | Flink (upsert) + Lambda (put_item) |
mvc |
최대 동시 시청자 | Lambda (기존값과 비교, max 유지) |
muvc |
최대 고유 시청자 | Lambda (기존값과 비교, max 유지) |
ttl |
TTL (만료 시각) | Lambda |
e |
이벤트 타입 | Flink ('I') |
조회 API:
couscousRealtimeLiveWatchesAPI Lambda (/api/viewer/{beid})cvc, cuvc (TTL 유효 시), mvc, muvc (항상) 반환플레이어 → API Gateway (/api/liveWatches)
→ Kinesis Data Stream (wcdAnalytics-Livepack-PlayLive-Play-V4) [신규]
├→ Flink (analytics-liveplay-flink-v4) : 10초 윈도우 집계 → DynamoDB (LiveWatchesManager-V4) upsert
└→ Firehose (wcdAnalytics-Livepack-PlayLive-Firehose-V4) → Lambda Parser → S3 (Parquet)
변경사항:
LiveWatchesManager-V4 테이블 추가analytics-liveplay-flink 기반 PyFlink 앱beid별 COUNT(DISTINCT _id) = cvc, COUNT(DISTINCT uid) = cuvcGET /api/analytics/viewer?event_id={beid}LiveWatchesManager-V4에서 cvc, cuvc 조회event_id 포함isLive) 감지 시 10초 폴링 시작, 종료 시 폴링 중지| 항목 | 설명 | 비고 |
|---|---|---|
| peak (mvc/muvc) 추적 | V3는 couscousRealtimeLiveWatches2 Lambda가 DynamoDB put_item 시 max 비교로 추적. V4는 아직 미구현 |
Firehose Transform Lambda(AnalyticsParser)에 peak 로직 추가 또는 별도 Lambda 필요 |
| TTL 관리 | V3는 Lambda가 ttl 설정 (CONSTANT_SECONDS=40초). V4 Flink는 TTL 미설정 |
cvc/cuvc 유효성 판단에 필요 |
| CMS 4카드 표시 | V3는 동시시청자/최대동시시청자/순시청자/최대순시청자 4개. V4는 현재 2개(cvc/cuvc)만 표시 | peak 구현 후 4카드로 확장 |
v3 DB live_couscous_call_history |
호출 이력 관리 테이블. V4 미구현 | 필요 여부 검토 |
| Provider | 월 비용 공식 |
|---|---|
| CF Stream | $1.68N |
| IVS Advanced HD | $23.70 + $3.48N |
| IVS Standard | $55.80 + $6.975N |
| MediaLive+CF | $180.27 + $1.50N |
LiveDeliveredTime (시청 초) 기반minutesViewed (시청 분) 기반