SQS
- 소비자가 SQS 대기열에서 메시지를 요청해서 데이터를 가져오는(pull) 모델이다.
- 데이터를 처리한 후 소비자가 대기열에서 삭제해서 다른 소비자가 읽을 수 없도록 해야 한다.
- 작업자와 소비자가 함께 소비하고 대기열에서 삭제하니깐 작업자나 소비자 수는 제한이 없다.
- 관리된 서비스이므로 처리량을 프로비저닝할 필요가 없고 아주 빠르게 수백 수천 개의 메시지로 확장할 수 있다.
- 순서를 보장하려면 FIFO 대기열 즉, 선입선출 대기열을 활성화해야 한다.
- 각 메시지에 지연 기능이 있어 30초 등 일정 시간 뒤에 대기열에 나타나도록 할 수도 있다.
SNS
- 게시/구독 모델로 다수의 구독자에게 데이터를 푸시하면 메시지의 복사본을 받게 된다.
- SNS 주제별로 1,250만 명의 구독자까지 가능하며 데이터가 한 번 SNS에 전송되면 지속되지 않는다. 즉, 제대로 전달되지 않는다면 데이터를 잃을 가능성이 있다.
- 게시-구독 모델은 최대 10만 개의 주제로 확장 가능하다.
- 처리량을 프로비저닝하지 않아도 되고, 원한다면 SQS와 결합할 수 있다.
- 팬아웃 아키텍처 패턴을 이용하면 SNS와 SQS를 결합하거나 SNS FIFO 주제를 SQS FIFO 대기열과 결합할 수 있다.
Kinesis
- 두 가지 소비 모드가 있다.
- 소비자가 Kinesis로부터 데이터를 가져오는(pull) 표준 모드는 샤드당 2MB/s의 속도를 지원한다.
- 향상된 팬아웃 유형의 소비 메커니즘에서는 Kinesis가 소비자에게 데이터를 푸시하며 샤드 하나에 소비자당 2MB/s의 속도가 나온다.
- 처리량이 훨씬 높을 테니 Kinesis 스트림에서 더 많은 애플리케이션 읽기가 가능하다. - Kinesis 데이터 스트림에서는 데이터가 지속되기 때문에 데이터를 다시 재생할 수 있다.
- 따라서 실시간 빅 데이터 분석, ETL 등에 활용된다.
- 샤드 레벨에서 정할 수 있어 미리 Kinesis 데이터 스트림마다 원하는 샤드 양을 지정해야 한다.
- 샤드를 직접 확장해서 데이터가 언제 만료될지 정한다. - 용량 모드
- 프로비저닝 용량 모드는 Kinesis 데이터 스트림으로부터 원하는 샤드 양을 미리 지정한다.
- 온디맨드 용량 모드에서는 샤드 수가 Kinesis 데이터 스트림에 따라 자동으로 조정된다.
'AWS(Amazon Web Service)' 카테고리의 다른 글
[AWS] AWS's containers (1) | 2024.12.01 |
---|---|
[AWS] AWS Integration & Messaging - Amazon MQ (0) | 2024.11.30 |
[AWS] AWS Integration & Messaging - Kinesis와 SQS FIFO에 대한 데이터 정렬 (0) | 2024.11.28 |
[AWS] AWS Integration & Messaging - Kinesis Data Firehose (0) | 2024.11.27 |
[AWS] AWS Integration & Messaging - Kinesis Data Streams (0) | 2024.11.26 |