AWS SNS(Simple Notification Service)와 SQS(Simple Queue Service)는 AWS의 두 가지 중요한 서비스로,
메시징 및 애플리케이션 간 통신을 위해 설계되었다.
AWS SNS는 완전 관리형 퍼블리시/서브스크라이브 메시징 서비스로, 분산 시스템, 서버리스 애플리케이션 및 마이크로서비스 아키텍처에서 메시지 또는 알림을 효율적으로 전송할 수 있도록 한다. 이 서비스를 통해 사용자는 다양한 수신자에게 동시에 알림을 보낼 수 있으며, 이메일, SMS, HTTP 엔드포인트 등 다양한 프로토콜을 통해 메시지를 전송할 수 있다.
예를 들어, 사용자가 모바일 앱에서 버튼을 클릭할 때마다 개발자에게 실시간으로 알림을 보내는 시스템을 구축할 수 있다. 이런 시스템은 신속한 대응을 요하는 운영 팀이나 고객 서비스 팀에서 유용하게 사용될 수 있다.
SNS는 다양한 서브스크라이버(이메일, SMS, HTTP 엔드포인트)에게 메시지를 전송
AWS SQS는 분산 컴퓨팅 환경에서 메시지를 저장하고 전달하는 데 사용되는 완전 관리형 메시지 큐잉 서비스. SQS를 사용하면 개발자는 서버를 직접 관리하지 않고도 메시지를 보내고 받을 수 있다. 이 서비스는 컴포넌트 간의 결합을 줄이며, 각 컴포넌트가 독립적으로 작동할 수 있도록 한다.
대규모 e커머스 플랫폼에서 사용자의 주문 데이터를 처리하는 예를 들 수 있다. 사용자가 주문을 하면, 주문 데이터는 SQS를 통해 다양한 처리 시스템(결제 처리, 주문 출고, 재고 관리 등)으로 안전하게 전송되어 각 시스템이 비동기적으로 주문을 처리할 수 있다.
보통 메시지의 순서가 상관 없는 경우 표준 대기열을, 메시지의 순서가 중요한 경우 FIFO 대기열을 사용
1. 표준 대기열
최대 처리량, 최선 노력 순서, 최소 1회 전달
SQS는 메시지가 큐에 저장되고 여러 서비스(예: 결제 처리, 주문 출고)에 의해 처리
AWS SNS와 SQS를 함께 사용하는 아키텍처는 복잡한 분산 시스템에서 메시지 처리 및 전달의 신뢰성을 높이는 데 효과적이다.
이러한 통합 사용은 일반적으로 확장성이 높고, 탄력적이며, 결함 허용이 가능한 애플리케이션을 구축할 때 요구된다.