Amazon Data Firehose란 무엇인가요?

Amazon Data Firehose란 무엇인가요?

Amazon Data Firehose는 실시간 스트리밍 데이터를 다양한 목적지로 전달하기 위한 완전관리형(fully managed) 서비스예요. 전달할 수 있는 목적지는 Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Apache Iceberg Tables, 그리고 커스텀 HTTP endpoint이나 Datadog·Dynatrace·LogicMonitor·MongoDB·New Relic·Coralogix·Elastic 같은 서드파티 제공자가 소유한 HTTP endpoint이 포함돼요.

여기서 중요한 건 애플리케이션을 작성하거나 리소스를 관리할 필요가 없다는 것이에요. 데이터 프로듀서가 Firehose로 데이터를 보내도록 설정하면, Firehose가 지정한 목적지로 자동으로 전달해요. 전달하기 전에 데이터를 변환(transform)하도록 구성할 수도 있어요.

출처: 공식문서

본문

핵심 개념 먼저 알아두기

  • Firehose stream — Amazon Data Firehose의 기반 엔터티예요. Firehose stream을 만들고 그 stream으로 데이터를 보내는 방식으로 서비스를 사용해요.
  • Record — 데이터 프로듀서가 Firehose stream으로 보내는 관심 데이터예요. record는 최대 1,000 KB까지 커질 수 있어요.
  • Data producer — record를 Firehose stream으로 보내는 주체예요. 예를 들어 로그 데이터를 Firehose stream으로 보내는 웹 서버가 바로 data producer죠. 기존 Kinesis data stream에서 자동으로 데이터를 읽어 목적지로 로드하도록 Firehose stream을 구성할 수도 있어요.
  • Buffer size와 buffer interval — Firehose는 목적지로 전달하기 전에 유입되는 스트리밍 데이터를 일정 크기 또는 일정 시간만큼 버퍼링해요. Buffer Size는 MB 단위, Buffer Interval은 초 단위예요.

Firehose에서 데이터가 흐르는 방식

목적지 유형에 따라 흐름이 조금씩 달라져요.

  • Amazon S3 목적지 — 스트리밍 데이터가 S3 버킷으로 전달돼요. 데이터 변환(transformation)을 켜면 원본 데이터를 별도의 S3 버킷에 백업할 수도 있어요.
  • Amazon Redshift 목적지 — 스트리밍 데이터를 먼저 S3 버킷으로 전달한 뒤, Firehose가 Amazon Redshift COPY 명령을 실행해 S3 버킷에서 Redshift 클러스터로 데이터를 로드해요.
  • Splunk 목적지 — 스트리밍 데이터가 Splunk로 전달되고, 선택적으로 동시에 S3 버킷으로 백업될 수 있어요.

더 알아보기