[AWS] Amazon Kinesis 알아보기

운영중인 서비스가 점차 커진다면 대용량의 실시간 데이터를 수집, 처리 및 분석할 수 있도록 구성해야됩니다. 별도의 데이터 처리 서버를 구성할 수 있겠지만 확장성 및 실시간 모니터링 등 데이터 처리에 필요한 기능을 구현해야 하므로 어려움이 많습니다. AWS에서는 클라우드 기반 데이터 스트리밍 플랫폼인 Amazon Kinesis를 사용하여 대용량의 실시간 데이터를 수집, 처리 및 분석할 수 있습니다.

 

 


주요 기능

Amazon Kinesis의 주요 기능은 크게 4가지로 구성되어 있습니다.

  • Kinesis Video Streams
    • 비디오 스트림 캡처, 처리 및 저장
  • Kinesis Data Streams
    • 데이터 스트림 캡처, 처리 및 저장
  • Kinesis Data Firehose
    • 데이터 스트림 AWS 데이터 스토어로 로드
  • Kinesis Data Analytics
    • SQL 또는 Apache Flink로 데이터 스트림 분석

 

Kinesis Video Streams

Kinesis Video Streams는 동영상 스트림을 쉽게 처리하고 저장하기 위한 기능입니다.
IoT 디바이스나 카메라에서 생성되는 동영상 스트림을 실시간으로 수집하고 처리할 수 있습니다. 또한 동영상 데이터를 압축하고 인코딩하며, 실시간으로 스트리밍하거나 저장할 수 있는 인프라를 제공합니다.

 

 

Kinesis Data Streams

Kinesis Data Streams은 대량의 실시간 데이터 스트림을 처리하고 분석하기 위한 기능입니다.
데이터 스트림은 하나 이상의 샤드로 구성되며, 각 샤드는 데이터의 순서를 보장하고 병렬 처리가 가능합니다. 데이터를 수집한 후 필요한 처리를 수행하거나 다른 AWS 서비스와 연동하여 사용할 수 있습니다.

 

 

Kinesis Data Firehose

Kinesis Data Firehose는 스트림 데이터를 처리하여 다양한 대상으로 전달하는 역할을 합니다.
데이터를 Amazon S3, Amazon Redshift, Amazon Elasticsearch 등과 같은 저장소나 분석 도구로 전달할 수 있습니다. 또한 데이터 전달 과정을 자동으로 관리하므로 개발자는 데이터 전달 파이프라인을 구축하고 관리하는데 시간을 절약할 수 있습니다.

 

 

Kinesis Data Analytics

Kinesis Data Analytics는 SQL 쿼리를 사용하여 스트림 데이터를 실시간으로 분석하는 데 사용됩니다.
데이터 스트림에서 생성된 실시간 데이터를 실시간으로 데이터를 가공하고, 패턴을 발견하며, 실시간 대시보드를 생성할 수 있습니다. 또한 SQL 쿼리를 통해 분석하면서 시각화 및 모니터링에 활용할 수 있습니다.

 

 


장단점

Amazon Kinesis는 강력한 실시간 데이터 스트리밍 및 처리 플랫폼이지만, 사용 시 고려해야 할 장점과 단점이 있습니다.

 

장점

  1. 실시간 데이터 처리: 대량의 실시간 데이터를 처리하고 분석하는데 탁월한 성능을 제공합니다.
  2. 확장성: 데이터 스트림을 여러 샤드로 나누어 처리할 수 있으며, 필요에 따라 확장하여 데이터 처리의 확장성을 보장하면서도 성능을 유지할 수 있습니다.
  3. 다양한 데이터 유형 처리: 웹사이트 로그, 센서 데이터, 애플리케이션 로그 등 다양한 소스의 데이터 유형을 처리할 수 있습니다.
  4. 간편한 데이터 파이프라인 구축: 간편하게 데이터 파이프라인을 쉽게 구축하고, 데이터 변환과 전달을 자동으로 관리하므로 개발자는 데이터 이동에만 집중하면 됩니다.
  5. 실시간 분석 및 모니터링: 실시간으로 데이터를 분석하고 모니터링할 수 있습니다.
  6. 다양한 대상으로의 전달: 데이터를 다양한 AWS 서비스 및 저장소로 전달할 수 있습니다.

 

단점

  1. 복잡성: 대규모 애플리케이션에서는 설정 및 구성 과정이 다소 복잡해질 수 있습니다.
  2. 비용: 데이터 처리량 및 스트림의 크기에 따라 과금되므로, 대규모 데이터 처리 시 비용이 증가할 수 있습니다.
  3. 모니터링 및 디버깅: 대용량 데이터 처리 시 모니터링 및 디버깅이 복잡해질 수 있습니다.
  4. 서비스 의존성: AWS 서비스에 의존성이 높아지므로, AWS 서비스가 불안정한 경우 영향을 받을 수 있습니다.

 

 


비용

Amazon Kinesis의 비용은 사용되는 리소스와 데이터 처리량에 따라 다를 수 있습니다

 

Kinesis Data Streams

데이터 샤드 수: 가장 큰 비용 요소는 데이터 샤드 수입니다. 데이터 샤드 수가 많을수록 비용이 증가합니다.
데이터 샤드 시간당 비용: 각 데이터 샤드당 시간당 비용이 부과됩니다.

 

Kinesis Data Firehose

전송량: 전송된 데이터 양에 따라 비용이 부과됩니다. 데이터 전송량이 많을수록 비용이 증가합니다.
전송 시간당 비용: 데이터 전송 시간당 비용이 부과됩니다.

 

Kinesis Data Analytics

처리량: 처리되는 데이터 양에 따라 비용이 부과됩니다. 처리량이 많을수록 비용이 증가합니다.
처리 시간당 비용: 처리된 시간당 비용이 부과됩니다.

 

 


활용

 

웹 사이트 모니터링 및 분석

모바일 서비스 발전에 따라 모바일에서 어플이나 웹 사이트를 통해 다양한 서비스를 이용하고 있습니다.
어플이나 웹 사이트에서 생성되는 로그 데이터를 수집하고 분석하여 성능, 사용자 동작, 에러 등을 실시간으로 모니터링 및 분석할 수 있습니다. 실시간 대시보드 및 경고 시스템을 구축하여 웹사이트의 상태를 실시간으로 파악하고 개선할 수 있습니다.

 

금융 거래 감지 및 분석

결제, 입출금, 주식 거래 등 실시간으로 많은 수의 금융 거래가 실시간으로 계속 발생되고 있습니다.
금융 거래 데이터를 실시간으로 처리하여 부정 거래나 신용카드 사기 등을 감지할 수 있습니다.
또한 금융 거래의 이상 패턴을 실시간으로 분석하여 신속하게 대응할 수 있습니다.

 

게임 분석

온라인 게임에서는 실시간으로 다른 플레이어들과 상호작용을 하면서 다양한 게임 플레이를 진행합니다.
온라인 게임에서 생성되는 사용자 데이터를 실시간으로 분석하여 게임 플레이, 플레이어 상호작용, 성과 등을 추적하고 게임 개선에 활용할 수 있습니다.

 

 

 

Amazon Kinesis를 통해 대용량의 실시간 데이터를 유연하게 처리해보시기 바랍니다.
지금까지 Amazon Kinesis를 알아보는 시간이었습니다....! 끝...!

 

 

 

[Reference]

 

 

 

+ Recent posts