Kinesis Stream/Analytics 사용 및 요금

Kinesis 는 Stream, Analytics, Firehose 등이 있습니다.  우선 요금을 보면,
Kinesis Stream의 요금을 보면, 미국서부(Oregon 리전)을 기준으로

요금
샤드 시간(초당 1MB 수신, 초당 2MB 송신) $0.015
PUT 페이로드 유닛, 1백만 개 유닛당 $0.014
데이터 보존 기간 연장(최대 7일), 샤드 시간당 $0.020

*샤드 1개는 초당 최대 1,000개의 레코드
*PUT 페이로드 단위는 25KB로 45KB처리시 2개의 페이로드 유닛으로 계산됩니다.
*데이터 보존 기간은 기본 1일에서 최대 7일 까지 가능하며, 시간당 청구됩니다.
*Amazon Kinesis 스트림에서 레코드를 가져오는 것, 데이터 전송요금은 무료입니다.

 

Kinesis Analytics의 요금을 보면, 미국서부를 기준으로

시간당 Kinesis 처리 단위 (KPU) 시간당 0.110 USD
(메모리 4GB, 컴퓨팅 1vCPU 및 해당 네트워킹 기능으로 구성된 스트림 처리 용량)

 

Kinesis Firehose의 요금을 보면, 미국서부를 기준으로

요금
Data Ingested, per GB $0.035

 

Kinesis는 Best Practice에서 Real time 처리 및 분석, 짧은 기간의 정보저장에 사용되는데요, 역시 실전에 강하신 우리 KRUG그룹에 계신 이야기를 한 번 들어보겠습니다.
( AWSKRUG SLACK 채널의 대화를 한 번 정리해 보았습니다 )

A: 얼핏 보기엔 Kinesis는 트래픽에따라 샤드를 관리해줘야하고, SQS는 트래픽에 따라 관리해주는게 없이 알아서 처리되는것같은데… 그럼 SQS가 좀더 좋아보이는(?)데… 다들 Kinesis를 쓰시는게 … 이유가 있겠죠?

B: 데이터 처리를 lambda로 할때 SQS는 batch로 데이터 꺼내는걸 수동으로 해줘야 해서 Kinesis 스트림을 사용합니다. SQS에서 데이터를 뽑아 Lambda로 처리할때 자동으로 해주는게 없어서 1분에 한번씩 Lambda로 SQS 큐를 체크하는식으로 해야하는데요, KinesisStream의 경우 처리할 데이터가 들어올때마다 Lambda를 호출하는 이벤트 기능이 Lambda에 내장되어있습니다. 또, 처리하는 부분을 EC2인스턴스 같은게 아닌 위에 말한 Kinesis Analytics 나 Firehore 같은 아마존에서 관리하는 서비스로 처리 가능하다는거죠(S3, Redshift, Elasticsearch)~

C: Kinesis가 받은 데이터를 일정기간동안 보관해주는 기능이 있습니다. Kinesis Analytics를 통한 SQL쿼리로 검색도 되고요. (검색보다는 분석을 위해서 필터링)

D: SQS 는 좀 더 “메세지” 전달에 중요한것 같고..Kinesis 가 좀 더 “버퍼” 에 가까울 것 같습니다.로그 같은걸 쌓을 때 키네시스를 쓰는 이유는 24시간동안 저장하고, 체크포인팅을 하는것도 있고, 키네시스 뒤에 컨슈머를 n 개 붙일수도있어서 그렇지 않을까요? 저희는 SQS 같은 경우에는 “Task=Message” 단위로, 서버 모듈들 간에 통신할때 사용합니다.

역시 ..  KRUG분들 대단하십니다^^

 

 

Advertisements