미들웨어로 협동 작업 시, 사용하는 어플리케이션
대기열 모델 - 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 |