Amazon Kinesis Data Streams란 무엇인가요?

Amazon Kinesis Data Streams란 무엇인가요?

Amazon Kinesis Data Streams를 쓰면 방대한 양의 데이터 레코드 스트림을 실시간으로 모아 처리할 수 있어요. 이때 데이터를 처리하는 애플리케이션을 만들 수 있는데, 이걸 Kinesis Data Streams application이라고 불러요. 전형적인 형태는 data stream에서 data record를 읽어 들이는 애플리케이션이죠. 이런 애플리케이션은 Kinesis Client Library를 쓸 수 있고, Amazon EC2 인스턴스 위에서 실행할 수 있어요.

처리한 레코드는 대시보드로 보내 새 alert를 만드는 데 쓸 수도, 가격이나 광고 전략을 동적으로 바꾸는 데 쓸 수도, 다양한 다른 AWS 서비스로 보내는 데 쓸 수도 있어요.

출처: 공식문서

본문

Kinesis Data Streams는 Kinesis 스트리밍 데이터 플랫폼(Kinesis streaming data platform)의 일부로, Firehose, Kinesis Video Streams, Managed Service for Apache Flink와 함께 쓰여요.

Kinesis Data Streams로 무엇을 할 수 있나요?

빠르고 연속적인 데이터 유입(data intake)과 집계(aggregation)에 쓸 수 있어요. 여기 쓰이는 데이터 유형은 IT 인프라 로그, 애플리케이션 로그, 소셜 미디어 피드, 시장 데이터 피드, 웹 클릭스트림(clickstream) 데이터 같은 것들이에요. 데이터 유입과 처리의 응답 시간이 짧아서 실시간으로 흘러가는 데이터를 그대로 다룰 수 있죠.

구체적으로는 이런 일들을 할 수 있어요.

  • 가속화된 로그·데이터 피드 유입과 처리(Accelerated log and data feed intake and processing) — 프로듀서가 스트림에 데이터를 바로 밀어 넣어요. 시스템 로그나 애플리케이션 로그를 푸시하면 몇 초 안에 처리할 수 있게 되고, 프론트엔드나 애플리케이션 서버가 실패해도 로그 데이터를 잃지 않죠. 서버 쪽에서 데이터를 배치로 먼저 모은 뒤 제출하지 않으니 그만큼 유입이 빨라져요.
  • 실시간 지표와 보고(Real-time metrics and reporting) — Kinesis Data Streams에 모인 데이터로 실시간으로 간단한 데이터 분석과 보고를 할 수 있어요. 배치 데이터를 기다리는 대신, 데이터가 흘러들어오는 동안 지표와 보고를 바로 처리할 수 있죠.
  • 실시간 데이터 분석(Real-time data analytics) — 병렬 처리의 힘과 실시간 데이터의 가치를 합친 거예요. 예를 들어 웹 클릭스트림을 실시간으로 처리하고, 여러 Kinesis Data Streams application을 병렬로 돌려 사이트 이용성과 참여도를 분석할 수 있어요.
  • 복잡한 스트림 처리(Complex stream processing) — Kinesis Data Streams application과 data stream의 DAG(Directed Acyclic Graph)를 만들 수 있어요. 보통 여러 Kinesis Data Streams application의 데이터를 다른 스트림에 넣고, 그걸 또 다른 애플리케이션이 하위 처리하는 구조로 연결하죠.

Kinesis Data Streams 사용의 이점

Kinesis Data Streams의 특징과 가격에 대한 자세한 내용은 Amazon Kinesis Data Streams 페이지를 확인해 보시면 좋아요.

더 알아보기