[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 

Kinesis는 Kafka의 AWS 버전입니다 . pub/sub 모델의 특징으로, 데이터의 consume 여부와 관계없이 지정한 retention time만큼 데이터를 저장합니다 .
즉 , 대규모 데이터의 실시간 처리를 위한 스트리밍 데이터 수집 서비스 입니다 .
솔루션 아키텍트 시험에서 다루는 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별로 원하는 메시지를 보낼 수 있습니다.