Programming

[AWS, Certified Developer Associate] Kinesis Data Firehose, Kinesis Data Analytics

Kinesis Data Firehose

  • 생산자로부터 데이터를 읽어와 특정 데이터에 대해 Lambda를 통해 데이터 변환 후 도착지에 배치성 쓰기 실행
  • 도착지 1 - AWS 도착지
    • S3 / RedShift / ElasticSearch
  • 도착지 2 - 써드파티 도착지
    • Datadog / Splunk / NewRelic / MongoDB 등
  • 도착지 3 - 커스텀 도착지
    • HTTP EndPoint
  • 데이터를 모든 도착지에 보내면 2개 옵션 존재
    • 모든 데이터를 S3 버킷에 보내 백업
    • 도착지에서 쓰기 실패한 데이터를 실패 버킷에 보관
  • 완전 관리형 서비스 (관리기능 X, 오토스케일링, 서버리스)
  • Firehose를 통하는 데이터에 대해서만 비용 지불
  • 실시간에 가까운 서비스
  • 다양한 데이터 형식, 변환, 압축 지원
  • 람다를 통해 자체 데이터 변환 생성 가능

 

Kinesis Data Streams vs Firehose

  • KDS 
    • 데이터를 대규모로 수집하는 스트리밍 서비스
    • 생산자 / 소비자 관련 자체 사용자 정의 코드 작성
    • 실시간 (200ms or 70ms)
    • 샤드 분할/병합 등 스케일링 자체적으로 관리
    • 데이터 저장은 1 ~ 365일
    • 같은 스트림에서 여러 소비자 읽기 가능
    • 리플레이 기능 제공
  • KDF
    • 데이터를 S3, RedShift, ES, 써드파티, custom HTTP에 스트리밍 하기 위한 수집 서비스
    • 완전 관리형으로 관리할 서비스가 없음
    • 실시간에 근접
    • 오토 스케일링 지원
    • 리플레이 기능 미제공



 

 

Kinesis Data Analytics

  • for SQL Applications
    • 완전 관리형 서비스 
    • KDS or KDF로부터 데이터를 받아옴
    • S3에서 참조데이터를 가져오거나 분석을 위한 SQL 구문 실행
    • 데이터를 두가지 방식으로 다양한 목적지로 보냄
      • KDS에 보냄 / KDF에 보냄
    • 시분할 분석 / 실시간 대시보드 / 실시간 측정 등에 사용
  • for Apache Flink
    • Flink 어플리케이션은 KDA 전용 클러스터에서 백그라운드로 실행
    • Apache Flink를 통해 KDS or AWS MSK로부터 데이터 얻어옴
    • 해당 서비스를 통해 AWS의 클러스터에서 아파치 Flink 어플리케이션 구동 가능
    • 고급쿼리 처리 / 다른 KDS, MSK로부터 데이터 읽어들이는 작업에 사용
    • 자원 계산에 대한 프로비저닝 가능 / 병렬 계산 / 자동 스케일링
    • Firehose에서 데이터를 읽어오려면 for SQL을 사용해야함

 

 


Reference

Udemy - AWS Certified Developer Associate 시험 합격을 위한 모든 것!