☁️
Amazon Simple Notification Service(SNS)
July 18, 2024
Amazon Simple Notification Service(SNS)
Amazon SNS
AWS의 Simple Notification Service(SNS)는 애플리케이션의 메시지를 다수의 수신자에게 효율적으로 전달할 수 있는 방법을 제공한다. 이를 통해 애플리케이션을 효과적으로 분리하고, 각각의 서비스가 독립적으로 동작할 수 있도록 한다.
SNS를 이용한 게시-구독 모델
직접 통합 vs 게시-구독 통합
애플리케이션이 다수의 수신자에게 메시지를 보내야 할 때, 두 가지 접근 방법이 있다. 첫 번째는 직접 통합으로 라우팅하는 방법이다. 예를 들어, 구매 서비스가 이메일 알림을 보내고, 사기 탐지 서비스, 배송 서비스와 SQS 대기열에 통신한다. 하지만 이 방식은 서비스 간의 직접 통합이 많아질수록 복잡해진다.
대신, 게시-구독(Pub/Sub) 통합을 사용하면 이러한 복잡성을 줄일 수 있다. SNS 주제를 사용하여, 구매 서비스는 SNS 주제에 메시지를 보내고, 주제는 자동으로 여러 수신자에게 메시지를 전달한다. 이를 통해 이메일 알림, 사기 탐지 서비스, 배송 서비스, SQS 대기열에 동시에 메시지를 보낼 수 있다.
SNS의 주요 기능
- 다수의 구독자 지원: 각 SNS 주제는 1,200만 명 이상의 구독자를 가질 수 있으며, 계정 당 최대 100,000개의 주제를 생성할 수 있다.
- 다양한 구독자 타입 지원: SNS는 SQS, Lambda, Kinesis Data Firehose와 같은 AWS 서비스뿐만 아니라 이메일, SMS, 모바일 알림, HTTP/HTTPS 엔드포인트로도 메시지를 보낼 수 있다.
- 모든 메시지 수신: 주제를 구독하는 모든 구독자는 모든 메시지를 수신한다. 이는 SQS와 같이 메시지를 공유하는 방식과 다르다. 각 구독자는 독립적으로 모든 메시지를 수신하여 처리할 수 있다.
SNS의 장점
- 확장성: 많은 수의 구독자에게 메시지를 빠르고 안정적으로 전달할 수 있다.
- 유연성: 다양한 유형의 엔드포인트를 지원하여 여러 서비스와 쉽게 통합할 수 있다.
- 편리성: SNS 주제를 통해 메시지를 중앙에서 관리하고, 각 서비스로 자동으로 전달할 수 있어 유지보수가 용이하다.
SNS의 활용 사례
- 이벤트 알림 시스템: 이벤트 발생 시, 여러 서비스에 알림을 보내야 할 때 SNS를 사용하여 효율적으로 메시지를 전달할 수 있다.
- 다중 서비스 통합: 한 서비스의 업데이트 내용을 여러 다른 서비스에 실시간으로 전달해야 할 때 유용하다.