3가지: Amazon SQS 기반 솔루션 개발

Amazon Simple Queue Service 또는 Amazon SQS는 개발자가 느슨하게 결합된 솔루션을 구축할 수 있도록 하는 분산 메시지 대기열 서비스입니다. 종종 사용 용이성으로 평가되는 Amazon SQS 대기열은 AWS 콘솔, SDK 또는 CLI에서 몇 초 만에 가동할 수 있습니다. 하지만 Amazon SQS로 솔루션을 개발할 때 개발자가 알아야 할 미묘함이 있습니다.



사진 제공: Shumilov Ludmila on Unsplash

암호화



Amazon SQS 대기열에 저장된 메시지는 유휴 데이터입니다. 그리고 Amazon S3 버킷이나 Amazon SNS 주제의 데이터를 보호하려는 경우와 마찬가지로 KMS 키로 데이터를 암호화하여 데이터를 보호할 수 있습니다. KMS를 사용한 Amazon SQS 서버 측 암호화를 사용하면 메시지가 SQS에서 수신될 때 암호화되고 SQS 메시지 대기열 및 KMS 키에 대해 권한이 있는 메시지 소비자에게 전달될 때 해독됩니다.

또는 Amazon Simple Queue Service는 SQS 관리 암호화 키를 사용하여 자체 서버 측 암호화를 제공합니다. SQS 관리 암호화 키를 사용하여 SQS 대기열을 암호화하는 것은 다음 명령을 사용하는 것만큼 쉽습니다.

$ aws sqs set-queue-attributes \
   ––queue-url https://(MyQueueURL) \
   ––attributes '{"SqsManagedSseEnabled": "true"}'


임시 메시징



기본적으로 Amazon SQS에 저장되는 메시지는 "At-Least-Once Delivery"용으로 설계되었습니다. 즉, Amazon SQS 메시지는 최소 한 번 전달되지만 두 번 이상 전달될 수 있으며 메시지가 순서대로 유지된다는 보장이 없습니다. 그러나 메시지를 순서대로 한 번만 전달해야 하는 경우 Amazon SQS FIFO 대기열을 선택할 수 있습니다. Amazon SQS FIFO 대기열은 메시지가 한 번만 전달되고 선입선출 순서로 전달되는 Exactly-Once Processing을 위해 설계되었습니다.

다음은 AWS .NET SDK를 사용하여 Amazon SQS FIFO 대기열에 메시지를 보내는 예입니다. "MessageGroupId"속성의 사용에 유의하십시오. 이는 FIFO 메시징에 대한 요구 사항입니다.

SendMessageRequest sendMessageRequest = new SendMessageRequest(queueUrl, message);

sendMessageRequest.MessageGroupId = "message-group-1";

var sqsClient = new AmazonSQSClient();

await sqsClient.SendMessageAsync(sendMessageRequest);


메시지 보존



Amazon SQS의 메시지는 영원히 저장할 수 없습니다. 실제로 Amazon SQS의 메시지는 최대 14일 동안 최소 1분 동안 저장할 수 있습니다. 기본적으로 Amazon SQS 메시지 보존 기간은 4일입니다.

다음은 AWS CLI를 사용하여 보존 기간이 1분인 Amazon SQS 대기열을 설정하는 명령의 예입니다.

$ aws sqs set-queue-attributes \
   ––queue-url https://(MyQueueURL) \
   ––attributes '{"MessageRetentionPeriod": "60'


이 기사의 기술에 대해 더 알고 싶으십니까? 다음 리소스를 확인하세요.

AWS CLI , Configuring the AWS CLI , AWS .NET SDK , .NET

좋은 웹페이지 즐겨찾기