Please enable JavaScript to view the comments powered by Disqus.AWS Kinesis data stream Terminology 아마존 kinesis 용어정리
Search
📡

AWS Kinesis data stream Terminology 아마존 kinesis 용어정리

태그
AWS
Queue
Kinesis
공개여부
작성일자
2022/09/30
회사에서 AWS의 Kinesis를 사용하게 되어 이에 대한 용어를 더 편리하게 해석해보았다. 이 용어들을 이해하다보면 kinesis의 컨셉이 어느정도 이해가 될 것이다.

Kinesis concept

Kinesis Data Stream

Shards 의 집합이다.
각각의 Shard는 data record의 순서를 갖고 있다.
각각이 데이터는 kinesis data stream 에서 할당하는 sequence number를 갖는다.

Data record

Kinesis data stream에 저장되는 데이터 이다.
Sequence number, partition key, data blob 의 component가 immutable 한 component로 구성
이 각각의 데이터는 inspect, interpret, change 가 되지 않는다.
Data blob 은 최대 1MB 이다.

Capacity mode

on-demand mode
필요한 throughput 에 알맞게 managed 된다.
워크로드 처리량에 따라 알아서 증가, 감소
provisioned mode
Data stream 에서 사용할 shard 의 숫자를 특정해야 한다.
전체 capacity의 data stream은 shard의 숫자를 합한 값이다.

Retention period

Stream에 저장된 후에 data record 가 남아있는 시간을 의미한다.
Default 는 24시간이며, 365일 까지 연장할 수 있다.
비용에 당연히 밀접하다.

Producer

Kinesis에 data를 집어넣는 객체이다.

Consumer

Kinesis에서 data stream을 가져오고, 처리한다.
대표적으로 EC2 instance에서 이를 수행할 수 있다.

Amazon Kinesis Data Streams Application

Kinesis의 data stream을 소비하여 어떠한 작업을 하는 것을 뜻한다. 대표적으로 EC2 instance에서 구동한다.
두 가지 type의 consumer 가 있는데 shard fan-out consumer와 enhanced fan-out consumer 가 있으며
다른 stream 에서 input을 할 수도 있으며, 이를 통해 복잡한 구조에서 실시간으로 데이터를 처리한다.
또한, 다양한 AWS service로 데이터를 전송할 수 있다.
여러개의 application 이 하나의 stream을 볼 수도 있으며, 각각의 application 이 독립적으로, 동시에 stream을 처리할 수도 있다.

Shard

Stream에서 고유하게 식별되는 data record sequence 이다.
Stream은 하나 혹은 그 이상의 으로 구성되어 고정된 capacity를 갖는다.
각 shard는 읽기에 대해 최대 1초에 5번 읽기, 2MB 읽기를 수행할 수 있다.
각 shard는 쓰기에 1초에 1MB 1000개 records까지 write 할 수 있다. (파티션 키가 포함되어)
Stream의 data 용량은 stream에 지정한 shard 수의

Partition Key

Partition key는 stream 안에 있는 shard 기준으로 group화 하는데 사용된다.
KDS는 stream 에 소속된 data record는 여러개의 shard에 분포된다.
Partition key를 통해서 어떤 shard에 포함된 data record 인지 확인할 수 있다.
Unicode 문자열, 256 length 가 limit
MD5로 해싱되었으며 128-bit integer value 로 hash ring에 할당.
Data를 stream에 저장할 때 이 값이 특정된다.

Sequence number

각각의 data record 는 shard 안에서 유일하게 식별하는 sequence number를 갖는다.
KDS는 각 client.putRecords 시점에 sequence number를 할당하낟.
시간에 따른 증가