10/10 — 이벤트·스트리밍·데이터 이동

이 구간은 사건 발생 → 전달 → 실행·오케스트레이션 → 연속 처리 → 이동·변환을 서로 다른 단계로 본다.

1. 단순 정의

  • SNS와 EventBridge: SNS는 topic fan-out, EventBridge는 JSON 내용 routing이 중심이다.
  • S3 Event와 Lambda: 객체 사건을 받아 짧은 사용자 코드를 실행하는 조합이다.
  • Step Functions: 작업의 순서·분기·재시도·대기를 state machine으로 관리한다.
  • Kinesis Data Streams(KDS): 레코드를 shard에 보존해 여러 consumer가 읽는 스트림이다.
  • Managed Flink와 Data Firehose: Flink는 상태 있는 연속 연산, Firehose는 buffered delivery를 맡는다.
  • DMS·DataSync·Glue: 각각 DB와 변경, 파일·객체, metadata와 ETL을 다룬다.

2. 결정 축과 관계

첫 번째 축은 알림 의도다. Topic push fan-out은 SNS, 여러 출처의 JSON pattern routing은 EventBridge가 중심이다. Consumer별 작업 보존은 SQS, 순서 계약은 SQS FIFO나 KDS 같은 downstream에 둔다. SNS·SQS·EventBridge 선택

두 번째 축은 코드인가, 업무 흐름인가다. 새 객체의 짧은 코드는 S3 Event → Lambda, 기존 객체 manifest의 동일 작업은 S3 Batch Operations다. 분기·Retry/Catch·wait·callback은 Step Functions Standard, 짧고 많은 멱등 흐름은 Express에 맞는다. Event는 객체 정보만 전하므로 handler가 읽는다. 처리 ID를 기록하고 같은 key의 PUT/DELETE 순서는 sequencer로 비교한다. S3 Event 형식, S3 Batch Operations, Workflow 유형

세 번째 축은 보존·연산·적재다. 재처리·다중 consumer는 KDS에 보존한다. 같은 partition key는 같은 shard에 모여 shard 순서로 소비하고 sink는 재시도를 멱등 처리한다. Window·aggregate·state는 Flink, buffered destination delivery는 Firehose가 맡는다. 적재만 필요하면 producer에서 Firehose로 바로 보낸다. KDS 개념, 중복 처리, Managed Flink, Data Firehose

네 번째 축은 데이터 모델이다. DB의 기존 행과 변경은 DMS full load + CDC로 반영하고 latency와 validation 뒤 전환한다. NFS·SMB·object storage와 AWS storage 사이의 파일 이동은 DataSync task가 전송·검증한다. Glue crawler는 schema·partition metadata를 Catalog에 만들고, Glue job은 raw data를 변환해 target에 쓴다. DMS full load와 CDC, DataSync, Glue 개념

마지막 축은 단계별 관측값이다. SQS backlog, Lambda concurrency, KDS lag, Flink checkpoint, Firehose error, DMS CDC latency, Glue job 상태를 나눠 보면 병목 단계가 보인다.

3. 아키텍처 적용

사례 A — 사건에서 업무 완료까지

주문 → EventBridge → Step Functions Standard → 서비스 작업 → SNS → 사용자 알림·SQS로 잇는다. 각 계층은 선별, 업무 상태, fan-out을 맡는다.

사례 B — 상태 있는 실시간 분석 결과 적재

생성자 → KDS(key=deviceId) → Flink(window·aggregate) → Firehose → S3에서 KDS는 재처리, Flink는 상태 연산, Firehose는 결과 적재를 맡는다.

사례 C — 낮은 중단 이전과 데이터 레이크 준비

DB/log → DMS task → RDS는 full load 뒤 CDC latency·validation을 보고 전환한다. on-prem NFS → DataSync agent/task → S3 raw로 옮긴다. Crawler가 schema를 Catalog에 기록하고 Glue job은 이를 참조해 raw → curated로 변환한다.

4. 정답 구조

  • 동일 메시지 다중 구독 → SNS → push fan-out
  • 여러 출처의 내용 routing → EventBridge → pattern과 target
  • 객체별 사용자 코드 → S3 Event + Lambda → event 실행
  • 분기·대기·callback → Step Functions Standard → 상태 workflow
  • 재처리·다중 consumer·shard 순서 → KDS + partition key → retained stream
  • window·집계·연속 상태 → Managed Flink → stateful 연산
  • 지원 목적지 적재 → Data Firehose → buffered delivery
  • DB 행·지속 변경 → DMS full load + CDC → 전환 전 동기화
  • 파일·객체 이동 → DataSync → 전송·무결성 검증
  • schema·partition 발견 → Glue crawler + Data Catalog → metadata
  • batch 정제·변환 → Glue ETL job → target 처리

5. 긍정형 암기표

요구사항의 중심올바른 연결
동일 메시지의 다중 구독SNS
여러 출처 JSON event의 내용 routingEventBridge
S3 객체별 짧은 코드S3 Event + Lambda
상태·분기·대기·callbackStep Functions Standard
보존·재처리·shard 순서Kinesis Data Streams
window·집계·연속 상태Managed Service for Apache Flink
지원 목적지로 buffer 적재Amazon Data Firehose
DB 기존 행 + 지속 변경DMS full load + CDC
NFS·SMB·object 전송DataSync
schema metadata / batch 변환crawler·Data Catalog / Glue ETL job

다음: 계획된 10개 학습 구간은 여기서 끝난다. 다음에는 01~10의 결정 축을 한 장의 서비스 흐름으로 연결하고, 공식 문제는 사용자가 요청할 때까지 보류한다.