[AWS] Kinesis Data Stream

2023. 7. 26. 09:57Devops/AWS

https://jeidiiy.notion.site/Kinesis-Data-Stream-30222268fb354385b7ca6b2d31dd1553?pvs=4 

 

Kinesis Data Stream

대규모 데이터 흐름을 다루는 서비스

jeidiiy.notion.site

💡노션에 최적화된 글입니다. 링크를 통해 접근할 수 있습니다.
  • 대규모 데이터 흐름을 다루는 서비스

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