AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈概要〉)

AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈概要〉)

【前回】AmazonConnectによる自動電話通知(6.ユーザー入力による応答確認)
【次回】AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈構築①〉)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

監視サーバーで障害を検知した際に、自動で電話通知できるようにしていきます。ネットワークエンジニアも利用することの多い監視サーバー(Zabbix)で障害検知し、AWS上のAmazonConnectを利用し自動電話を発信します。

今回は下記の条件を満たせるようにAWSの各サービスを利用して自動電話通知の仕組みを導入します。

前提条件
  • 複数の通知先を登録した連絡先リストを持たせる。
  • 連絡先リストに優先度(通知順)を設定する。
  • 優先度が高い人に最初に電話する。
  • 応答が無かった場合、次の優先度の人に順番に電話する。
  • 連絡先リストの最後まで電話しても応答が無かった場合、最初に戻って継続する。
目次

自動電話通知フロー

電話に応答した場合のフロー

電話に応答した場合のフロー
  1. EC2上の監視サーバーで障害を検知し、S3へトリガーファイルを格納
  2. S3のイベント通知機能で、SQS_1にメッセージを送信
  3. SQS_1をトリガーとして、Lambda_1を起動
  4. Lambda_1がDynamoDB_1から連絡先を取得し、AmazonConnectを起動
  5. Lambda_1がAmazonConnectを起動すると同時に、SQS_2へメッセージを送信
  6. AmazonConnectがユーザーへ自動電話通知を実施
  7. ユーザが正常応答し、AmazonConnectがLambda_2を起動
  8. Lambda_2が応答結果をDynamoDB_2に保存(応答OK)
  9. 60秒後にSQS_2をトリガーとしてLambda_3を起動
  10. Lambda_3がDynamoDB_2の応答結果を確認(正常応答しているため、何もせずに処理完了)

電話に応答しなかった場合のフロー

電話に応答しなかった場合のフロー
  1. EC2上の監視サーバーで障害を検知し、S3へトリガーファイルを格納
  2. S3のイベント通知機能で、SQS_1にメッセージを送信
  3. SQS_1をトリガーとして、Lambda_1を起動
  4. Lambda_1がDynamoDB_1から連絡先を取得し、AmazonConnectを起動
  5. Lambda_1がAmazonConnectを起動すると同時に、SQS_2へメッセージを送信
  6. AmazonConnectがユーザーへ自動電話通知を実施
  7. ユーザが正常応答せず、AmazonConnectがLambda_2を起動
  8. Lambda_2が応答結果をDynamoDB_2に保存(応答NG)
  9. 60秒後にSQS_2をトリガーとしてLambda_3を起動
  10. Lambda_3がDynamoDB_2の応答結果を確認
  11. 正常応答していないため、再度AmazonConnectを起動(以降、5から繰り返し)

利用するAWSサービスの説明

Amazon Connect

AWS上でコールセンターの仕組みを導入できるサービスです。電話発信機能を利用します。

EC2

監視ソフトを導入するためのサーバーです。

□IAMロールへアクセス権限追加(S3)
□awscliの導入(マシンイメージでAmazonLinuxを選択している場合は不要)
□監視サーバーの構築

EC2上でのZabbixの構築はこちらを参照してください。

AWS上での監視サーバー(Zabbix)構築

S3

AWS上のストレージサービスです。EC2より自動電話通知を起動するためのトリガーファイルを格納するために利用します。

□トリガーファイル格納用のS3バケットを作成
□イベント通知設定(SQSへ送信)

SQS

AWS上のキューイングサービスです。AWSの各サービスを連結させるために利用します。

SQS_1

S3上にトリガーファイルが作成・更新された場合にメッセージを受け取り、Lambda_1を起動します。

□Lambda_1起動用のSQS作成
□S3からアクセス可能にするためのアクセスポリシー設定

SQS_2

自動電話を発信した際にメッセージを受け取り、電話応答結果を確認するためのLambda_3を起動します。

□Lambda_3起動用のSQS作成
□送信遅延を60秒+αに設定

Lambda

サーバーレスでプログラムを実行できるサービスです。

Lambda_1

SQS_1をトリガーとして、自動電話通知のためのAmazonConnectを起動します。

□IAMロールへアクセス権限追加(AmazonConnect/SQS/DynamoDB)
□コーディング(AmazonConnectを起動)

Lambda_2

AmazonConnectの問い合わせフロー内で起動され、電話応答結果をDynamoDB_2へ保存します。

□IAMロールへアクセス権限追加(DynamoDB)
□コーディング(応答ステータスをDynamoDB_2へ保存する)

Lambda_3

SQS_2をトリガーとして、前回の電話応答結果がNGであれば、再度AmazonConnectを起動します。

□IAMロールへアクセス権限追加(AmazonConnect/SQS/DynamoDB)
□コーディング(応答ステータスを確認し、応答していないければ再度AmazonConnectを起動する)

DynamoDB

AWS上のデータベースサービスです。

DynamoDB_1

連絡先リストを登録します。

□連絡先情報を格納するDBを作成

DynamoDB_2

電話応答の結果を保存します。

□応答ステータス状況を格納するDBを作成

以上で、AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈概要〉)の説明は完了です!
次回以降で、順を追って構築を行なっていきます。

【前回】AmazonConnectによる自動電話通知(6.ユーザー入力による応答確認)
【次回】AmazonConnectによる自動電話通知(7.複数連絡先への電話通知〈構築①〉)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

  • URLをコピーしました!
  • URLをコピーしました!
目次