본문 바로가기
IT 공부/AWS Solution Architect Associate(완)

Decoupling Application ; SQS SNS

by 랜턴K 2024. 2. 22.
반응형

미들웨어로 협동 작업 시, 사용하는 어플리케이션 

대기열 모델 - SQS

PUB/SUB 모델 - SNS 

실시간 스트리밍 + 대용량 데이터 - KINESIS

 

SQS ; 대기 서비스 

- PRODUCER (SEND) - SQS - (POLL) CONSUMER 

- 버퍼 역할 

- CONSUMER는 읽고 삭제한다 (메시지를 처리한 다음에 -> 즉 컨슈머가 많을 때 2번 이상 다른 컨슈머가 읽을 수도?) 

- 표준 대기열용 AMAZON SQS ;  애플리케이션 분리

- 무제한 처리량 (단, 메시지는 수명이 있다 ; 기본 4일 최대 14일 대기열!!)

- 메시지는 작아야 한다!!256KB 미만 

- 컨슈머를 SQS 대기열 길이에 따라 ASG 적용 가능 (CLOUDWATCH - ApproximateNumberOfMessage)

- SQS를 이용 프런트엔드와 백엔드를 독립 확장 가능  (프런트(고정) - SQS - 백엔드(ASG) : 과도한 처리는 SQS와 백엔드에 맡긴다)

- 암호화 ; HTTPS API / KMS KEY / 클라이언트 암호화 / IAM 정책 / SQS 액세스 정책

 

SQS - 메시지 가시성 초과 ; MESSAGE VISIBILITY TIMEOUT ; 컨슈머가 중복 처리하는 것을 방지!!

- 기본값 ; 30초 

- 이 시간 동안, 다른 컨슈머는 SQS 해당 메시지를 대기열에서 반환하지 않음 (비가시적으로 숨김) 

- 만약 시간이 지나고, 여전히 처리 중이면, 소비자는 ChangeMessageVisbility API 호출하려 다시 변경 가능

 

SQS  - 롱 폴링 

- 소비자가 대기열에 메시지를 요청 후 없을 때, 메시지 도착을 기다리는 것 

- 1. 지연 시간 단축 2. SQS API 호출 숫자 단축 

- 최대 20초 폴링 

 

SQS FIFO QUEUE

- 이 친구는 제한이 있다.!! (초당 300개 처리 / 묶음으로 초당 3000개) 

- 순서가 지켜짐 / 중복 제거하는 FIFO 대기열 기능 

 

 SNS ; 메시지를 여러 수신자에게 보내는 상황 / 퍼블리싱-구독 시스템 
- PUB/SUB //  게시/구독 

- 이벤트 프로듀서가 SNS TOPIC에 퍼블리싱함 -> SNS TOPIC에서 해당 메시지를 수신 & 보관 

- 이 때, 이벤트 프로듀서는 TOPIC 하나에만 메시지를 보냄 

- 수신자는 TOPIC을 서브스크라이빙 

- 퍼블리싱할 수 있는 항목들 ; 이메일 / SMS 또는 모바일 알림 / HTTP HTTPS 엔드포인트 데이터 송신 / SQS / 람다 / 파이어호스

- 퍼블리싱하는 서비스들 ; CLOUDWATCH / ASG / CLOUDFORMATION / S3 / DMS / LAMDA 등 

- SDK ; SNS 토픽 퍼블리싱 // 플랫폼 앱 -> 플랫폼 엔드포인트 -> 플랫폼 엔드포인트 퍼블리싱 ; GOOGLE, GCM, APPLE APNS 

- 보안은 SQS와 비슷 / 엑세스 제어는 IAM 정책 중심 / SNS 액세스 정책 (AWS서비스가 퍼블리싱할 때 유용)

 

SQS SNS FAN OUT 패턴 - 다수의 SQS에게 메시지를 보내야 할 때!!

- SNS 토픽으로 SQS들을 구독시켜서 해결한다  

- SQS 액세스 정책을 -> SNS 토픽에게 쓰기 허용 필요 

- 교차 리전 딜리버리!!  ; SNS 토픽이 다른 리전의 SQS 대기열에게 메시지 보내기 가능 

- S3 버킷 이벤트에도 유용 ; 하나의 이벤트에 하나의 메시지만 생성되기 떄문 

- SNS FIFO + SQS FIFO ; 순서가 맞아야 하므로, 프러드 탐지 가능!! 

- SNS 메시지 필터링!! 하여 SQS 부하 감소 가능 (하나의 토픽에 거는 것이 아닌, 서브스크라이버에 걸 수 있다)

 

 

 

 

 

반응형

'IT 공부 > AWS Solution Architect Associate(완)' 카테고리의 다른 글

AMAZON ECS  (0) 2024.02.28
AMAZON Kinesis  (0) 2024.02.23
AWS Snow 패밀리  (0) 2024.02.21
CLOUDFRONT / AWS GLOBAL ACCELERATOR  (1) 2024.02.20
S3 보안  (0) 2024.02.19