AWS - Kinesis(1) : 개요

이윤택·2022년 8월 25일
0

인프라

목록 보기
9/11

AWS Kinesis란?

실시간으로 대용량 스트리밍 데이터를 수집하고, 처리 및 분석할 수 있는 서비스

스트리밍 데이터 처리 패턴

스트리밍 데이터 처리의 Usecase 크게 3가지로 나눌 수 있다

1. ELT

  • 분석 도구에 신속하게 데이터 전달
    ex) S3에 로그 데이터 수집

2. 지속적인 지표 생성

  • 데이터가 생성될 때 분석 수행
  • 실시간 데이터 출력 가능
    ex) 시계열 데이터 분석

3. 반응형 분석

  • 분석 결과에 빠르게 반응
    ex) 쇼핑몰 사이트의 추천 알고리즘, 이상 행동 감지

AWS Kinesis

Kinesis는 기능에 따라 3개의 서비스로 나뉜다

  • Kinesis Data Stream
  • Kinesis Data Firehose
  • Kinesis Data Analytics

1. Kinesis Data Stream

  • 실시간으로 데이터 스트림을 수집 및 저장
  • 샤드 수를 조절하여 스트림을 얼마나 받을지 조절 가능
  • 구성
    • Data record : Kinesis stream에 저장되는 단위(시퀀스 번호 + 파티션 키 + 데이터 BLOB)로 구성
      • BLOB : 변경 불가능한 바이트 시퀀스
    • Shard : Data stream에서 고유하게 식별되는 레코드 시퀀스
      • 스트림은 하나 이상의 샤드로 구성되며, 샤드는 고정된 용량 제공
    • Partition key : 스트림 내의 샤드 별로 데이터를 그룹화하는 데 사용
      • 레코드가 보내질 샤드 구분
    • Sequence Number : 데이터 레코드에는 샤드 내에 파티션 - 키 마다 고유한 sequence number 존재
  • 목적지
    • Kinesis Data Analytics
    • Spark on EMR
    • EC2
    • Lambda

2. Kinesis Firehose

  • 미리 정의된 목적지에 데이터를 안전하게 전달하는 것이 주목적
  • 스트리밍 데이터를 갭처해 로드할 수 있고, 압축, 처리, 변환 기능을 제공하여 편리하다
  • Lambda를 이용하여 가공하는 작업 또한 가능
  • 목적지
    • S3
    • ElasticSearch
    • Amazon Redshift
    • HTTP Endpoint

Kinesis Data Stream vs Firehose

  • Data stream은 Low Latency Streaming Service이고, Firehose는 Data Transfer Service 이다
  • Data stream은 길게는 일주일까지 데이터를 잠시 저장할 수 있지만, Firehose는 Transfer이기 때문에 저장할 수 없다
  • Data stream은 수집, Firehose는 전달
profile
데이터 엔지니어로 전향중인 백엔드 개발자입니다

0개의 댓글