[AWS] Kinesis에 대해 알아보자

Joney의 SW 공부 블로그·2023년 7월 18일
0

AWS Kinesis

목록 보기
1/2

개요

  • Kinesis는 대용량 스트리밍 데이터를 수집하고, 처리 및 분석 가능한 AWS 서비스.
  • 데이터를 실시간 처리해 스토리지에 저장한 후, 다양한 처리가 가능

Kinesis 종류

Kinesis는 데이터 스트림의 실시간 수집, 처리, 분석 작업에 따라 4가지 서비스로 분류 된다.

  • Kinesis Data Streams
    • 데이터를 수집하여 일정 기간 동안 저장하는 내구성 있는 서비스
  • Kinesis Firehose
    • S3, redshift, elasticsearch 등의 스토리지로 데이터를 전송
    • 데이터 스트림을 저장하고는 있지만 데이터 전송이 주 목적
  • Kinesis Data Analytics
    • Kinesis Data Stream 또는 Firehose에 연결하여 SQL을 사용해 데이터 스트림 분석
    • 수행 결과를 다시 Data Stream 또는 Fireshose로 전송
  • Kinesis Video Streams
    • 분석을 위한 비디오 스트림 캡쳐 및 처리, 저장

Kinesis Data Stream

  • 대용량 데이터를 수집하여 기본 24시간 최대 8760시간(365일) 보존
    • 24시간이 기본값이면서 최소값이며, 24시간을 넘게 설정하면 추가 비용이 발생
  • 단일 레코드는 최대 1MB 처리 가능
  • 저장된 데이터를 애플리케이션에서 polling으로 읽어서 사용

주요 용어

  • 샤드
    • 스트림에서 고유하게 식별되는 데이터 레코드 시퀀스
    • 데이터 레코드를 여러 샤드에 나눠서 저장
    • 스트림은 하나 이상의 샤드로 구성되며, 샤드는 고정된 용량을 제공
    • 각 샤드는 최대 5TPS 읽기, 최대 2MB/s 읽기 속도 지원
    • 각 샤드는 1000개의 레코드, 최대 1MB/s 쓰기 속도 지원
    • 샤드의 총 용량 합계는 스트림의 총 용량
  • 파티션 키
    • 샤드별로 데이터를 그룹화 하기 위한 키
    • 각 데이터 레코드와 연결된 파티션 키를 사용하여 해당하는 샤드 확인
    • 애플리케이션이 스트림에 데이터를 쓰기 전에 파티션 키 지정 필요
  • 시퀀스 번호
    • 샤드 내의 파티션 키마다 고유한 번호

Kinesis Firehose

  • 스트리밍 데이터를 안정적으로 캡처하고 변환하여 데이터 레이크, 데이터 스토어, 분석 서비스에 전달하는 완전 관리형 ETL서비스
  • 스트리밍 데이터를 대상으로 전송하기 전에 특정 크기 또는 일정 기간 동안 버퍼링(Buffer Size, Buffer Interval 설정)

Data Stream과 Firehose 뭘 선택해야 하나

  • 실시간 데이터를 수집해서 처리한다는 점에서는 동일
  • Data Stream은 수집과 저장에 더 중점을 두고 있으며, Firehose는 처리 및 전송에 중점을 두고 있음
  • 이런 차이로 두 서비스의 처리 결과를 전송하는 대상이 달라짐
    • Data Stream
      • Firehose
      • EC2
      • Lambda
    • Firehose
      • S3
      • Redshift
      • Elasticsearch
profile
SW 지식 노트 블로그

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

훌륭한 글이네요. 감사합니다.

답글 달기