본문 바로가기

Infra/AWS

[AWS] SQS

728x90

SQS

- 어플리케이션을 분리할 때 사용

- 처리량에 제한이 없음

- 메시지가 256kB 제한이 있으며, 14일까지 대기 큐에 존재할 수 있음 (기본 4일)

- 다중 컨슈머를 가질 수 있음 (EC2, 람다 등등)

- FIFO 큐도 세팅 가능함

 

Auto Scaling Group

- CloudWatch과 결합해서 오토 스케일링 가능

 

가시상 시간 초과

- 메시지가 폴링되고 나서, 특정 시간 동안 다른 컨슈머들에게 비가시성 상태가 됨

- 만약 가시상 시간 초과가 지나고 날 때 메시지가 처리되지 않는다면, 2번 호출 될 수 있으며 그럴 때 ChangeMessageVisibility를 호출해야함

 

롱폴링

- 대기열에 메시지가 없는데 컨슈머가 큐로부터 대기하는 것을 지칭

- 미리 대기하고 있으면, 일단 속도가 빠르고 효율적

 

SNS

- 메시징 서비스이며, 해당 기능들을 제공함

- AWS에서 알림이 발생하면 지정된 SNS 서비스로 메시지를 전달

 

 

SNS + SQS: 펜 아웃

- SNS 토픽이 SQS 큐에 데이터를 쓸 수 있게 권한 부여

- 이렇게 하면 SNS를 거쳐서 큐에 들어가서 더 안정적

- 메시징 필터링 기능도 있음

 

 

Kinesis

- 데이터 수집, 처리, 분석을 실시간으로 해주는 서비스

- 총 4개가 있으며 알아보자

 

Kinesis Data Streams

- 프로비저닝된 모드랑 온디멘드 모드로 분리됨

 

Kinesis Data Firehose

 

일년 중 최대 세일 기간인 블랙 프라이데이를 준비하고 있는 전자 상거래 웹사이트가 있습니다. 트래픽은 100배가 증가할 것으로 예상됩니다. 이 웹사이트는 이미 SQS 표준 대기열을 사용하고 있습니다. SQS 대기열은 어떻게 준비해야 할까요?

- AWS 지원 센터에 연락해 SQS 표준 대기열을 준비해줄 것을 요청

- SQS 대기열에 오토 스케일링 활성화

- SQS 대기열 용량 늘리기

- SQS이 자동으로 스케일링해줄 것이므로 아무 조치도 취하지 않음

 

소비자들이 한 번에 10개의 메시지를 폴링하고 1분 내로 이에 대한 처리를 완료하는 SQS 대기열이 있습니다. 잠시 후, 여러분은 동일한 SQS 메시지를 다른 소비자들도 수신하여 메시지가 한 번 이상 처리되었음을 알게 되었습니다. 이 문제를 해결하기 위해서는 어떻게 해야 할까요?

- 롱 폴링 활성화

- 메시지 생성 시 메시지에 DelaySeconds 파라미터 추가

- 가시성 시간 초과 늘리기

- 가시성 시간 초과 줄이기

300x250

'Infra > AWS' 카테고리의 다른 글

[AWS] Serverless  (0) 2023.10.01
[AWS] ECS, ECR, EKS, Fargate  (0) 2023.10.01
[AWS] 여러가지 Storage  (0) 2023.09.28
[AWS] CloudFront  (0) 2023.09.28
[AWS] S3  (0) 2023.09.28