1. 개념
- 프로듀서로부터 데이터를 가져오고 처리 후 전송 가능한 완전 관리형 서버리스 서비스
- 애플리케이션
- 클라이언트
- SDK, KPL
- Kinesis Agent
- Kinesis Data Stream
- Amazon CloudWatch (Log & Event)
- AWS IoT
- 여러 수신처에 데이터 전송 가능
- AWS - S3, Redshift, OpenSearch (암기!)
- 3rd-party partner - Datadog, splunk, New Relic, mongoDB
- Custom - HTTP endpoint
- Firehose를 통하는 데이터에 대해서만 비용 청구
- 근 실시간 (Near Real Time)
- batch를 사용하기 때문
- 전체 batch가 아닌 경우 최소 60초의 지연 시간 발생
- 한 번에 최소 1MB의 데이터가 쌓일 때까지 대기
- 여러 데이터 형식, 전환, 변환, 압축 지원
- Lambda를 통해 자체적인 데이터 변환 가능
2. vs Kinesis Data Stream
Kinesis Data Stream
- 대규모 데이터 수집 시 사용하는 스트리밍 서비스
- 프로듀서와 컨슈머에 대한 커스텀 코드 작성 가능
- 실시간
- 약 70ms ~ 200ms 정도의 지연 시간 발생
- 용량 직접 조정 가능
- 샤드 분할 또는 병합을 통해 용량 또는 처리량 조정 가능
- 제공한 용량만큼 비용 지불
- 1일 ~ 365일 간 데이터 저장 가능
- 반복 기능 지원
Kinesis Data Firehose
- 데이터 수집 시 사용하는 서비스
- 수집된 데이터를 S3, Redshift, OpenSearch, 서드파티 파트너, 자체 HTTP 엔드포인트로 스트리밍
- 완전 관리형 서비스
- 서버리스
- 근 실시간 (Near Real Time)
- 자동 용량 조절
- Kinesis Data Firehose를 통하는 데이터에 대한 비용만 지불
- 반복 기능 미지원