[AWS] AWS의 메세징 서비스 분석
AWS의 메세징 서비스 분석
Soultion Architect 시험을 준비하면서 AWS의 메세징 서비스들의 종류와 각각의 특징 및 목적등을 알아보았습니다.대표적으로 3가지의 메세징 서비스가 있습니다 .
- Kinesis
- SQS
- SNS
Messaging Broker?
Messaging Broker는 서버에서 다른 서버의 DB를 가져올때 sync call을 이용해 바로 가져오는 것이아닌 중간에 텀을두는 것입니다 . 만약 Messaging Broker가 없다면 한 서버에 장애가 생겼을때 아무런 이벤트를 받지 못합니다 .
Messaging Broker에는 두가지 방식이 있습니다
- Queue 방식 : 메시지 큐에 넣어둔 메시지를 한번 consume하면 queue에서 삭제된다. point-to-point 방식이라고도 불린다.
- Topic 방식 : pub/sub 방식.
- Producer는 메시지를 publish한 이후, 그 데이터를 누가 얼마나 사용하던 신경쓰지 않는다. 많은 Consumer(Subscriber)가 붙어서 동시에 해당 데이터를 소비할 수 있다.
SQS
Queue 방식이며 메세지를 Pull 형태로 처리합니다 .
SQS에는 두가지 방식이 있습니다 .
- FIFO
- 메시지가 정확히 한 번 배달 되고 소비자 가 메시지를 처리하고 삭제할 때까지 계속 사용할 수 있도록 합니다. 중복은 대기열에 도입 되지 않습니다.
- Standard
- 적어도 한 번 배달되고 대기열에 중복 항목이 포함될 수 있음을 보장합니다.
메세지 순서에 따른 차이
- FIFO : 메시지는 "메시지 그룹"으로 그룹화되고 메시지 그룹 내의 모든 메시지는 엄격한 순서로 전송 및 수신됩니다.
- Standard : 메시지가 순서 없이 배달될 가능성이 있습니다.
처리량
- FIFO : 처리량에 대한 엄격한 임계값이 있습니다. FIFO 대기열은 일괄 처리를 사용하여 초당 최대 3000개의 메시지를 처리하거나 일괄 처리를 사용하지 않을 경우 초당 300개의 메시지를 처리할 수 있습니다.
- Standard : 사용할 수 있는 메시지의 양에 제한이 없으므로 거의 무제한의 처리량을 제공합니다.
SQS는 주문을 받아올때 (PULL) 사용합니다 .
받는 방식에 차이에서 FIFO 와 Standard 방식이 있으며 구성할때 설정하고 나면 변경할 수 없음으로 처음의 설정을 삭제하고 다시 생성해야합니다 .
Kinesis
즉 , 대규모 데이터의 실시간 처리를 위한 스트리밍 데이터 수집 서비스 입니다 .
솔루션 아키텍트 시험에서 다루는 3가지 주요 기능이 있습니다 .
- Kinesis Data Streams
- Kinesis Data Firehose
- Kinesis Data Analytics
Kinesis Data Streams
데이터 스트림 수집 및 저장하며 샤드의 수를 조절하여 스트림을 얼마나 받을지 조절할 수 있습니다.
Kinesis Data Firehose
데이터 스트림 처리 및 전송
Kinesis Data Analytics
스트리밍 데이터 분석
실시간 분석 생성 – 지표를 계산하고, Kinesis를 통해 Amazon S3 또는 Amazon Redshift로 전송합니다
실시간 대시보드 제공 – 집계 및 처리된 스트리밍 데이터 결과를 전송하여 실시간 대시보드를 구성합니다.
실시간 지표 생성 – 실시간 모니터링, 알림, 경보에 사용할 사용자 지정 지표와 트리거를 생성할 수 있습니다.
SNS
- 메시지를 Push 방식으로 처리합니다 . SQS에서 받아온 정보를 구독해서 사용자에게 알리는 역할을 합니다 .
- 여러 Subscriber에게 메시지를 전송할 수 있습니다
- 한 토픽 안에서도 Filter 기능을 제공해서 Subscriber별로 원하는 메시지를 보낼 수 있습니다.