다른 AWS 계정에서 Amazon SQS 대기열에 대해 "삭제된" Amazon SNS 주제 구독을 다시 생성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 3월 2일

한 AWS 계정의 Amazon Simple Queue Service(Amazon SQS) 대기열이 다른 계정의 Amazon Simple Notification Service(Amazon SNS) 주제를 구독했습니다. 교차 계정 구독을 삭제했으며 상태는 이제 “Deleted”입니다. 구독을 다시 생성하려면 어떻게 해야 합니까?

간략한 설명

Amazon SNS Subscribe API를 호출하면 사용하는 AWS 계정이 구독 소유자가 됩니다. 구독을 소유하지 않은 다른 계정에서 Amazon SNS Unsubscribe API를 호출하여 구독을 삭제하면 구독은 72시간 동안 “Deleted” 상태가 됩니다.

이 시간 동안에는 구독 소유자 계정이 동일한 엔드포인트를 해당 SNS 주제에 다시 구독할 수 없습니다. 72시간이 지나면 Amazon SNS가 “Deleted” 구독을 삭제하여 이전과 같이 다시 구독할 수 있습니다.

참고: 동일한 AWS 계정에서 SubscribeUnsubscribe API 호출을 실행하는 것이 가장 좋습니다.

​해결 방법

참고: 이 해결 방법은 HTTP/S 엔드포인트 구독자에게도 적용됩니다. 하지만 AWS Lambda 함수 구독자에게는 적용되지 않습니다.

72시간을 기다리지 않으려면 다음 중 하나를 수행하여 구독을 다시 생성합니다.

  • 구독 삭제 후 SQS 대기열로 전송된 UnsubscribeConfirmation 메시지에서 SubscribeURL을 찾습니다. HTTP GET 요청을 SubscribeURL에 전송합니다. 예를 들어 다음과 같습니다.
curl -X GET "https://sns.us-west-2.amazonaws.com/?Action=ConfirmSubscription&TopicArn=arn:aws:sns:us-west-2:123456789012:MyTopic&Token=2336412f37fb687f5d51e6e241d09c805a5a57b30d712f794cc5f6a988666d92768dd60a747ba6f3beb71854e285d6ad02428b09ceece29417f1f02d609c582afbacc99c583a916b9981dd2728f4ae6fdb82efd087cc3b7849e05798d2d2785c03b0879594eeac82c01f235d0e717736"
  • SNS 주제를 소유한 AWS 계정에서 Subscribe API를 호출합니다. 그런 다음 구독 확인 대기열에서 메시지를 읽을 수 있는 권한을 사용자에게 부여합니다.
  • 새 SNS 주제를 생성하여 현재 주제를 대체한 다음 SQS 대기열에서 새 주제를 구독합니다.