

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

# Amazon CloudWatch 지표 및 로그를 사용한 Amazon SNS SMS 전송 모니터링
<a name="sms_stats_cloudwatch"></a>

Amazon CloudWatch 및 Amazon CloudWatch Logs를 사용하여 SMS 메시지 전송을 모니터링할 수 있습니다.

## Amazon CloudWatch 지표 보기
<a name="sms_stats_cloudwatch_metrics"></a>

Amazon SNS는 SMS 메시지 전송에 대한 지표를 자동으로 수집하고 Amazon CloudWatch에 푸시합니다. CloudWatch를 사용하여 이러한 측정치를 모니터링하고 지표가 임계값을 초과할 때 알리는 경보를 생성할 수 있습니다. 예를 들어 CloudWatch 지표를 모니터링하여 사용자의 SMS 전송 속도와 당월 누적 SMS 요금을 알아볼 수 있습니다.

CloudWatch 지표 모니터링, CloudWatch 경보 설정, 사용 가능한 지표 유형에 대한 자세한 내용은 [CloudWatch를 사용하여 Amazon SNS 주제 모니터링](sns-monitoring-using-cloudwatch.md)에서 확인하세요.

## CloudWatch Logs 보기
<a name="sns-viewing-cloudwatch-logs"></a>

Amazon SNS가 Amazon CloudWatch Logs에 쓸 수 있도록 설정하여 SMS 메시지 전송 성공 및 실패에 대한 정보를 수집할 수 있습니다. 전송하는 각 SMS 메시지에 대해 Amazon SNS는 메시지 가격, 성공 또는 실패 상태, 실패 이유(메시지가 실패한 경우), 메시지 유지 시간 및 기타 정보가 포함된 로그를 작성합니다.

**SMS 메시지에 대한 CloudWatch Logs를 사용하고 보려면**

1. [Amazon SNS 콘솔](https://console.aws.amazon.com/sns/home)에 로그인합니다.

1. 콘솔 메뉴에서 리전 선택기를 [SMS 메시징을 지원하는 리전](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html)으로 설정합니다.

1. 탐색 창에서 **문자 메시지(SMS)**를 선택합니다.

1. **모바일 문자 메시지(SMS)** 페이지의 **문자 메시지 기본 설정** 섹션에서 **편집**을 선택합니다.

1. 다음 페이지에서 **Delivery status logging(전송 상태 로깅)** 섹션을 확장합니다.

1. **성공 샘플 비율**에서 Amazon SNS가 CloudWatch Logs에 로그를 작성할 SMS 전송 성공 비율을 지정합니다. 예:
   + 전송 실패에 대한 로그만 작성하려면 이 값을 0으로 설정합니다.
   + 전송 성공의 10%에 대한 로그를 작성하려면 이 값을 10으로 설정합니다.

   비율을 지정하지 않으면 Amazon SNS는 모든 전송 성공에 대한 로그를 작성합니다.

1. 필요한 권한을 제공하려면 다음 중 하나를 수행하세요.
   + 새 서비스 역할을 만들려면 **새 서비스 역할 생성**을 선택한 다음 **새 역할 생성**을 선택합니다. 다음 페이지에서 **허용**을 선택하여 Amazon SNS에 계정 리소스에 대한 쓰기 액세스 권한을 부여합니다.
   + 기존 서비스 역할을 사용하려면 **기존 서비스 역할 사용**을 선택한 다음 **성공 및 실패한 전송에 대한 IAM 역할** 상자에 ARN 이름을 붙여넣습니다.

     지정하는 서비스 역할은 계정 리소스에 대한 쓰기 액세스를 허용해야 합니다. IAM 역할 생성에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스에 대한 역할 생성을](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) 참조하세요.

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

1. **모바일 문자 메시징(SMS)** 페이지로 돌아가서 **전송 상태 로그** 섹션으로 이동하여 사용 가능한 로그를 확인합니다.
**참고**  
대상 전화번호의 통신 사업자에 따라 Amazon SNS 콘솔에 전송 로그가 표시되는 데 최대 72시간이 걸릴 수 있습니다.

## SMS 전송 성공에 대한 로그 예제
<a name="example-log-successful-sms-delivery"></a>

SMS 전송 성공에 대한 전송 상태 로그는 다음 예제와 비슷합니다.

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

## SMS 전송 실패에 대한 로그 예제
<a name="example-log-failed-sms-delivery"></a>

SMS 전송 실패에 대한 전송 상태 로그는 다음 예제와 비슷합니다.

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

## SMS 전송 실패 이유
<a name="sms_stats_delivery_fail_reasons"></a>

실패 이유는 `providerResponse` 속성을 통해 제공됩니다. SMS 메시지는 다음과 같은 이유로 전송에 실패할 수 있습니다.
+ 전화 통신사가 스팸으로 차단함
+ 대상이 차단된 목록에 있음
+ 잘못된 전화번호
+ 메시지 본문이 잘못됨
+ 전화 통신사가 이 메시지를 차단함
+ 전화 통신사가 현재 연결 불가능/이용 불가능함
+ 전화에서 SMS가 차단됨
+ 휴대폰이 차단된 목록에 있음
+ 전화가 현재 연결 불가능/이용 불가능함
+ 전화번호가 옵트아웃됨
+ 이 메시지를 전송하면 최고 가격이 초과됨
+ 전화 연결을 시도하는 중 알 수 없는 오류 발생