[AWS] Kinesis Data Stream
2023. 7. 26. 09:57ㆍDevops/AWS
https://jeidiiy.notion.site/Kinesis-Data-Stream-30222268fb354385b7ca6b2d31dd1553?pvs=4
💡노션에 최적화된 글입니다. 링크를 통해 접근할 수 있습니다.
- 대규모 데이터 흐름을 다루는 서비스
1. 개념
샤드
- 여러 개의 샤드로 구성. 서비스 시작 전 프로비저닝해야 함
- 데이터 수집률 또는 소비율 측면에서 스트림 용량 결정
프로듀서
- 애플리케이션, 데스크탑, 휴대폰, SDK, KPL 등
- 매우 낮은 수준에서 SDK에 의존하여 Kinesis Data Stream에 레코드 전달
송신 레코드 구성요소
- 파티션 키: 레코드가 이용할 샤드를 결정하는 데 사용
- 데이터 블롭: 데이터 값 자체. 최대 1MB
생산 유형
- 초당 1MB 또는 샤드 당 1초에 1,000개의 메시지 전송 가능
컨슈머
- KCL, SDK에 의존하는 애플리케이션, Lambda, Kinesis Data Firehose, Kinesis Data Analytics
수신 레코드 구성요소
- 파티션 키
- 시퀀스 번호: 샤드 내에서 레코드의 위치를 나타내는 값
- 데이터 블롭
소비 유형
- 샤드 당 1초에 2MB의 처리량. 모든 컨슈머가 공유
- 컨슈머마다 샤드 당 1초에 2MB의 처리량
2. 특징
- 1일 ~ 365일 사이의 보존 기간 설정 가능
- 데이터 재처리 및 재확인 가능
- Kinesis로 데이터가 들어오면 삭제 불가 (불변성)
- 데이터 스트림으로 메시지 전송 시 파티션 키가 추가되고 같은 파티션 키를 가진 메시지들은 같은 샤드로 들어감
- 키를 기반으로 데이터 정렬 가능
3. 용량 모드
1. 프로비저닝 모드
- 프로비저닝할 샤드 수 결정 및 API 활용을 수동으로 하는 모드
- 각 샤드당 1초에 최대 1MB 또는 1,000개의 레코드 입력 가능
- 각 샤드당 1초에 최대 2MB 출력 가능 (일반적인 소비 유형 또는 Fan out 방식에 적용 가능)
⚠️ 샤드를 프로비저닝할 때마다 시간당 비용이 부과되므로 충분히 고민해야 한다.
2. 온디맨드 모드
- 프로비저닝 또는 용량 관리를 자동으로 하는 모드
- 시간에 따라 용량 조정
- 기본적으로 초당 4MB 또는 4,000개의 레코드 처리
- 지난 30일 동안 관측한 최대 처리량에 기반하여 자동 조정
- 시간당 스트림당 송수신 데이터량(GB 단위)에 따라 비용 부과
💡 사용량을 예측할 수 없는 경우 온디맨드 모드가 적합하다.
4. 보안
- IAM 정책을 사용한 접근 제어 및 인가
- HTTPS를 사용한 전송 중 암호화
- KMS를 사용한 미사용 암호화
- 클라이언트 측 암호화 및 복호화 제공
- VPC 내에서 Kinesis에 대한 접근을 위해 VPC 엔드포인트 사용 가능
- CloudTrail을 통한 모든 요청 감시 가능
'Devops > AWS' 카테고리의 다른 글
[AWS] Kinesis Data Firehose (0) | 2023.07.26 |
---|---|
[AWS] Amazon SNS (0) | 2023.07.26 |
[AWS] Amazon SQS (0) | 2023.07.26 |
[AWS] AWS DataSync (0) | 2023.07.04 |
[AWS] AWS Transfer Family (0) | 2023.07.04 |