CreateSQS
1 Amazon SQS 설정 가이드
- Amazon Simple Queue Service (SQS)는 분산 시스템의 구성 요소 간 메시지를 안정적으로 전송, 저장, 수신할 수 있는 완전 관리형 메시지 대기열 서비스입니다.
- [[SQS]] 참고
- SQS를 효과적으로 활용하기 위해 설정할 수 있는 몇 가지 중요한 옵션에 대해 알아보겠습니다.
2 Delay Queue
- Delay Queue는 메시지가 큐에 도착한 후 일정 시간이 지나야 소비자가 접근할 수 있도록 지연시키는 기능입니다.
2.1 Delay Queue 주요 기능
- 메시지 지연: 메시지를 큐에 추가한 후 즉시 처리하지 않고 지정된 시간이 지난 후에 처리할 수 있습니다.
- 큐 수준 지연: 큐 생성 시 지연 시간을 설정하여 해당 큐의 모든 메시지에 대해 동일한 지연 시간을 적용할 수 있습니다.
- 메시지 수준 지연: 개별 메시지마다 지연 시간을 설정하여 큐의 다른 메시지와는 별도로 지연 시간을 설정할 수 있습니다.
2.2 Delay Queue 설정 방법
2.2.1 콘솔을 사용한 큐 수준 지연 설정
- AWS Management Console에 로그인합니다.
- Amazon SQS 콘솔로 이동합니다.
- "Create queue" 버튼을 클릭하여 새 큐를 생성합니다.
- 큐 이름을 입력하고 "Delay Seconds" 필드에 원하는 지연 시간을 설정한 후 "Create Queue"를 클릭합니다.
2.2.2 클라우드포메이션 템플릿을 사용한 큐 수준 지연 설정
Resources:
MyQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "MyDelayQueue"
DelaySeconds: 60
- 다음은 CloudFormation 템플릿을 사용하여 SQS 큐를 생성하는 예제입니다
- 위 예제에서는 CloudFormation 템플릿을 사용하여 "MyDelayQueue"라는 이름의 SQS 큐를 생성하고, 큐에 추가된 모든 메시지가 60초 동안 지연됩니다.
2.2.3 콘솔을 사용한 메시지 수준 지연 설정
- AWS Management Console에 로그인합니다.
- Amazon SQS 콘솔로 이동합니다.
- 메시지를 보내려는 큐를 선택합니다.
- "Send and receive messages"를 클릭합니다.
- "Message body"에 메시지를 입력하고 "Delay delivery" 필드에 원하는 지연 시간을 입력한 후 "Send message"를 클릭합니다.
2.2.4 AWS CLI를 사용한 메시지 수준 지연 설정
aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --message-body "Hello World" --delay-seconds 30
- 다음은 AWS CLI를 사용하여 메시지 수준 지연을 설정하는 예제입니다:
- 위 예제에서는 "Hello World" 메시지가 큐에 추가된 후 30초 동안 지연됩니다
3 Long Polling
- Long Polling은 메시지가 없을 때 일정 시간 동안 대기하여 메시지가 도착하면 즉시 반환하는 기능입니다.
- 이를 통해 빈 응답을 줄이고 비용을 절감하며 애플리케이션 성능을 향상시킬 수 있습니다.
3.1 Long Polling 주요 기능
- 메시지 대기 시간: 큐에서 메시지를 검색할 때 최대 20초까지 대기할 수 있습니다.
- 비용 절감: 빈 응답을 줄여 요청 횟수를 줄임으로써 비용을 절감할 수 있습니다.
- 성능 향상: 클라이언트 애플리케이션이 지속적으로 폴링하지 않아도 되므로, 네트워크 및 시스템 리소스 사용을 최적화할 수 있습니다.
3.2 Long Polling 설정 방법
3.2.1 콘솔을 사용한 큐 수준 Long Polling 설정
- AWS Management Console에 로그인합니다.
- Amazon SQS 콘솔로 이동합니다.
- 설정하려는 큐를 선택합니다.
- "Edit" 버튼을 클릭합니다.
- "Receive Message Wait Time" 필드에 원하는 대기 시간을 입력한 후 저장합니다.
3.2.2 클라우드포메이션 템플릿을 사용한 큐 수준 Long Polling 설정
Resources:
MyQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "MyQueue"
ReceiveMessageWaitTimeSeconds: 20
- 다음은 CloudFormation 템플릿을 사용하여 SQS 큐를 생성하는 예제입니다
- 위 예제에서는 CloudFormation 템플릿을 사용하여 큐의 메시지를 검색할 때 최대 20초 동안 대기합니다.
3.2.3 AWS CLI를 사용한 개별 메시지 요청에 Long Polling 설정
aws sqs receive-message --queue-url https://sqs.us-east-1.amazonaws.com/123456789012/MyQueue --wait-time-seconds 20
- 다음은 AWS CLI를 사용하여 개별 메시지 요청에 Long Polling을 설정하는 예제입니다:
- 위 예제에서는 해당 요청에 대해 최대 20초 동안 메시지를 대기합니다.
4 DLQ(Dead-Letter Queue)
- DLQ는 메시지 처리 실패 시 메시지를 저장하는 기능을 제공합니다.
- 이를 통해 디버깅 및 재처리할 수 있는 유용한 도구를 제공합니다.