FIFO 주제 소유자의 메시지 아카이브 - Amazon Simple Notification Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

FIFO 주제 소유자의 메시지 아카이브

메시지 아카이브 기능을 통해 주제에 게시된 모든 메시지의 단일 사본을 아카이브할 수 있습니다. 주제에 대한 메시지 아카이브 정책을 활성화하여 게시된 메시지를 주제 내에 저장할 수 있습니다. 그러면 해당 주제에 연결된 모든 구독의 메시지를 아카이브할 수 있습니다. 메시지는 최소 1일에서 최대 365일 동안 아카이브될 수 있습니다.

아카이브 정책을 설정하면 추가 요금이 부과됩니다. 요금 정보는 Amazon SNS 요금을 참조하세요.

AWS Management Console을 사용하여 메시지 아카이브 정책 생성

AWS Management Console을 사용하여 새 메시지 아카이브 정책을 생성하려면 이 옵션을 사용합니다.

  1. Amazon SNS 콘솔에 로그인합니다.

  2. 주제를 선택하거나 새로운 주제를 생성합니다. 주제 생성 및 구성에 대한 자세한 내용은 Amazon SNS 주제 생성을 참조하세요.

    참고

    Amazon SNS 메시지 아카이브 및 재생은 애플리케이션 간(A2A) FIFO 주제에만 사용할 수 있습니다.

  3. 주제 편집 페이지에서 아카이브 정책 섹션을 확장합니다.

  4. 아카이브 정책 기능을 활성화하고 주제에 메시지를 아카이브하려는 일수를 입력합니다.

  5. 변경 사항 저장을 선택합니다.

메시지 아카이브 주제 정책을 확인, 편집 및 비활성화하려면

  • 주제 세부 정보 페이지의 보존 정책에는 설정된 일수를 포함한 아카이브 정책의 상태가 표시됩니다. 아카이브 정책 탭을 선택하면 다음 메시지 아카이브 세부 정보를 볼 수 있습니다.

    • 상태 - 아카이브 정책이 적용되면 아카이브 및 재생 상태가 활성으로 표시됩니다. 아카이브 정책이 빈 JSON 객체로 설정되면 아카이브 및 재생 상태가 비활성으로 표시됩니다.

    • 메시지 보존 기간 - 지정된 메시지 보존 일수입니다.

    • 아카이브 시작 날짜 - 구독자가 메시지를 재생할 수 있는 날짜입니다.

    • JSON 미리 보기 - 아카이브 정책의 JSON 미리 보기입니다.

  • (선택 사항) 아카이브 정책을 편집하려면 주제 요약 페이지로 이동하여 편집을 선택합니다.

  • (선택 사항) 아카이브 정책을 비활성화하려면 주제 요약 페이지로 이동하여 편집을 선택합니다. 아카이브 정책을 비활성화하고 변경 사항 저장을 선택합니다.

  • (선택 사항) 아카이브 정책을 사용하여 주제를 삭제하려면 먼저 앞서 설명한 대로 아카이브 정책을 비활성화해야 합니다.

    중요

    실수로 메시지가 삭제되는 것을 방지하려는 경우, 활성 메시지 아카이브 정책이 적용된 주제는 삭제할 수 없습니다. 주제를 삭제하려면 먼저 주제의 메시지 아카이브 정책을 비활성화해야 합니다. 메시지 아카이브 정책을 비활성화하면 Amazon SNS에서 아카이브된 모든 메시지가 삭제됩니다. 주제를 삭제하면 구독이 제거되고 전송 중인 메시지가 전송되지 않을 수 있습니다.

API를 사용하여 메시지 아카이브 정책 생성

API를 사용하여 메시지 아카이브 정책을 생성하려면 주제에 ArchivePolicy 속성을 추가해야 합니다. API 작업 CreateTopicSetTopicAttributes를 사용하여 ArchivePolicy를 설정할 수 있습니다. ArchivePolicy에는 Amazon SNS가 메시지를 보관하는 일수를 나타내는 단일 값인 MessageRetentionPeriod가 있습니다. 주제에 대한 메시지 아카이브를 활성화하려면 MessageRetentionPeriod를 0보다 큰 정수 값으로 설정합니다. 예를 들어 아카이브에서 메시지를 30일 동안 보존하려면 ArchivePolicy를 다음과 같이 설정합니다.

{ "ArchivePolicy": { "MessageRetentionPeriod": "30" } }

주제에 대한 메시지 아카이브를 비활성화하고 아카이브를 지우려면 다음과 같이 ArchivePolicy 설정을 해제합니다.

{}

SDK를 사용하여 메시지 아카이브 정책 생성

AWS SDK를 사용하려면 자격 증명을 사용하여 구성해야 합니다. 자세한 정보는 AWS SDK 및 도구 참조 가이드공유 configcredentials 파일을 참조하세요.

다음 코드 예시에서는 해당 주제에 게시된 모든 메시지를 30일 동안 보존하도록 Amazon SNS 주제에 ArchivePolicy를 설정하는 방법을 보여줍니다.

// Specify the ARN of the Amazon SNS topic to set the ArchivePolicy for. String topicArn = "arn:aws:sns:us-east-2:123456789012:MyArchiveTopic.fifo"; // Set the MessageRetentionPeriod to 30 days for the ArchivePolicy. String archivePolicy = "{\"MessageRetentionPeriod\":\"30\"}"; // Set the ArchivePolicy for the Amazon SNS topic SetTopicAttributesRequest request = new SetTopicAttributesRequest() .withTopicArn(topicArn) .withAttributeName("ArchivePolicy") .withAttributeValue(archivePolicy); sns.setTopicAttributes(request);

AWS CloudFormation을 사용하여 메시지 아카이브 정책 생성

AWS CloudFormation을 사용하여 아카이브 정책을 생성하려면 AWS CloudFormation 사용 설명서AWS::SNS::Topic 섹션을 참조하세요.

암호화된 아카이브에 대한 액세스 권한 부여

구독자가 암호화된 주제에서 메시지 재생을 시작할 수 있도록 하려면 먼저 다음 단계를 완료해야 합니다. 이전 메시지가 재생되므로 아카이브의 메시지를 암호화하는 데 사용된 KMS 키에 대한 Decrypt 액세스 권한을 Amazon SNS에 프로비저닝해야 합니다.

  1. KMS 키로 메시지를 암호화하고 주제 내에 저장하는 경우 키 정책을 통해 이러한 메시지를 해독할 수 있는 권한을 Amazon SNS에 부여해야 합니다. 자세한 내용은 Amazon SNS에 암호 해독 권한 부여 섹션을 참조하세요.

  2. Amazon SNS용 AWS KMS를 활성화합니다. 자세한 내용은 AWS KMS 권한 구성 섹션을 참조하세요.

중요

KMS 키 정책에 새 섹션을 추가할 때 정책의 기존 섹션을 변경하지 마세요. 주제에 암호화가 활성화되고 KMS 키가 비활성화 또는 삭제되거나 KMS 키 정책이 Amazon SNS에서 올바르게 구성되지 않은 경우 Amazon SNS는 구독자에게 메시지를 재생할 수 없습니다.

Amazon SNS에 암호 해독 권한 부여

Amazon SNS가 주제 아카이브 내에서 암호화된 메시지에 액세스하고 이를 구독한 엔드포인트에 재생하려면 Amazon SNS 서비스 보안 주체를 활성화하여 이러한 메시지를 해독해야 합니다.

다음은 주제 내에서 이전 메시지를 재생하는 동안 Amazon SNS 서비스 보안 주체가 저장된 메시지를 해독하도록 허용하는 데 필요한 정책의 예입니다.

{ "Sid": "Allow SNS to decrypt archived messages", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

Amazon CloudWatch를 사용하여 메시지 아카이브 지표 모니터링

Amazon CloudWatch에서 다음 지표를 사용하여 아카이브된 메시지를 모니터링할 수 있습니다. 워크로드의 이상 현상에 대한 알림을 받고 관련 영향을 방지하기 위해 이러한 지표에 Amazon CloudWatch 경보를 구성할 수 있습니다. 자세한 내용은 Amazon SNS의 로깅 및 모니터링을(를) 참조하십시오.

지표 Description

ApproximateNumberOfMessagesArchived

주제 소유자에게 주제 아카이브에 아카이브된 총 메시지 수를 60분 단위로 제공합니다.

ApproximateNumberOfBytesArchived

주제 소유자에게 주제 아카이브의 모든 메시지에 걸쳐 아카이브된 총 바이트 수를 60분 단위로 제공합니다.

NumberOfMessagesArchiveProcessing

주제 소유자에게 해당 간격 동안 주제 아카이브에 저장된 메시지 수를 1분 단위로 제공합니다.

NumberOfBytesArchiveProcessing

주제 소유자에게 해당 간격 동안 주제 아카이브에 저장된 총 바이트 수를 1분 단위로 제공합니다.

GetTopicAttributes API에는 구독자가 재생을 시작할 수 있는 가장 오래된 타임스탬프를 나타내는 BeginningArchiveTime 속성이 있습니다. 다음은 이 API 작업에 대한 샘플 응답입니다.

{ "ArchivePolicy": { "MessageRetentionPeriod": "<integer>" }, "BeginningArchiveTime": "<timestamp>", ... }