SMS 메시지에 대한 Amazon SNS 주제 전송 로그에 액세스하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 6월 28일

SMS 메시지에 대한 Amazon Simple Notification Service(Amazon SNS) 주제 전송 로그에 액세스하고 싶습니다.

간략한 설명

다음 단계를 완료하기 전에 알림 메시지의 로그 전달 상태를 지원하는 SNS 엔드포인트를 사용하고 있는지 확인합니다.

  • HTTP(S)
  • Amazon Kinesis Data Firehose
  • AWS Lambda
  • 플랫폼 애플리케이션 엔드포인트
  • Amazon Simple Queue Service(Amazon SQS)
  • SMS

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

해결 방법

Amazon CloudWatch 로그에 대한 SMS 전송 상태 속성 구성

참고: 다음 콘솔 단계 대신 AWS SDK 또는 AWS CLI를 사용하여 메시지 전송 상태를 구성할 수 있습니다.

1.    Amazon SNS 콘솔을 엽니다.

2.    탐색 창에서 [모바일(Mobile)]을 확장한 후 [텍스트 메시징(SMS)(Text messaging (SMS))]을 선택합니다.

3.    [문자 메시징 기본 설정(Text messaging preferences)] 섹션에서 [편집(Edit)]을 선택합니다.

4.    [전송 상태 로깅 - 선택 사항(Delivery status logging - optional)]을 확장합니다.

5.    [성공 샘플 비율(Success sample rate)]에서 [%] 텍스트 상자에 [100]을 입력합니다.

참고: 성공률은 로그에 대한 성공적인 메시지 전달의 백분율입니다.

6.    [IAM 역할(IAM roles)] 섹션에서 [서비스(Service)] 역할에 [새 서비스 역할 생성(Create new service role)]을 선택한 다음 [새 역할 생성(Create new roles)]을 선택합니다. AWS Identity and Access Management(IAM) 콘솔을 엽니다.

참고: 올바른 권한을 가진 IAM 역할이 이미 있는 경우 대신 [기존 서비스 역할 사용(Use existing service role)]을 선택하여 해당 서비스 역할을 사용할 수 있습니다.

7.    IAM 콘솔 권한 요청 페이지에서 [허용(Allow)]을 선택합니다.

8.    Amazon SNS 콘솔로 돌아간 후 [변경 사항 저장(Save changes)]을 선택합니다.

이제 Amazon SNS에 대한 다음 정책 및 신뢰 관계를 통해 성공적인 전송 및 실패를 위해 IAM 역할이 생성됩니다.

IAM 역할:

arn:aws:iam::1111111111:role/SNSSuccessFeedback

정책:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:PutMetricFilter",
                "logs:PutRetentionPolicy"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

신뢰 관계:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "sns.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

전송 상태 로그 보기

1.    Amazon CloudWatch 콘솔을 엽니다.

2.    탐색 창에서 [로그(Logs)]를 확장하고 [로그 그룹(Log groups)]을 선택합니다.

3.    필터 검색 상자에 DirectPublishToPhoneNumber를 입력하여 Amazon SNS에 대한 SMS 로그 그룹만 찾습니다.

참고: 대상 전화 번호의 배송사에 따라 전송 로그가 Amazon SNS 콘솔에 표시되는 데 최대 72시간이 걸릴 수 있습니다.

예:

sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber 로그 그룹에는 성공적인 전송 로그가 포함되어 있습니다.

sns/us-east-1/1111111111/DirectPublishToPhoneNumber

성공적인 전송 로그 샘플:

{
    "notification": {
        "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf",
        "timestamp": "2016-06-28 00:40:34.558"
    },
    "delivery": {
        "phoneCarrier": "My Phone Carrier",
        "mnc": 270,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 310,
        "providerResponse": "Message has been accepted by phone carrier",
        "dwellTimeMs": 599,
        "dwellTimeMsUntilDeviceAck": 1344
    },
    "status": "SUCCESS"
}

sns/your-AWS-region/your-AWS-account-ID/DirectPublishToPhoneNumber/Failure 로그 그룹에는 실패 전송 로그가 포함되어 있습니다.

sns/us-east-1/1111111111/DirectPublishToPhoneNumber/Failure

샘플 실패 전송 로그:

{
    "notification": {
        "messageId": "1077257a-92f3-5ca3-bc97-6a915b310625",
        "timestamp": "2016-06-28 00:40:34.559"
    },
    "delivery": {
        "mnc": 0,
        "destination": "+1XXX5550100",
        "priceInUSD": 0.00645,
        "smsType": "Transactional",
        "mcc": 0,
        "providerResponse": "Unknown error attempting to reach phone",
        "dwellTimeMs": 1420,
        "dwellTimeMsUntilDeviceAck": 1692
    },
    "status": "FAILURE"
}

4.    보려는 SNS 로그 그룹을 선택합니다.

5.    [로그 스트림(Log streams)] 탭에서 특정 로그 스트림을 선택하여 SMS 전송 로그를 봅니다.

6.    SMS 메시지의 전송 상태를 보려면 로그 이벤트를 확장하고 providerResponse를 확인합니다.

수신 거부된 전화 번호 확인

수신자는 AWS 계정에서 휴대폰의 SMS 메시지 수신을 거부할 수 있습니다. 자세한 내용은 SMS 메시지 수신 거부를 참조하세요.

1.    Amazon SNS 콘솔을 엽니다.

2.    탐색 창에서 [모바일(Mobile)] 섹션을 확장한 후 [텍스트 메시징(SMS)(Text Messaging (SMS))]을 선택합니다.

3.    수신 거부된 전화 번호를 확인하려면 [수신 거부된 전화 번호(Opted-out phone numbers)] 섹션으로 이동합니다.