Amazon Simple Queue Service(Amazon SQS)는 내구력 있고 가용성이 뛰어난 보안 호스팅 대기열을 제공하며 이를 통해 분산 소프트웨어 시스템과 구성 요소를 통합 및 분리할 수 있습니다. Amazon SQS는 배달 못한 편지 대기열 및 비용 할당 태그와 같은 공용 구성을 제공합니다. 또한 AWS SDK가 지원하는 모든 프로그래밍 언어로 액세스할 수 있는 일반 웹 서비스 API를 제공합니다.
- 보안 - 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보다 큰 메시지 콘텐츠를 저장하거나 큰 메시지를 더 작은 메시지로 분할할 수 있습니다.
다른 AWS 인프라 웹 서비스와 함께 사용
Redshift, DynamoDB, RDS, EC2, ECS, Lambda 및 S3 등 다른 AWS 서비스와 함께 사용하면 분산 애플리케이션의 안정성과 확장성을 더 확장시킬 수 있다.
- 작업 대기열: 동일한 양의 작업 일부를 동시에 처리하지 못할 수 있는 분산 애플리케이션의 구성 요소를 분리합니다.
- 버퍼 및 배치(Batch) 작업: 아키텍처에 확장성과 안정성을 더하고, 메시지를 손실하거나 지연 시간을 늘리지 않고 일시적인 볼륨 스파이크를 원활하게 처리합니다.
- 요청 분산: 요청을 전송하여 대화식 요청 경로에서 속도가 느린 작업을 제거합니다.
- 팬아웃: SQS를 Simple Notification Service(SNS)와 결합하여 메시지의 동일한 사본을 여러 대기열에 병렬로 전송합니다.
- 우선순위: 별도의 대기열을 사용하여 작업의 우선순위를 지정합니다.
- 확장성: 메시지 대기열에서 프로세스를 분리하므로, 다른 프로세스를 추가하기만 하면 손쉽게 메시지 송신이나 수신 속도를 높일 수 있습니다.
- 복원력: 시스템 일부에 장애가 발생하더라도 전체 시스템에는 영향을 주지 않습니다. 메시지 대기열에서 시스템의 구성 요소를 분리하므로 대기열에서 메시지를 읽어오는 프로세스가 실패한 경우에도, 시스템이 복구되면 처리되도록 메시지를 대기열에 추가할 수 있습니다.
자료
https://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-benefits.html
'Backend > Infra' 카테고리의 다른 글
AWS Kinesis - data stream (0) | 2024.03.18 |
---|---|
Aws Lambda에 대해서 (0) | 2024.03.18 |