SNS ?
Simple Notification Service,
말 그대로 간단하게 AWS 서비스들에게 이벤트를 알려주는 서비스다.
SNS의 주요 특징은 다음과 같다.
글로만 봐서는 약간 이해하기 힘들 수 있는데,
AWS 공식 문서에 다음과 같은 그림이 있다.
동일한 이벤트에 대하여 3가지의 큐를 실행시켜야 할 때,
S3 업로드 이벤트를 모든 3가지 큐에 전송해야한다.
하지만 SNS를 사용하게 되면 S3업로드 이벤트를 SNS로 보내주게 만든 뒤,
SNS에서 어느 SQS로 이벤트를 보내야할지 지정(구독)하여 간단하게 이벤트를 보낼 수 있다.
이는 클라우드 아키텍처의 생산성 및 확장성을 굉장히 간단하게 만들어주는 효과를 볼 수 있었다.
+++
처음 SNS를 사용하면서 한가지 착각한 점이 있어서,
나 이외에도 똑같은 실수를 범할 사람들을 위해 한가지 더 적는다.
위에서 언급한 바와 같이, SNS에서 SQS를 구독하는건 서로 다른 SQS를 구독하는거다.
내가 착각한 점은,
아래 그림처럼
SNS에 하나의 SQS를 등록시키면 자동으로 병렬처리를 해주는 줄 알았다는 것.
SNS는 위처럼 동작하는게 아니라 아래처럼
서로 다른 SQS에 이벤트를 보내주는
Fan-Out 방식이라는 것을 알아야한다.
지금까지 소개한
Lambda, SQS, DLQ, S3, SNS의 서비스들을 하나의 클라우드 아키텍처로 보자면
위 처럼 위 처럼 나타낼 수 있다.