SNS(Simple Notification Service)

최수환·2022년 10월 10일
0

AWS-SAA

목록 보기
18/23

특정 리소스에 값이 들어왔을 때 사용자는 값이 들어왔다는 것을 어떻게 인지하며, 다른 서비스로 옮길 수 있을까? 이것을 가능하게 해주는 것이 SNS다.

SNS

SNS는 일종의 게시판이라 생각하면 간단하다. AWS리소스의 대부분은 SNS로 데이터를 전송할 수 있다. 데이터를 받은 게시판(SNS)는 자신을 구독하고 있는 서비스에게 알림,데이터 전송을 할 수 있다.

SNS 구독자


SNS를 구독할 수 있는 구독자는 위의 그림처럼 총 6가지이다.
구독하는 방법에는 Topic Publish와 Direct Publish 두가지가 있다.

Topic Publish : SNS가 topic을 만들면 SDK를 이용해 구독하면 된다.
Direct Publish : SNS가 가진 endpoint에 주소를 연결하는 방식이다.

Fan-out

이전 포스팅에서 SQS 여러개를 사용해 각자 다른일을 하게하여 빠른 성능을 내는 것이 Fan-out이라 하였다. Fan-out은 SNS와 연결해서 사용이 가능한데, 그림처럼 SNS뒤에 여러개의 SQS을 구독자로 추가하면 SNS에 특정 데이터가 들어왔을때 역할에 맞게 , 빠른속도로 처리할 수 있다.
💡 SNS-FIFO계열에는 SQS-FIFO만이 연결가능하다.
📌 Fan-out을 사용할때 일반적으로 SNS는 하나를 사용하며, SNS-SQS순서로 배치한다.

Fan-out 활용

그림과 같이 S3에 객체가 들어왔을 때 이 객체를 Fan-out을 통해 큐 , 람다 등 여러 리소스에 보내어 작업을 수행할 수 있다.
📌 S3는 객체 알림서비스로 SQS , SNS , LAMBDA 에 알림을 보낼 수 있다.

또는 위 그림처럼 SNS가 수집한 알림을 Kinesis를 통해 실시간 수집 후 S3에 전송하거나 KDF를 통해 실시간 분석을 수행할 수 있다.

마치며

처음 SNS를 공부할 때 내가 흔히 아는 SNS(Socal Networking Service)라 생각했다. 물론 단어 자체가 다르지만 공부하면 할수록 둘다 게시판 역할을 하며 리소스에서 리소스로, 사용자에서 사용자로 전달해주는 역할이 매우 비슷했다. 필자의 생각으로는 SNS(Socal Networking Service)도 SNS(Simple Notification Service)를 사용하고 있거나 사용하여 보다 효율적인 사용자간 상호작용을 가능하게 하는 서비스를 개발할 수 있을 것 같다.

profile
성실하게 열심히!

0개의 댓글