본문 바로가기
aws

AWS SNS(Simple Notification Service)

by 초특급하품 2020. 4. 12.

SNS(Simple Notification Service)는 SQS와 비슷한 메시지를 전달해주는 fully managed service이다.

다른 점으로는 pub/sub 모델로 하나의 메시지를 여러 receiver에게 전달한다. 또한 subscriber가 물어보는 polling 방식이 아니고 등록된 subscriber에게 push 해준다. 

 

SNS를 사용하기 위해 먼저 topic을 생성하고 이 topic의 subscriber를 등록한다.

이벤트 기반이기 때문에 cloudwatch, s3 등의 많은 aws 서비스가 SNS topic을 publish 할 수 있도록 연동되어있다. 마찬가지로 SQS, Lambda, SMS 등의 서비스를 구독시킬 수 있어 안정적인 인프라를 구성하는데 활용한다.

 

SNS 구조 (https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

 

이벤트 구독하는 서비스별로 그에 맞는 retry로직이 실행되고, 옵션에 따라 threshold를 넘기면 Dead-Leatter Queue(SQS)로 전달할 수 있다.

 

 

Filter policy

subscriber별로 메시지 filter policy를 적용해서 원하는 이벤트만 받을 수 있다.

 

Fan out

SNS는 fully managed service이지만 subscriber로 특정 서버를 띄운다면 scalability가 떨어지게 된다.

이 경우는 SNS의 subscriber로 SQS를 n개 등록하고 이 n개의 SQS를 각 서비스에서 consume 하는 구조로 변경해서 성능을 높일 수 있다. 이벤트를 발생시키는 주체와 이벤트를 받는 주체를 완전히 decoupling 시킬 수 있는 방법이다.

'aws' 카테고리의 다른 글

AWS ECS dynamic port mapping  (0) 2020.04.22
AWS VPC를 연결하는 서비스  (0) 2020.04.19
AWS SQS(Simple Queue Service)  (0) 2020.04.12
AWS CloudFront  (0) 2020.04.12
AWS ElastiCache Redis  (0) 2020.04.11

댓글