기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SNS를 사용하여 대용량 메시지 게시
Amazon SNS는 MaximumMessageSize 주제 속성을 구성할 때 최대 1MiB(1,048,576바이트)의 메시지 페이로드를 지원합니다. 기본적으로 주제는 최대 256KiB의 메시지를 수락합니다. 가 256KiB 이상으로 MaximumMessageSize 설정된 주제는 주제당 최대 총 100개의 AWS Lambda 구독으로 Amazon Data Firehose, Amazon SQS 및 구독을 지원합니다.
대용량 메시지 게시 작동 방식
MaximumMessageSize 주제 속성을 1,024~1,048,576바이트 사이의 정수 값으로 설정할 수 있습니다. 기본적으로 기존 주제와 새로 생성된 모든 주제MaximumMessageSize의는 262,144바이트(256KiB)입니다.
메시지를 게시하면 Amazon SNS는 메시지 본문과 메시지 속성의 결합된 크기를 주제의 구성된와 비교하여 검증합니다MaximumMessageSize. 결합된 크기가 제한을 초과하면 Amazon SNS는 게시 시 InvalidParameter 오류를 반환합니다.
지원되는 구성
를 256KiB MaximumMessageSize 이상으로 설정하면 Amazon SNS가 다음 구성을 지원합니다.
구독 제한
이 주제는 최대 100개의 총 구독을 지원합니다. 추가 구독을 생성하려고 하면 Amazon SNS에서 InvalidParameter 오류를 반환합니다.
지원되는 엔드포인트 유형
256KiBMaximumMessageSize를 초과하는 주제는 다음 엔드포인트 유형을 지원합니다.
-
Amazon Data Firehose
-
Amazon SQS
-
AWS Lambda
256KiB 이하의 주제MaximumMessageSize는 HTTP/HTTPS, SMS, 이메일, 이메일-json 및 모바일 푸시(애플리케이션) 엔드포인트도 지원합니다.
기존 주제에 MaximumMessageSize 설정
MaximumMessageSize 언제든지 주제의를 늘리거나 줄일 수 있습니다. 값을 변경하면 Amazon SNS는 업데이트된 한도에 대해 새 게시 요청을 검증합니다.
256KiB MaximumMessageSize 이상으로 설정하려면 주제에 100개 이하의 총 구독이 있어야 하며,이 모든 구독은 지원되는 엔드포인트 유형(Amazon Data Firehose, Amazon SQS 또는 AWS Lambda)이어야 합니다. 주제에 지원되지 않는 엔드포인트 유형이 있거나 구독이 100개를 초과하는 경우 Amazon SNS는 InvalidParameter 오류를 반환합니다.
대용량 메시지에 대한 주제 구성
AWS 관리 콘솔 사용
더 큰 메시지를 게시하도록 주제를 구성하려면
-
https://console.aws.amazon.com/sns/home
Amazon SNS 콘솔을 엽니다. -
왼쪽 탐색 창에서 주제를 선택합니다.
-
주제를 선택하고 편집을 선택합니다.
-
최대 메시지 크기에서 원하는 제한(최대 1,024KiB)을 설정합니다.
-
변경 사항 저장을 선택합니다.
AWS CLI 사용
새 주제를 생성할 MaximumMessageSize 때를 설정합니다.
aws sns create-topic \ --name my-large-message-topic \ --attributes MaximumMessageSize=1048576
my-large-message-topic를 주제 이름으로 바꾸고 1048576를 원하는 최대 메시지 크기로 바이트 단위로 바꿉니다.
기존 주제에 MaximumMessageSize 설정:
aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic \ --attribute-name MaximumMessageSize \ --attribute-value 1048576
arn:aws:sns:us-east-1:123456789012:my-topic를 주제의 ARN으로 바꾸고 1048576를 원하는 최대 메시지 크기로 바이트 단위로 바꿉니다.
주제의 현재를 확인합니다MaximumMessageSize. 속성이 명시적으로 설정되지 않은 경우 응답에 표시되지 않으며 주제는 기본값인 262,144바이트(256KiB)를 사용합니다.
aws sns get-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic
대용량 메시지에 대한 Amazon SNS API 참조
대규모 메시지 지원은 기존 Amazon SNS APIs 사용합니다. 새 API 작업은 필요하지 않습니다.
| API | 변경 |
|---|---|
CreateTopic |
Attributes 파라미터MaximumMessageSize에서를 허용합니다. 유효한 범위: 1,024~1,048,576바이트. |
SetTopicAttributes |
MaximumMessageSize 속성 이름으로 수락합니다. |
GetTopicAttributes |
속성이 명시적으로 설정된 MaximumMessageSize 경우를 반환합니다. 반환되지 않으면 주제는 기본값인 262,144바이트(256KiB)를 사용합니다. |
Publish |
주제의에 대해 메시지 본문 및 메시지 속성의 결합된 크기를 검증합니다MaximumMessageSize. |
PublishBatch |
주제의에 대해 배치에 있는 모든 메시지(각 메시지의 본문 및 속성)의 결합된 크기를 검증합니다MaximumMessageSize. |
엔드포인트 호환성
다음 목록은 Amazon SNS가 지원되는 각 엔드포인트 유형에 대용량 메시지를 전달하는 방법을 설명합니다.
-
Amazon Data Firehose - Amazon Data Firehose는 스트리밍 데이터를 데이터 스토어 및 분석 서비스로 로드합니다. 최대 1,000KiB(1,024,000바이트)의 레코드를 지원합니다. 전송된 메시지는이 제한 미만으로 유지되어야 합니다. 제한에는 메시지 ID 및 타임스탬프와 같은 Amazon SNS 전송 메타데이터가 포함됩니다. 제한을 초과하는 메시지는 전송에 실패합니다. 주제의는 최대 1,024KiB(1,048,576바이트)로 설정할
MaximumMessageSize수 있습니다. 따라서MaximumMessageSizeFirehose 구독 주제의 경우를 낮게 설정하는 것이 좋습니다. 현재 레코드 크기 제한은 Amazon Data Firehose 할당량을 참조하세요. -
Amazon SQS - Amazon SNS는 구독한 Amazon SQS 대기열에 Amazon SQS 지원되는 최대 메시지 크기까지 메시지를 전송할 수 있습니다. 대기열 자체는 Amazon SNS의 메시지에는 적용되지
MaximumMessageSize않습니다. Amazon SNS 주제의는 이러한 메시지의 유효 크기 제한MaximumMessageSize입니다. -
AWS Lambda – Amazon SNS는 비동기식으로 AWS Lambda 함수를 호출합니다.는 최대 1MiB의 비동기식 호출 페이로드를 AWS Lambda 지원합니다. AWS Lambda 구독에는 추가 구성이 필요하지 않습니다.
모범 사례
배달 못한 편지 대기열 구성
실패한 메시지 전송을 처리하려면 모든 구독에 DLQ(Dead Letter Queue)를 구성하는 것이 좋습니다. DLQ는 Amazon SNS가 구독한 엔드포인트로 성공적으로 전송할 수 없는 메시지를 캡처하므로 이를 검사하고 재처리할 수 있습니다. 자세한 내용은 Amazon SNS Dead Letter Queue(DLQ) 섹션을 참조하세요.
CloudWatch 지표 및 경보를 사용하여 모니터링
CloudWatch 지표를 사용하여 메시지 전송을 모니터링하고 실패한 전송에 대한 경보를 설정합니다. NumberOfNotificationsFailed 지표는 Amazon SNS가 구독한 엔드포인트에 전달할 수 없는 메시지를 추적합니다. 이 지표에 CloudWatch 경보를 생성하여 전송 실패 시 알림을 수신합니다. 자세한 내용은 CloudWatch를 사용하여 Amazon SNS 주제 모니터링 섹션을 참조하세요.
Amazon S3를 사용하여 1MiB보다 큰 메시지 게시
1MiB보다 큰 메시지를 게시하려면 Java용 Amazon SNS 확장 클라이언트 라이브러리MaximumMessageSize하기 전에 늘리는 방법에 대한 지침은 섹션을 참조하세요대용량 메시지에 대한 주제 구성.