brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 04. 2022

6탄-3. 데이터 분석 실시간으로 처리하기

03. 데이터 분석 실시간으로 처리하기: Kinesis Data Stre

데이터를 실시간 분석할 때 사용하는  Kinesis Data Streams과 MSK를 알아보자.


<1> 배치 서비스 알아보자

<2> 스트림 데이터 처리

<3> 실시간  분석 시스템 주요 요소

<4>  MSK 모니터링할 것

<5>  Kinesis Data Streams 모니터링할 것

<6> 성능 향상법

<7>  Kinesis Data Streams    VS  MSK

<8> 개인 정리




<1> 배치 서비스 알아보자


데이터 소스 -------- 배치 처리  데이터 스토리지 ---------- 배치 프로세스 ------ 배치 뷰 ------------ 소비자


데이터 소스를 가진다

데이터 스토리지를 가진다

배치 프로세싱을 한다. - 시간별 또는 일별로 통계 계산이나 데이터 가공 작업을 한다.

결과를 소비자가 소비할 수 있도록 저장한다.

소비자가 있다.



<2> 스트림 데이터 처리


1

배치 처리?

데이터 소스 -----스트림 인제스천----- 스트림 스토리지-------스트림 딜리버리------ 배치 처리  데이터 저장소 --------- 배치 프로세스 ------ 배치 뷰 ------------ 소비자



2

실시간 처리?

데이터 소스 -----스트림 인제스천----- 스트림 스토리지-----스트림 프로세스-------리얼타임 뷰-----소비자


실시간으로 처리해주는 스트림 프로세스 = 스피드 레이어라고 한다.



<3> 실시간  분석 시스템 주요 요소


1

데이터 소스 -----스트림 인 제스천(데이터 수집)----- 스트림 스토리지-------스트림 프로세스(실시간 분석)----------데이터 레이크


2

Kinesis Data Streams과 MSK는 스트림 스토리지 역할을 한다.

Kinesis Data Streams vs MSK에서는 소비자가 데이터를 읽었다고 해서 삭제하지 않음

한번 소비된 데이터를 계속해서 반복적으로 읽을 수 있다.


3

MSK는   글루, 람다, 키네시스 데이터 어 넬리 티스 등  일부  AWS 서비스와 같이 사용 가능

Kinesis Data Streams은 대부분은 AWS 서비스와 같이 사용 가능




<4>  MSK 모니터링할 것


1

중개인, 주키퍼 모니터링 필요


2

프로듀서가 빠르게 생산 , 컨슈머가 빠르게 처리하는지 확인이 필요


3

중개인은 EC2  이기 때문에  데이터가 들어갈 때 네트워크 패킷 드롭 모니터링 필요. 대역폭도 모니터링 필요.


4

MSK는 데이터를 디스크에 저장하므로 디스크 Full  모니터링 필요


5

중개인이  토픽을 얼마나 가지고 있는지 확인 필요.  파일로 존재하기 때문에  max openfile  개수에 도달해 장애가 발생할 수 있다.


6

클라우드 와치로 모니터링 하자.




<5>  Kinesis Data Streams 모니터링할 것


1

실제로 볼 수 있는 것은   스트림과 샤드의 개수 정보만 볼 수 있다.


2

API 사용 주의?

Put레코드의 경우  초당 샤드당 1MB 만 가능 , 1000개의 레코더만 가능

Get 레코드당 초당, 샤드당 10MB ,  한  API 호출당 1만 건의 데이터만 읽어 갈 수 있다.

하나의 샤드에 대해 초당 5번의 리드만 가능하다.


3

샤드 내에 레코드들이 얼마나 처리하지 못하고 대기하는지 모니터링이 필요하다.

클라우드 와치로 모니터링 하자.

GetRecords.IteratorAgweMiliseconds  은 데이터 소비량이 수집량 보다 뒤처지고 있다는 지표이다.

컨슈머가 읽지를 못하거나  초당 5번 리드만 가능한 거로 인한 제약이므로 샤드수를 추가해서 이슈를 해결해야 한다.



<6> 성능 향상법


MSK  , Kinesis Data Streams  성능을 높여 보자.


1

MSK?

여러 가지 Scaling 방법을 사용하자.


2

 Kinesis Data Streams?

샤드수를 늘려 데이터 처리량을 증가시키자.




<7>   Kinesis Data Streams    VS  MSK


1

Kinesis Data Streams 이 운영 부담이 적다. 

상세 설정은 적다.


2

Kinesis Data Streams  온디맨드 서비스 출시됨.   

용량을 예측할 수 없는 경우 좋은 서비스이다.


3

MSK는 상세 설정이 가능하다. 

운영 부담은 키네시스 보다 크다.


4

MSK 운영 부담을 줄이기 위해  MSK 서버리스가 출시되어있다!




<8> 개인 정리


MSK  , Kinesis Data Streams  모니터링 지표들을 확인하고 모니터링 하자!!

MSK  , Kinesis Data Streams  성능 향상법 참고 하자




https://brunch.co.kr/@topasvga/2439



감사합니다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari