CLOUD/Public Cloud

[AWS] SQS - 메세지 송수신

alsruds 2023. 3. 22. 03:27

》 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)

 

 확인

데이터 전송~

 

데이터 수신!
맨 마지막 부분에 Body 있어용

 

 

[ 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

 

 확인

메세지 전송~

 

메세지 수신~