SNS와 SQS 정리
SNS : Publisher가 Subscriber에게 메시지를 전송하는 서비스
SQS : 메세지 대기열 서비스
SNS 역할
특정 서비스에서 SNS로 지정한 주제(topic)에 대한 메시지를 발행한다. 예)회원가입정보
그럼 이 SNS는 이 topic에 대한 메시지를 받아보기로 한 (subscribe한) 서비스들에게 메시지를 전달해준다.
subscribe를 하는 주체는 SQS, Lambda, HTTP, SMS, 이메일, 모바일 애플리케이션 엔드포인트가 될 수 있다.
SQS 역할
SQS는 Simple Queue Service로, 메세지 대기열 서비스라고 함.
SNS로부터 특정 주제의 메세지를 구독하여 받아볼 수 있다.
그럼 특정 서비스나 시스템에서 SQS로 받은 메시지를 사용하면 되는거임
흐름은 이렇게 됨
서비스 -> SNS -> SQS -> 다른 서비스
즉 SNS와 SQS를 활용하면 엔드포인트에서 엔드포인트로 데이터를 직접 때려박지 않아도 되므로 데이터 안전성과 관리 오버헤드 제거에 있어서 용이하겠다. . .
1. SNS 주제 생성하기
https://ap-northeast-1.console.aws.amazon.com/sns/v3/
주제 이름 적고 다음단계로 ㄱㄱ
표준으로 ㄱㄱ 하고 다른 옵션들은 모두 주어진대로 ㄱㄱ
생성되었다.
2. SQS 대기열 생성하기
https://ap-northeast-1.console.aws.amazon.com/sqs/v2/
대기열 생성 ㄱㄱ
표준으로 하고 다른 옵션들은 기본으로 ㄱㄱ
생성되었다.
3. SNS 구독하기
생성한 대기열(MyQueue)이 만들었던 SNS의 주제를 바라보도록 설정해야한다. (publish)
'Amazon SNS 주체 구독' 선택
내가 만들었던 Topic을 선택해줌.
SQS에서 설정된것 확인
SNS에서도 설정된것 확인
4. SNS 메시지발행
구독 설정이 잘 되었나 확인해볼것.
SNS에서 메시지 게시
제목과 메시지 본문을 적고 기본 옵션으로 전송
5. 메시지 수신
MyQueue에서 메시지를 받아보자
메시지 폴링을 누릅니다.
SNS 에서 발행한 메시지가 보입니다.
메시지 아이디를 눌러보면 아래와 같은 메시지가 표시됨. 성공~
{
"Type" : "Notification",
"MessageId" : "d118fffff-dddd-cccc-bbbbb-aaaaaaaa",
"TopicArn" : ":MyTopic",
"Subject" : "TEST~~TITLE~~",
"Message" : "TEST~~PAYLOAD~~~",
"Timestamp" : "2023-02-02T00:11:52.300Z",
"SignatureVersion" : "1",
"Signature" : "==",
"SigningCertURL" : "",
"UnsubscribeURL" : ""
}
다음은 SNS 와 SQS 를 Spring Boot에 연동해서 메세지 보내고 받아보기~
'코딩 관련 > AWS' 카테고리의 다른 글
Spring boot 서비스에서 MSK IAM 인증 연결 / springboot MSK 연동 (0) | 2024.01.31 |
---|---|
SpringBoot에서 SNS SQS 연동하기 (0) | 2023.02.02 |
software.amazon.awssdk.services.sns.model.InvalidParameterException: Invalid parameter: TopicArn (0) | 2023.02.02 |