

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

# Amazon SNS SMS 활동 모니터링
<a name="sms_stats"></a>

SMS 활동을 모니터링하여 대상 전화번호, 전송 성공 또는 실패, 실패 이유, 비용 및 기타 정보를 추적할 수 있습니다. Amazon SNS는 콘솔에서 통계를 요약하고, Amazon CloudWatch에 정보를 보내고, 지정한 Amazon S3 버킷에 일일 SMS 사용 보고서를 전송하여 도움을 줍니다.

# Amazon SNS SMS 전송 통계 보기
<a name="sms_stats_console"></a>

Amazon SNS 콘솔을 사용하여 초신 SMS 전송에 대한 통계를 볼 수 있습니다.

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

1. 콘솔 메뉴에서 리전 선택기를 [SMS 메시징을 지원하는 리전](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html)으로 설정합니다.

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

1. [**Text messaging (SMS)**] 페이지의 [**Account stats**] 섹션에서 트랜잭션 및 프로모션 SMS 메시지 전송에 대한 차트를 봅니다. 각 차트에는 이전 15일에 대한 다음 데이터가 표시됩니다.
   + 전송 비율(전송 성공 비율)
   + 보냄(전송 시도 수)
   + 실패(전송 실패 수)

이 페이지에서 **사용량** 버튼을 선택하여 일일 사용 보고서를 저장하는 Amazon S3 버킷으로 이동할 수도 있습니다. 자세한 내용은 [Amazon SNS 일일 SMS 사용 보고서 구독](sms_stats_usage.md) 섹션을 참조하세요.

# 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가 차단됨
+ 휴대폰이 차단된 목록에 있음
+ 전화가 현재 연결 불가능/이용 불가능함
+ 전화번호가 옵트아웃됨
+ 이 메시지를 전송하면 최고 가격이 초과됨
+ 전화 연결을 시도하는 중 알 수 없는 오류 발생

# Amazon SNS 일일 SMS 사용 보고서 구독
<a name="sms_stats_usage"></a>

Amazon SNS의 일일 사용 보고서를 구독하여 SMS 전송을 모니터링할 수 있습니다. 매일 하나 이상의 SMS 메시지를 전송하는 사용자의 경우, Amazon SNS는 사용 보고서를 지정된 Amazon S3 버킷에 CSV 파일로 전송합니다. SMS 사용 보고서가 Amazon S3 버킷에서 사용 가능하게 되려면 24시간이 걸립니다.

## 일일 사용 보고서 정보
<a name="daily_usage_info"></a>

사용 보고서에는 계정에서 전송한 각 SMS 메시지에 대해 다음과 같은 정보가 포함됩니다.

 보고서에는 옵트아웃한 수신자에게 전송된 메시지는 포함되지 않습니다.
+ 메시지의 게시 시간(UTC)
+ 메시지 ID
+ 대상 전화번호
+ 메시지 유형
+ 전송 상태
+ 메시지 가격(USD)
+ 부분 번호(너무 길어서 단일 메시지로 전송할 수 없는 경우 메시지가 여러 부분으로 분할됨)
+ 총 부분 수

**참고**  
Amazon SNS에서 부품 번호를 받지 못한 경우 값을 0으로 설정합니다.

## 일일 사용 보고서 구독
<a name="subscribe-to-daily-usage-reports"></a>

일일 사용 보고서를 구독하려면 적절한 권한으로 Amazon S3 버킷을 생성해야 합니다.

**일일 사용 보고서에 대한 Amazon S3 버킷을 만들려면**

1. SMS 메시지를 AWS 계정 보내는에서 [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)에 로그인합니다.

1. **버킷 만들기**를 선택합니다.

1. **버킷 이름**으로는 계정과 조직에 고유한 이름을 입력하는 것이 좋습니다. 예를 들면, `<my-bucket-prefix>-<account_id>-<org-id>`. 패턴을 사용하세요.

   버킷 이름의 규칙 및 제한 사항에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷 명명 규칙](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html#bucketnamingrules)을 참조하세요.

1. **생성(Create)**을 선택합니다.

1. **모든 버킷** 테이블에서 버킷을 선택합니다.

1. **권한** 섹션에서 **버킷 정책**을 선택합니다.

1. **버킷 정책 편집기** 창에서 Amazon SNS 서비스 보안 주체가 버킷에 작성할 수 있도록 허용하는 정책을 제공합니다. 예제는 [버킷 정책 예제](#example_bucket_policy) 섹션을 참조하세요.

   정책 예제를 사용하는 경우 *my-s3-bucket*을 3단계에서 선택한 버킷 이름으로 대체해야 합니다.

1. **저장**을 선택합니다.

**일일 사용 보고서를 구독하려면**

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

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

1. **문자 메시지(SMS)** 페이지의 **문자 메시지 기본 설정** 섹션에서 **편집**을 선택합니다.  
![\[Amazon SNS 콘솔의 문자 메시지 기본 설정 섹션\]](http://docs.aws.amazon.com/ko_kr/sns/latest/dg/images/daily-usage-report1.png)

1. **문자 메시지 기본 설정 편집** 페이지의 **세부 정보** 섹션에서 **Amazon S3 bucket name for usage reports**를 지정합니다.  
![\[Amazon SNS 콘솔의 문자 메시지 기본 설정 편집 페이지의 세부 정보 섹션\]](http://docs.aws.amazon.com/ko_kr/sns/latest/dg/images/daily-usage-report2.png)

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

### 버킷 정책 예제
<a name="example_bucket_policy"></a>

다음 정책은 Amazon SNS 서비스 보안 주체가 `s3:PutObject`, `s3:GetBucketLocation` 및 `s3:ListBucket` 작업을 수행하도록 허용합니다.

AWS 는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 보안 주체가 있는 모든 서비스를 위한 도구를 제공합니다. Amazon S3 버킷 정책 스테이트먼트의 위탁자가 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)인 경우입니다. 버킷이 일일 사용 보고서를 수신할 수 있는 리전 및 계정을 제한하려면 아래 예와 같이 `aws:SourceArn`을 사용합니다. 이러한 보고서를 생성할 수 있는 리전을 제한하지 않으려면 `aws:SourceAccount`를 사용하여 보고서를 생성하는 계정을 기반으로 제한하세요. 리소스의 ARN을 모르는 경우 `aws:SourceAccount`를 사용합니다.

Amazon SNS로부터 일일 SMS 사용 보고서를 수신하기 위해 Amazon S3 버킷을 생성할 때 다음 예와 같이 혼동된 대리자 방지를 포함합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPutObject",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowGetBucketLocation",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:GetBucketLocation",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        },
        {
            "Sid": "AllowListBucket",
            "Effect": "Allow",
            "Principal": {
                "Service": "sns.amazonaws.com"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "account_id"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:sns:us-west-1:123456789012:*"
                }
            }
        }
    ]
}
```

------

**참고**  
Amazon S3 정책의 `Condition` 요소에 지정된 AWS 계정 이 소유한 Amazon S3 버킷에 사용 보고서를 게시할 수 있습니다. 다른 AWS 계정 이 소유한 Amazon S3 버킷에 사용 보고서를 게시하려면 [다른에서 Amazon S3 객체를 복사하려면 어떻게 해야 합니까 AWS 계정?](https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/)를 참조하세요.

### 일일 사용 보고서 예제
<a name="example_report"></a>

매일 일일 사용 보고서를 구독한 후 Amazon SNS는 사용 데이터가 포함된 CSV 파일을 다음 위치에 저장합니다.

```
<my-s3-bucket>/SMSUsageReports/<region>/YYYY/MM/DD/00x.csv.gz
```

각 파일에는 최대 50,000개의 레코드가 포함될 수 있습니다. 1일에 대한 레코드가 이 할당량을 초과하는 경우 Amazon SNS는 여러 파일을 추가합니다. 다음 그림에서는 보고서 예제를 보여 줍니다.

```
PublishTimeUTC,MessageId,DestinationPhoneNumber,MessageType,DeliveryStatus,PriceInUSD,PartNumber,TotalParts
2016-05-10T03:00:29.476Z,96a298ac-1458-4825-a7eb-7330e0720b72,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.90084,0,1
2016-05-10T03:00:29.561Z,1e29d394-d7f4-4dc9-996e-26412032c344,1XXX5550100,Promotional,Message has been accepted by phone carrier,0.34322,0,1
2016-05-10T03:00:30.769Z,98ba941c-afc7-4c51-ba2c-56c6570a6c08,1XXX5550100,Transactional,Message has been accepted by phone carrier,0.27815,0,1
```