본문 바로가기
BE 공부/AWS

Amazon Simple Queue Service(SQS)

by 꼬질꼬질두부 2024. 12. 30.

Amazon Simple Queue Service(SQS)는 애플리케이션 간에 메시지를 주고받을 수 있는 AWS의 완전관리형 메시지 대기열 서비스입니다. 이를 통해 시스템 구성 요소를 분리하고 독립적으로 확장할 수 있습니다. SQS의 작동 방식을 쉽게 이해하기 위해 주요 개념과 흐름을 살펴보겠습니다.

 

1. 메시지 큐란 무엇인가요?

메시지 큐는 데이터를 일시적으로 저장하는 대기열로, 한 시스템에서 다른 시스템으로 정보를 전달하는 데 사용됩니다. 이를 통해 작업을 비동기적으로 처리할 수 있어 시스템의 효율성과 확장성을 높일 수 있습니다.

2. SQS의 주요 구성 요소는 무엇인가요?

  • 프로듀서(Producer): 메시지를 생성하여 SQS 대기열에 보내는 역할을 합니다.
  • 컨슈머(Consumer): SQS 대기열에서 메시지를 받아 처리하는 역할을 합니다.
  • 대기열(Queue): 프로듀서가 보낸 메시지를 일시적으로 저장하며, 컨슈머가 이를 가져가 처리할 수 있도록 합니다.

3. SQS의 작동 흐름은 어떻게 되나요?

  1. 메시지 전송: 프로듀서가 SQS 대기열에 메시지를 보냅니다.
  2. 메시지 저장: SQS는 받은 메시지를 안전하게 저장하며, 기본적으로 4일 동안 보관합니다.
  3. 메시지 수신: 컨슈머가 대기열에서 메시지를 가져와 처리합니다.
  4. 메시지 삭제: 컨슈머가 메시지 처리를 완료하면 해당 메시지를 대기열에서 삭제하여 중복 처리를 방지합니다.

4. 메시지 수신 방식에는 어떤 것이 있나요?

  • 짧은 폴링(Short Polling): 컨슈머가 대기열에 메시지가 있는지 즉시 확인하고, 메시지가 없으면 바로 응답을 받습니다.
  • 긴 폴링(Long Polling): 컨슈머가 대기열에 메시지가 없을 경우, 지정된 대기 시간(최대 20초) 동안 기다렸다가 메시지가 도착하면 이를 수신합니다. 긴 폴링은 불필요한 요청을 줄여 비용 효율적입니다.

5. SQS의 대기열 유형에는 무엇이 있나요?

  • 표준 대기열(Standard Queue): 높은 처리량을 지원하며, 메시지의 순서가 보장되지 않을 수 있고, 중복 메시지가 전달될 수 있습니다.
  • FIFO 대기열(FIFO Queue): 메시지의 순서가 엄격하게 유지되며, 각 메시지는 한 번만 전달됩니다. 초당 최대 300개의 메시지를 처리할 수 있습니다.

6. SQS의 주요 기능은 무엇인가요?

  • 데드 레터 대기열(Dead Letter Queue, DLQ): 지정된 횟수만큼 처리에 실패한 메시지를 별도의 대기열로 이동시켜, 이후에 문제를 분석하거나 재처리할 수 있도록 합니다.
  • 가시성 타임아웃(Visibility Timeout): 컨슈머가 메시지를 수신하여 처리하는 동안 다른 컨슈머가 동일한 메시지를 수신하지 못하도록 일정 시간 동안 해당 메시지를 숨깁니다. 기본값은 30초이며, 최대 12시간까지 설정할 수 있습니다.
  • 지연 큐(Delay Queue) 및 메시지 타이머(Message Timer): 메시지가 대기열에 도착한 후 일정 시간 동안 지연시킨 후에야 컨슈머가 수신할 수 있도록 설정할 수 있습니다.

7. SQS를 사용하면 어떤 이점이 있나요?

  • 비동기 처리: 대량의 메시지를 처리할 경우에도 시스템에 지장을 주지 않습니다.
  • 확장성: SQS는 필요에 따라 자동으로 큐 크기를 확장하여 유연하게 대응할 수 있습니다.
  • 신뢰성 및 내구성: 메시지의 안전을 위해 SQS는 메시지를 여러 서버에 저장하며, 처리 중인 메시지는 잠금 처리하여 여러 프로듀서와 컨슈머가 동시에 메시지를 전송 및 수신할 수 있습니다.
  • 보안성: SQS는 메시지를 암호화하여 안전하게 전송하며, AWS Key Management Service(KMS)를 사용하여 암호화합니다.

'BE 공부 > AWS' 카테고리의 다른 글

Amazon Simple Notification Service(SNS)  (0) 2025.01.17
AWS Secrets Manager: 쉽게 이해하는 보안 정보 관리의 시작  (0) 2025.01.02
AWS Credential과 Cognito  (2) 2024.12.12
Cognito와 KMS(2)  (0) 2024.12.12
Cognito와 KMS(1)  (0) 2024.12.12

댓글