주제 유형
표준 주제
미디어 인코딩, 사기 탐지, 세금 계산, 검색 색인, 중요 알림 애플리케이션으로의 팬아웃 등 잘못된 순서로 두 번 이상 전달된 메시지를 애플리케이션에서 처리할 수 있다면, 표준 주제는 여러 시나리오에서 사용할 수 있습니다.
최대 처리량: 표준 주제는 초당 메시지 수를 거의 무제한으로 지원합니다.
최선 노력 순서: 가끔 메시지가 게시된 순서와 다르게 전달될 수 있습니다.
FIFO 주제
FIFO 주제는 운영 및 이벤트 순서가 중요하거나 중복을 허용할 수 없는 경우(예: 은행 거래 로깅, 재고 모니터링, 항공편 추적, 재고 관리, 가격 업데이트 애플리케이션으로 메시지 팬아웃)에 애플리케이션 간 메시징을 개선하기 위해 고안되었습니다.
많은 처리량: FIFO 주제는 FIFO 주제별로 초당 최대 3,000건의 메시지 또는 초당 10MB의 메시지(둘 중 먼저 도달하는 것)를 지원합니다.
엄격한 순서: 메시지가 게시되고 전달되는 순서가 엄격하게 유지됩니다(예: 선입선출).
최선 중복 제거: 메시지가 최소한 한 번 전달되고, 가끔 2개 이상의 메시지 복사본이 전달될 수 있습니다.
다양한 구독 유형: 메시지는 애플리케이션 간(A2A) 엔드포인트(Amazon SQS, Amazon Kinesis Data Firehose, AWS Lambda, HTTPS) 및 애플리케이션-사용자 간(A2P) 엔드포인트(SMS, 모바일 푸시, 이메일)로 전송할 수 있습니다.
메시지 팬아웃: 각 계정은 10만 개의 표준 주제를 지원할 수 있으며 각 주제는 최대 1,250만 건의 구독을 지원합니다.
엄격한 중복 제거: 중복 메시지는 전송되지 않습니다. 중복 제거는 메시지 게시 시간부터 5분 간격으로 이루어집니다.
SQS 구독: 메시지는 Amazon SQS 대기열로 전달될 수 있습니다.
메시지 팬아웃: 각 계정은 1,000개의 FIFO 주제를 지원할 수 있으며 각 주제는 최대 100건의 구독을 지원합니다.
블로그
- Introducing Amazon SNS FIFO – First-In-First-Out Pub/Sub Messaging(Amazon SNS FIFO - 선입선출 게시/구독 메시징 소개)
- Building Event-Driven Architectures with Amazon SNS FIFO(Amazon SNS FIFO로 이벤트 기반 아키텍처 구축)
이벤트 소스 및 대상
이벤트 기반 컴퓨팅은 구독자 서비스가 게시자 서비스에서 트리거된 이벤트에 응답하여 자동으로 작업을 수행하는 모델입니다. 이 패러다임을 적용하여 워크플로를 자동화하는 동시에, 이러한 워크플로를 수행하기 위해 집합적, 독립적으로 작동하는 서비스를 분리할 수 있습니다. Amazon SNS는 다양한 AWS 이벤트 소스 및 이벤트 대상과 기본적으로 통합된 이벤트 중심 허브입니다.
블로그
- Event-Driven Computing with Amazon SNS and AWS Compute, Storage, Database, and Networking Services(Amazon SNS와 AWS 컴퓨팅, 스토리지, 데이터베이스 및 네트워킹 서비스를 사용한 이벤트 기반 컴퓨팅)
메시지 게시 및 배치 처리
메시지 게시를 사용하면 Amazon SNS 주제에 메시지 형태로 데이터를 전송할 수 있습니다. Amazon SNS 주제에 데이터를 전송하면 주제를 구독하는 애플리케이션에 메시지를 비동기로 전달할 수 있습니다. API 요청당 1~10개의 메시지를 게시할 수 있습니다. 메시지를 배치 처리하여 Amazon SNS 비용을 절감할 수 있습니다. 각 메시지에는 최대 256KB의 데이터가 포함될 수 있습니다. 더 큰 데이터 페이로드가 필요한 사용 사례의 경우, Amazon SNS 확장 클라이언트 라이브러리는 Amazon S3 버킷에 페이로드(최대 2GB)를 저장하고 저장된 Amazon S3 객체의 참조를 Amazon SNS 주제에 게시합니다.
블로그
- Publishing messages in batch to Amazon SNS topics(Amazon SNS 주제에 배치 단위로 메시지 게시)
메시지 필터링
구독자 애플리케이션이 주제에 게시된 모든 메시지를 받는 대신 관심 있는 알림만 받도록, 메시지 필터링을 통해 구독자 애플리케이션을 위한 필터 정책을 만들 수 있습니다. 이를 통해 구독자 애플리케이션의 메시지 필터링 로직과 게시자 애플리케이션의 메시지 라우팅 로직을 오프로드하여 아키텍처를 간소화할 수 있습니다.
자습서
- Filter Messages Published to Topics with Amazon SNS(Amazon SNS를 사용하여 주제에 게시된 메시지 필터링)
블로그
- Simplifying Your Pub/Sub Messaging with Amazon SNS Message Filtering(Amazon SNS 메시지 필터링을 사용하여 게시/구독 메시징 간소화)
- Message Filtering Operators for Numeric Matching, Prefix Matching, and Anything-But Matching in Amazon SNS(Amazon SNS의 숫자 매칭, 접두사 매칭 및 특정 항목 제외 매칭을 위한 메시지 필터링 연산자)
- Monitoring Your Amazon SNS Message Filtering Activity with Amazon CloudWatch(Amazon CloudWatch로 Amazon SNS 메시지 필터링 작업 모니터링)
- Managing Amazon SNS Subscription Attributes with AWS CloudFormation(AWS CloudFormation으로 Amazon SNS 구독 속성 관리)
메시지 팬아웃 및 전송
주제에 메시지를 게시하면 Amazon SNS가 메시지를 복제하여 해당 주제를 구독하는 애플리케이션에 전송합니다. Amazon SNS는 애플리케이션 간(A2A) 및 애플리케이션-사용자 간(A2P) 메시지 전송을 지원합니다. 또한 Amazon SNS는 Amazon CloudWatch를 통한 메시지 전송 상태 로깅 외에 리전 간 및 계정 간 메시지 전송도 지원합니다.
자습서
- Fanout Event Notifications with Amazon SNS(Amazon SNS를 사용하여 이벤트 알림 팬아웃)
메시지 내구성
Amazon SNS는 공동으로 작용하는 다수의 메커니즘을 사용하여 메시지 내구성을 제공합니다. 우선, 게시된 메시지는 지리적으로 분리된 여러 서버와 데이터 센터에 걸쳐 저장됩니다. 구독한 엔드포인트를 사용할 수 없는 경우 Amazon SNS는 메시지 배달 재시도 정책을 실행합니다. 전송 재시도 정책이 종료되기 전에 전송되지 않은 모든 메시지를 보존하려면 Amazon SQS 기반의 DLQ(Dead Letter Queue)를 사용할 수 있습니다. 또한 Amazon Kinesis Data Firehose 전송 스트림에서 Amazon SNS 주제를 구독하여 Amazon S3 버킷 또는 Amazon Redshift 테이블과 같은 내구력 있는 엔드포인트로 메시지를 전송할 수 있습니다.
블로그
- Designing Durable Serverless Applications with DLQs for Amazon SNS, Amazon SQS, AWS Lambda(Amazon SNS, Amazon SQS, AWS Lambda에 대한 DLQ로 내구성 높은 서버리스 애플리케이션 설계)
- Introducing Message Archiving and Analytics for Amazon SNS(Amazon SNS의 메시지 아카이빙 및 분석 소개)
메시지 암호화
Amazon SNS는 무단 액세스와 익명 액세스로부터 메시지를 보호하기 위해 암호화된 주제를 제공합니다. 암호화된 주제에 메시지를 게시하면, Amazon SNS가 즉시 메시지를 암호화합니다. 암호화는 256비트 AES-GCM 알고리즘과 AWS Key Management Service(KMS)에서 발급한 고객 마스터 키(CMK)를 사용하여 서버에서 이루어집니다. 메시지는 암호화된 형태로 저장되며 Amazon SQS 대기열, Amazon Kinesis Data Firehose 스트림, AWS Lambda 함수, HTTP/S 엔드포인트, 전화번호, 모바일 앱 및 이메일 주소와 같은 구독 엔드포인트로 전송될 때 복호화됩니다.
블로그
- Encrypting Messages Published to Amazon SNS with AWS KMS(AWS KMS를 사용하여 Amazon SNS에 게시된 메시지 암호화)
메시지 프라이버시
Amazon SNS는 AWS PrivateLink를 통해 VPC 엔드포인트(VPCE)를 지원합니다. VPC 엔드포인트를 사용하여 퍼블릭 인터넷을 거치지 않고도 Amazon Virtual Private Cloud(VPC)에서 Amazon SNS 주제에 메시지를 비공개로 게시할 수 있습니다. 이 기능은 보안과 데이터 프라이버시를 강화하며 보증 프로그램과 연계됩니다. AWS PrivateLink를 사용하면 인터넷 게이트웨이(IGW), Network Address Translation(NAT) 디바이스 또는 가상 프라이빗 네트워크(VPN) 연결을 설정할 필요가 없습니다. 퍼블릭 IP 주소도 사용할 필요가 없습니다.
블로그
- Securing Messages Published to Amazon SNS with AWS PrivateLink(AWS PrivateLink로 Amazon SNS에 게시되는 메시지 보호)
메시지 데이터 보호
Amazon SNS 메시지 데이터 보호 기능은 주제 소유자가 주제를 통해 전송되는 민감한 데이터를 검색하고 보호할 수 있는 데이터 보호 정책을 정의할 수 있도록 합니다. 이를 통해 애플리케이션에서 데이터 보호 로직을 오프로드하여 아키텍처를 간소화하는 동시에 의료 보험 양도 및 책임에 관한 법률(HIPAA), 일반 데이터 프라이버시 규정(GDPR), 결제 카드 산업 규정(PCI), 연방 위험 및 인증 관리 프로그램(FedRAMP) 등의 규정에 대한 규정 준수 목표를 지원할 수 있습니다. 주제로 인바운드되는 메시지를 감사하여 포함된 민감한 데이터의 양을 확인하고, 차단을 통해 다운스트림 구독자에게 전송되지 않도록 하거나, 수정 또는 마스킹을 통해 페이로드의 특정 데이터를 익명화할 수 있습니다.
블로그
- Introducing Message Data Protection for Amazon SNS(Amazon SNS용 메시지 데이터 보호 기능 소개)
메시지 아카이빙, 재생 및 분석
표준 주제의 경우, Amazon SNS는 Amazon Kinesis Data Firehose에 직접 연결하여 Amazon S3, Amazon Redshift, Amazon OpenSearch Service 및 MongoDB와 같은 서비스에 메시지를 저장할 수 있도록 합니다. 또한 이 기능을 사용하면 Datadog, New Relic, Splunk 등의 분석 서비스에서 메시지를 저장할 수 있습니다. FIFO 주제의 경우 Amazon SNS는 별도의 아카이브 리소스를 제공할 필요 없이 메시지를 저장하고 재생할 수 있는 인플레이스 옵션을 제공합니다. 따라서 이벤트 기반 애플리케이션의 내구성이 향상되고 다운스트림 장애 시나리오에서 복구하는 데 도움이 될 수 있습니다.
블로그
- Introducing Message Archiving and Analytics for Amazon SNS(Amazon SNS의 메시지 아카이빙 및 분석 소개)
SMS 문자 메시지
Amazon SNS는 가용성과 내구성이 뛰어난 서비스를 사용하여 200여개국에 대규모로 SMS 문자 메시지를 전송할 수 있는 기능을 지원합니다. 이 서비스는 여러 SMS 제공업체에 이중화되어 있습니다. Amazon SNS를 사용하면 발신자 ID, 긴 코드 또는 짧은 코드를 사용하여 발신 자격 증명을 제어할 수 있습니다. 또한 Amazon SNS 샌드박스를 사용하여 프로덕션 환경으로 이전하기 전에 SMS 워크로드를 검증할 수 있습니다.
블로그
- Provisioning and Using 10DLC Origination Numbers with Amazon SNS(Amazon SNS에서 10DLC 발신 번호 프로비저닝 및 사용)
- Introducing the SMS Sandbox for Amazon SNS(Amazon SNS용 SMS 샌드박스 소개)
모바일 푸시 알림
Amazon SNS 모바일 알림을 활용하면 iOS, Android, Fire, Windows 및 Baidu 디바이스로 비용 효율적으로 간단하게 모바일 푸시 알림을 팬아웃할 수 있습니다. 모바일 알림은 사용자 기반 작업 또는 비즈니스 로직에서 트리거될 수 있습니다. Amazon SNS는 이제 ADM(Amazon Device Messaging), APNs(Apple Push Notification service), Baidu Cloud Push(Baidu), FCM(Firebase Cloud Messaging), MPNS(Microsoft Push Notification Service) for Windows Phone 및 WNS(Windows Push Notification Services)를 통해 모바일 푸시 알림을 제공합니다.
블로그
- Token-based authentication for iOS applications with Amazon SNS(Amazon SNS를 사용한 iOS 애플리케이션의 토큰 기반 인증)
이메일 알림
Amazon SNS는 주제를 구독하는 이메일 주소로의 알림 전송을 지원합니다. 이 기능은 다양한 사용 사례를 지원합니다. 예를 들어 Amazon SNS를 사용하여 애플리케이션 알림을 이메일 알림으로 수신하여 DevOps 워크플로를 파악할 수 있습니다. 따라서 Amazon EC2 Auto Scaling 그룹의 특정 변경 사항, Amazon S3 버킷에 업로드된 새 파일 또는 Amazon CloudWatch에서 위반된 지표 임계값 등의 이벤트가 발생하면 즉시 알림을 받을 수 있습니다.
Amazon SNS 요금에 대해 자세히 알아보기