본문 바로가기

혼자하는 프로젝트/KinesisDataStreams_Firehose

AWS KinesisDataStreams와 AWS KinesisFirehose를 이용한 아파치 로그 데이터 수집 저장 (1)

# AWS KinesisDataStreams와 AWS KinesisFirehose를 이용한 아파치 로그 데이터 수집/저장 하는 방법

- 기본 아키텍처

- Amazon Kinesis Data Streams는 데이터를 실시간으로 수집하고 수집된 데이터를 저장하여 데이터 분석이 가능하도록 실시간으로 제공한다.

- 구현 방법 : Producer는 지속적으로 Amazon Kinesis Data Streams에 지속적으로 데이터를 push 한다. Counsumer는 실시간으로 데이터를 처리한다.

- 용어 설명
Shard: Stream에서 고유하게 식별되는 데이터 레코드 시퀀스
Stream은 1개 이상의 Shard로 구성되며 각 Shard는 고정된 용량을 제공, Stream의 총 용량은 해당 Shard의 용량의 합계가 된다. 만약 데이터 속도가 증가하면 Stream에 할당된 Shard 수를 늘리거나 줄일 수 있다. 이것을 리샤딩 이라고 한다.

Kinesis Firehose: Amazon Kinesis Firehose는 데이터를 저장소 또는 분석 도구에 로드한다. 
S3, Redshift, ES, Splunk 등의 서비스로 전송할 수 있다.
Amazon Kinesis Firehose의 옵션을 이용하여 데이터 변환이 가능하며, 변환된 데이터를 S3 버킷에 저장 할 수 있다.

Kinesis Firehose를 이용하여 스트리밍 데이터를 S3 버킷으로 전송하는 프로세스는 아래와 같다.

- 추가로 Amazon Kinesis Data Streams에 데이터를 수집 및 캡쳐하는 방법으로는 Kinesis Agent를 활용하는 방법과 API, Kinesis Producer 라이브버리 및 람다를 활용 할 수 있다.

- 다음 단계에서 실제 데이터를 수집 및 저장하는 과정에 대해서 알아보자.