》 AWS 메시징 서비스 : SQS, SNS, Kinesis, Amazon MSK ...
SQS | SNS | Kinesis | |
메시지 내구성 | 보관기간까지 유지 | retry policy 까지 | 보관기간까지 |
메시지 보관기간 | 60초 ~ 14일 | retry limit | 24시간 ~ 7일 |
메시지 순서 보장 | FIFO 사용 시 보장 | X | Shard 내에서 보장 |
메시지 전달 | queue 당 여러 consumer | topic 당 여러 subscriber | shard 당 여러 consumer |
전달 방식 | Pull | Push | Pull |
[ AWS 웹에서 메세지 송수신 ]
● topic 생성
》 AWS 》 SQS 》 대기열 생성
》 표준 (똑같은 메세지가 2개/3개 갈 수도)
》 암호화 비활성화
》 정책 : "Principal" : "*" 변경
● 테스트
》 메시지 전송
》 메시지 폴링
[ Python 코드로 메세지 송수신 ]
● 송신
# send.py
import boto3
sqs = boto3.client('sqs')
queue_url = 'https://sqs.ap-northeast-2.amazonaws.com/[계정 ID]/[queue 이름]
response = sqs.send_message(
QueueUrl=queue_url,
MessageBody=('보낼 메시지')
)
print(response['MessageId'])
● 수신
# receive.py
import boto3
sqs = boto3.client('sqs')
queue_url = 'https://sqs.ap-northeast-2.amazonaws.com/[계정 ID]/[queue 이름]
response = sqs.receive_message(
QueueUrl=queue_url
)
message = response['Messages'][0]
receipt_handle = message['ReceiptHandle']
sqs.delete_message(
QueueUrl=queue_url,
ReceiptHandle=receipt_handle
)
print('Received and deleted message: %s' % message)
● 확인
[ REST API 로 메세지 송수신 ]
》 웹페이지 주소창에 입력
● 송신
https://sqs.ap-northeast-2.amazonaws.com/[계정 ID]/[queue 이름]?Action=SendMessage&MessageBody=[보낼 메세지]
● 수신
https://sqs.ap-northeast-2.amazonaws.com/[계정 ID]/[queue 이름]?Action=ReceiveMessage
● 확인
'CLOUD > Public Cloud' 카테고리의 다른 글
[AWS] API Gateway : WebSocket API 이용하기 (0) | 2023.04.06 |
---|---|
[AWS] OpenSearch 시작하기 (0) | 2023.03.24 |
[AWS] CloudFormation : 스택 생성 (0) | 2023.03.17 |
[AWS] CloudWatch : EC2 인스턴스에서 메모리 및 디스크 지표 전송 (0) | 2023.03.17 |
[AWS] CloudWatch : EC2 모니터링 (2) | 2023.03.17 |