기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon 심플 큐 서비스란?
Amazon Simple Queue Service(Amazon SQS)는 내구력 있고 가용성이 뛰어난 보안 호스팅 대기열을 제공하며 이를 통해 분산 소프트웨어 시스템과 구성 요소를 통합 및 분리할 수 있습니다. Amazon SQS는 배달 못한 편지 대기열 및 비용 할당 태그와 같은 공용 구성을 제공합니다. AWS SDK가 지원하는 모든 프로그래밍 언어를 사용하여 액세스할 수 있는 일반 웹 서비스 API를 제공합니다.
Amazon SQS 사용의 이점
-
보안 - Amazon SQS 대기열에 메시지를 보내고 받을 수 있는 사람을 제어합니다. 기본 Amazon SQS 관리형 서버 측 암호화(SSE)를 사용하거나 AWS Key Management Service (AWS KMS)에서 관리되는 사용자 지정 SSE 키를 사용하여 대기열에 있는 메시지의 콘텐츠를 보호함으로써 민감한 데이터를 전송하도록 선택할 수 있습니다.
-
내구성 – 메시지의 안전을 위해 Amazon SQS는 메시지를 여러 서버에 저장합니다. 표준 대기열은 at-least-once 메시지 전송을 지원하고 FIFO 대기열은 정확히 한 번의 메시지 처리 및 높은 처리량 모드를 지원합니다.
-
가용성 – Amazon SQS는 중복 인프라를 사용하여 메시지에 대한 고도의 동시 액세스와 메시지 생성 및 소비에 대한 고가용성을 제공합니다.
-
확장성 – Amazon SQS는 버퍼링된 요청을 각각 독립적으로 처리하여 프로비저닝 지침 없이도 로드 증가 또는 급증을 처리하기 위해 투명하게 확장할 수 있습니다.
-
신뢰성 – Amazon SQS는 처리 중에 메시지를 잠그므로 여러 생산자와 소비자가 동시에 메시지를 전송 및 수신할 수 있습니다.
-
사용자 지정 – 대기열이 똑같을 필요는 없습니다. 예를 들어 대기열에서 기본 지연 시간을 설정할 수 있습니다. Amazon S3 객체에 대한 포인터를 보유하는 Amazon SQS를 통해 Amazon DynamoDB 또는 Amazon Simple Storage Service(S3)를 사용하여 256KB보다 큰 메시지 콘텐츠를 저장하거나 큰 메시지를 더 작은 메시지로 분할할 수 있습니다.
Amazon SQS 기본 아키텍처
이 섹션에서는 분산 메시징 시스템의 주요 부분에 대해 간략히 소개하고 Amazon SQS 메시지의 수명 주기에 대해 설명합니다.
분산 대기열
분산 메시징 시스템에는 세 가지 주요 부분, 즉 분산 시스템의 구성 요소, 대기열(Amazon SQS 서버에 분산됨), 대기열의 메시지가 있습니다.
다음 시나리오에서 시스템에는 여러 생산자(메시지를 대기열로 전송하는 구성 요소) 및 소비자(대기열의 메시지를 수신하는 구성 요소)가 있습니다. 대기열(메시지 A~E 유지)은 여러 Amazon SQS 서버에서 메시지를 중복으로 저장합니다.
메시지 수명 주기
다음 시나리오에서는 대기열에서 생성부터 삭제까지 Amazon SQS 메시지의 수명 주기를 설명합니다.
생산자(구성 요소 1)는 메시지 A를 대기열로 전송하고 이 메시지는 Amazon SQS 서버에서 중복 분산됩니다.
소비자(구성 요소 2)는 메시지를 처리할 준비가 되면 대기열에서 메시지를 소비하고 메시지 A가 반환됩니다. 메시지 A는 처리되는 동안 대기열에 그대로 남아 있고 제한 시간 초과가 지속되는 동안 후속 수신 요청으로 반환되지 않습니다.
소비자(구성 요소 2)는 대기열에서 메시지 A를 삭제하여 제한 시간 초과가 만료되면 이 메시지가 수신되어 다시 처리되지 못하도록 합니다.
참고
Amazon SQS는 최대 메시지 보존 기간 넘게 대기열에 유지된 메시지를 자동으로 삭제합니다. 기본 메시지 보존 기간은 4일입니다. 그러나 SetQueueAttributes
작업을 사용하면 메시지 보존 기간을 60초에서 1,209,600초(14일) 사이로 설정할 수 있습니다.
Amazon SQS, Amazon MQ 및 Amazon SNS 간의 차이점
Amazon SQS, Amazon SNS 및 Amazon
Amazon SQS는 분산 소프트웨어 시스템과 구성 요소를 대기열 서비스로서 분리하고 확장합니다. 일반적으로 단일 구독자를 통해 메시지를 처리하므로 주문 및 손실 방지가 중요한 워크플로에 적합합니다. 더 넓은 배포를 위해 Amazon SQS를 Amazon SNS와 통합하면 팬아웃 메시징 패턴이 구현되어 한
Amazon SNS를 사용하면 게시자가 주제를 통해 여러 구독자에게 메시지를 보낼 수 있으며, 이는 커뮤니케이션 채널 역할을 합니다. 구독자는 Amazon SQS, Lambda, HTTP, 이메일 Amazon Data Firehose, 모바일 푸시 알림, 모바일 문자 메시지 (SMS) 등 지원되는 엔드포인트 유형을 사용하여 게시된 메시지를 수신합니다. 이 서비스는 실시간 사용자 참여 또는 경보 시스템과 같이 즉각적인 알림이 필요한 시나리오에 적합합니다. 구독자가 오프라인 상태일 때 메시지 손실을 방지하기 위해 Amazon SNS를 Amazon SQS 대기열 메시지와 통합하면 일관된 전송이 보장됩니다.
Amazon MQ는 Apache ActiveMQ 및 RabbitMQ와 함께 AMQP 및 MQTT와 같은 표준 메시징 프로토콜을 지원하여 기존 메시지 브로커에서 마이그레이션하려는 기업에 가장 적합합니다.
다음 차트는 각 서비스의 리소스 유형에 대한 개요를 제공합니다.
리소스 유형 | Amazon SNS | Amazon SQS | Amazon MQ |
---|---|---|---|
동기식 | 아니요 | 아니요 | 예 |
비동기식 | 예 | 예 | 예 |
대기열 | 아니요 | 예 | 예 |
게시자-구독자 메시징 | 예 | 아니요 | 예 |
메시지 브로커 | 아니요 | 아니요 | 예 |
Amazon SQS와 Amazon SNS는 무제한에 가까운 확장성과 간편한 API를 활용할 수 있는 새로운 애플리케이션에 사용하면 좋습니다. 이들은 일반적으로 가격 면에서도 대용량 애플리케이션을 위한 더 비용 효율적인 솔루션을 제공합니다. pay-as-you-go JMS와 같은 API 또는 고급 메시지 큐 프로토콜 (AMQP), MQTT, OpenWire 단순 텍스트 지향 메시지 프로토콜 (STOMP) 과 같은 프로토콜과의 호환성을 사용하는 기존 메시지 브로커에서 애플리케이션을 마이그레이션할 때는 Amazon MQ를 사용하는 것이 좋습니다.