프로젝트를 진행하면서 AWS 의 SNS를 사용하여 사용자 정보가 변경되었을때 해당 사용자 정보의 변경내용을
다른 프로젝트에 알려야 하는 상황이 발생했다.
이를 위해 간단하게 AWS에서 서비스하는 Simple Notification Service (SNS)를 이용해서 처리하기로 했다.
위 그림은 aws document에 있는 내용이다. 간단히 정리해보자.
1) 이벤트 발생시 publisher가 이벤트 발행
2) aws sns에서 sns topic으로 보내고 연결되어 있는 subscribers 들에게 전송
3) 전송 실패시 Dead Letter Queue에 실패된 데이터가 쌓임.
이런 내용의 그림이다. 복잡해 보이지만 아주 간단하다.
여기서 공부할 내용도 정리해 보자.
1) AWS SNS설정 및 이벤트 게시 , 구독 테스트
2) Spring boot 를 이용한 aws sns publish 테스트
3) spring boot 를 이용한 aws sns subscribe 테스트
4) SNS -> Subscriber 실패시 Dead-letter Queue (DLQ) 테스트
5) DLQ 발생시 처리에 대한 방안 및 테스트
6) publisher -> SNS 실패시 처리에 대한 고민과 테스트
이렇게 6단계를 잡고 테스트를 진행하도록 한다.
먼저 오늘은 1) AWS SNS설정 및 이벤트 게시 , 구독 테스트 에 대해 알아보자.
1. AWS Console로 접속 > Simple Notification Service 이동 > 주제 ( Topics ) 선택 > 주제 생성 클릭
2. 아래와 같이 기본 정보만 입력해서 일단 테스트 한다.
3. 이제 Simple Queue Service (SQS) 이동 > 대기열 생성
SQS 역시 기본정보로 생성을 했다. 테스트의 목적이기때문에 보존기란이나 다른 설정은 손대지 않았지만
운영상의 SQS에서는 표시제한 시간이나 메세지 보존기간은 변경을 해야 한다.
4. 생성한 SQS의 상세 화면에서 아래쪽에 보면 "SNS 주제구독 " 이라는 버튼이 보인다.
해당 버튼을 클릭해서 앞에서 생성한 SNS을 선택해 주면 된다.
이제 테스트를 위해 SNS에서 테스트 메세지를 보내서 SQS에서 잘 구독이 되는지 확인해보자.
위에서 SNS 에서 오른쪽 상단의 메세지 게시 버튼을 클릭해서 테스트 메세지를 입력해 보자.
그리고 SQS로 돌아와서 메세지 전송 및 수신 버튼을 클릭
메세지 폴링 버튼을 클릭하면 SNS에서 보낸 메세지가 들어오는것을 볼수 있다.
해당 메세지의 상세 정보를 파란색 ID 부분을 클릭하면 상세 정보를 볼수 있다.
여기까지 간단하게 SNS설정을 하고 SQS로 이벤트 메세지를 받는거까지 설정을 해봤다.
다음에는 Spingboot application에서 SQS에 연결하여 데이터를 가져오는부분을 공부해보자.
'AWS > Simple Notification Service(SNS)' 카테고리의 다른 글
3)SpringBoot SQSListner로 메세지 받기 (0) | 2022.02.08 |
---|---|
2) Spring Boot로 AWS SNS publish 하기 (0) | 2021.12.30 |