- AWS 에서는
Amazon SQS는 처리량이 높은 시스템 간 메시징을 위한 대기열을 제공합니다. 대기열을 사용하여 과중한 프로세스를 분리하고 작업의 버퍼링과 배치 처리를 지원할 수 있습니다. Amazon SQS는 마이크로서비스와 서버리스 애플리케이션에서 메시지를 처리할 때까지 메시지를 저장합니다.
- kafka 같다보자!
만들기
![](https://velog.velcdn.com/images/jujuju914/post/f330852f-6e30-4d65-bc18-13186a4483a4/image.png)
- 생성해주면 된다
![](https://velog.velcdn.com/images/jujuju914/post/b189d685-d789-49c4-9675-b58542988fad/image.png)
- first in, first out 이건 돈이 나가니깐, 일단은 표준 그냥 무작위로 보내준다.
![](https://velog.velcdn.com/images/jujuju914/post/0c438500-fff2-421b-b5b4-5968e349b7b8/image.png)
- 엑세스 정책에서 모두 허용해주도록 수정해준다.
- 엑세스 정책은 고급설정에서 변경해도 되지만, 정책을 만들어서 사용할 수 도 있다.
보내기
![](https://velog.velcdn.com/images/jujuju914/post/25aa4656-0b75-43ab-837b-a05ab0ed2ef8/image.png)
import boto3
sqs = boto3.client('sqs')
queue_url = '[URL 입력]'
response = sqs.send_message(
QueueUrl=queue_url,
MessageBody=('아르뇨용?')
)
print(response['MessageId'])
받기
import boto3
sqs = boto3.client('sqs')
queue_url = '[URL 입력]'
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)
![](https://velog.velcdn.com/images/jujuju914/post/e5f9c020-417d-4df3-a2c8-e410ece8250f/image.png)
- 보내기에서는 '아르뇨옹?'을 보냈엇는데 실행하니깐 '안뇽?' 이 왔다...
- 내가 지금 사용하고 있는 서비스가 무작위로 보내주는 것이고 나는 이전에 '안뇽?'을 보내놨었기 때문이다.
REST API로 메시지 송수신
https://[큐이름 URL 입력]?Action=SendMessage&MessageBody=메시지
https://[큐이름 URL 입력]?Action=ReceiveMessage
![](https://velog.velcdn.com/images/jujuju914/post/8261b2e7-7b8d-4ad2-8135-4e2b578b4bb3/image.png)