대용량 스트리밍 데이터를 수집하고, 처리 및 분석할 수 있다. 이를 통해, 데이터를 실시간 처리해 S3와 같은 스토리지에 저장한 후, 다양한 일괄 처리를 할 수 있다.
데이터 생산자 -> 스트리밍 서비스 -> 데이터 소비자의 순으로 데이터 처리가 이루어진다.
지속적인 데이터 생성이 가능하며 스트림으로 지속적인 데이터가 쓰여진다. 또한 무엇이든 대상이 될 수 있기에 데이터를 생성하기 유용하다.
내구성있게 데이터가 저장되어야하며 데이터 준비를 위해 임시적인 버퍼 공간을 제공한다.
지속적으로 데이터를 처리하는 것을 말한다. 정리, 준비, 집계 등의 일을 진행하며 데이터를 정보로 전환한다.
4가지의 서비스가 있고 각 특징마다 서비스가 나뉜다.
producer인 웹 페이지, 어플리케이션 등에서 스트리밍 데이터를 data stream으로 실시간으로 게속해서 보내면, 여러 consumer(ec2 인스턴스 등)에서 실시간으로 데이터를 처리하는 아키텍처.
이후 kinesis firehose를 통해 s3와 같은 저장소에 저장할 수도 있음. 그리고 아래의 4가지로 구성된다.
Kinesis Stream에 저장되는 단위(시퀀스 번호 + 파티션 키 + 데이터 BLOB(변경 불가능한 바이트 시퀀스)로 구성됨.
Shard : data stream에서 고유하게 식별되는 레코드 시퀀스 -> 스트림은 하나 이상의 샤드로 구성되며 샤드는 고정된 용량을 제공함
Partition Key : 스트림 내의 샤드 별로 데이터를 그룹화 하는 데 사용함 -> 이를 통해 레코드가 보내질 샤드를 구분함.
Sequence Number : 각 데이터 레코드에는 샤드 내에 파티션-키마다 고유한 Sequence number가 있음.
Kinesis 시리즈들을 이용하여 실습 진행할 예정.