Kinessis data streams
<aside>
<img src="/icons/boombox_yellow.svg" alt="/icons/boombox_yellow.svg" width="40px" />
설명

- 시릿간 데이터 처리가 가능한 데이터 저장소
- kinesis로 들어온 데이터는 삭제 불가능(불변성)
- 보존 기간은 1~365일 사이로 설정 가능
- 생산자(producers)
- AWS SDK, Kinesis Producer Library(KPL), Kinesis Agent를 사용하여 데이터를 전송할 수 있음
- 소비자(consumers)
- Kinesis Client Library(KCL)이나 SDK를 써서 직접 데이터를 작성할 수 있음
- managed
- AWS Lambda, Kenesis Data Firehose, Kenesis Data Analytics를 활용할 수 있음
구성 요소
-
Shard

- Data stream은 최소 1개, 최대 200개의 shard로 구성
- shard가 갯수가 증가할수록 소화 가능한 데이터의 양과 비용이 증가
-
Producing

- n개의 producer에서 데이터를 수신하면, 데이터들은 특정 Hash function을 거쳐 고유 record id를 부여, 부여받은 record들은 shard에 저장되고 cunsumer는 shard를 기준으로 데이터를 가져감
- cosumer는 data stream을 바라보는 것이 아닌 shard를 바라본다는 개념이 중요
-
Consuming
동작 예시
- Producer가 데이터를 전송 시 Data Stream이 전달 받음
- Data Steam 안 shard는 데이터를 분배 받음, 이후 머물어 있음
- 해당 데이터는 여러 소비자들에게 읽힘
- ex)
- 커머스 앱에 동시간대에 많은 이용자가 상품을 담고 결제하는 등 많은 이벤트가 발생하는 경우 데이터를 받아주는 곳이 data stream
</aside>