Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

SMS 配信用の Amazon CloudWatch のメトリクスおよびログを表示する

Amazon CloudWatch および Amazon CloudWatch Logs を使用して、SMS のメッセージ配信をモニタリングできます。

Amazon CloudWatch メトリクスの表示

Amazon SNS は、自動的に SMS メッセージ配信に関するメトリクスを収集し、これらを Amazon CloudWatch にプッシュします。CloudWatch を使用してこれらのメトリクスを監視し、そのメトリクスがしきい値を超えたときに警告するようにアラームを作成できます。たとえば、CloudWatch メトリクスをモニタリングして、SMS 配信率と今月の始めから今日までの SMS 料金を知ることができます。

CloudWatch メトリクスのモニタリング、CloudWatch アラームの設定、利用可能なメトリクスの種類の詳細については、「CloudWatch メトリクスを使用した Amazon SNS トピックのモニタリング」を参照してください。

CloudWatch Logs の表示

Amazon SNS による Amazon CloudWatch Logs への書き込みを有効化することにより、正常な、および失敗した SMS メッセージ配信の情報を収集できます。送信した各 SMS メッセージに対して、Amazon SNS は、メッセージの価格、成功または失敗のステータス、失敗の理由 (メッセージが失敗した場合)、メッセージのドウェル時間、その他の情報を含むログを書き込みます。

SMS メッセージに対して CloudWatch Logs を有効にする

  1. AWS マネジメントコンソールにサインインした後、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v2/home) を開きます。

  2. コンソールメニューで、SMS メッセージングをサポートしているリージョンにリージョンセレクタを設定します。

  3. ナビゲーションペインで、[Text messaging (SMS)] を選択します。

  4. [Text messaging (SMS)] ページで、[Manage text messaging preferences] を選択します。

  5. [テキストメッセージングの設定] ページの [CloudWatch Logs アクセスの IAM ロール] で、Amazon SNS が CloudWatch Logs で SMS 配信をログに記録することを許可するための IAM ロールを作成します。

    1. [Create IAM role] を選択します。

    2. [SNS is requesting permission to use resources in your account] ページで [Allow] を選択します。

  6. [サンプルの成功率のデフォルト] で、Amazon SNS が CloudWatch Logs でログに記録する正常な SMS 配信の割合を指定します。たとえば、失敗した配信にのみログを書き込むには、この値を 0 に設定します。正常な配信の 10% に対してログを書き込むには、10 に設定します。割合を指定しないなら、Amazon SNS は、すべての正常配信に対してログを書き込みます。

  7. [Update preferences] を選択します。

[テキストメッセージプリファレンス] ページの他のオプションについては、「プリファレンスの設定 (コンソール) 」を参照してください。

正常な SMS 配信のログの例

正常な SMS 配信の配信ステータスのログは次の例のようになります。

{ "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" }

失敗した SMS 配信のログの例

失敗した SMS 配信の配信ステータスのログは次の例のようになります。

{ "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" }

SMS 配信の失敗の原因

失敗の理由は、providerResponse 属性で提供されます。SMS メッセージは以下の理由で送信に失敗することがあります。

  • 電話業者がスパムとしてブロック

  • 送信先がブラックリストに記載されている

  • 無効な電話番号

  • メッセージ本文が無効

  • 電話業者がこのメッセージをブロック

  • 電話業者が現在、到達不可能/使用不可能

  • 電話が SMS をブロック

  • 電話がブラックリストに載せられている

  • 電話が現在、到達不可能/使用不可能

  • 電話番号はオプトアウトしている

  • この配信が上限価格を超えている

  • 電話に達する際の原因不明なエラー