COLUMN
Amazon ConnectとAWS Lambdaでかんたん設定! 〜アラート発生時の電話通知の設定手順をわかりやすく解説〜
こんにちは。今回はAWS初学者の方に向けて Amazon Connect を使用したアラート発生時にシステム管理者に電話通知するための設定手順をわかりやすく解説していきます。
1. はじめに
AWSではAmazon CloudWatch と Amazon SNSを組み合わせることで、障害アラートをメール通知する方法がよく知られていますが、重要なシステムではメール通知だけではなく電話でも通知したいというケースもあるかと思います。
そこで今回は主にAmazon Connect とAWS Lambda を使用して、アラートを電話通知させるための設定手順を解説していきます。
それでは早速見ていきましょう!
Amazon Connect に関するご相談や機能の詳しいご説明をご希望の方はお気軽にNTT東日本までお問い合わせください。
2. 今回 Amazon Connectでやりたいこと
EC2インスタンスのCPU使用率がCloudWatchAlarmで設定した閾値を超えた場合に、システム管理者へ電話通知(自動音声通知)する仕組みを実装していきます。
今回使用するAWSサービスの全体像はAmazon Connect、AWS Lambda、Amazon SNS、Amazon CloudWatch、Amazon EC2、Amazon VPCとなります。
構成図は以下の通りです。
Amazon Connect に関するご相談や機能の詳しいご説明をご希望の方はお気軽にNTT東日本までお問い合わせください。
3. Amazon Connect でアラート発生時の電話通知を実装してみる
この章では具体的な設定手順について解説していきます。
3-1. 前提
まず前提として本コラムで設定手順を解説するAWSサービスは以下となります。
- Amazon Connect
- AWS Lambda
- Amazon SNS
上記が本コラムの主題となりますので、検証で使用する以下のAWSサービスの設定手順は割愛しております。ご了承ください。
- VPC、サブネットをはじめとするネットワーク
- EC2インスタンス
- CloudWatchAlarm
また Amazon Connect の仕様上、090、080、070番号への発信はデフォルトで許可されていません。そのため検証の際の通知先はご自宅で使用されている電話番号やAmazon Connect でもう一つ受信用の電話番号を取得し、Amazon Connect で電話を受ける形で検証いただければと思います。
3-2. Amazon Connect の設定
それでは早速 Amazon Connect インスタンスを作成していきます。
Amazon Connect コンソールの左ペインで「インスタンス」を押下し、「インスタンスを追加する」を押下します。
ID管理では「Amazon Connect にユーザーを保存」を選択します。
アクセスURLに任意の文字列を入力し「次へ」を押下します。
管理者を追加では「管理者を指定」を選択し、名前・ユーザー名・パスワード・Eメールなど必要事項を入力します。
「次へ」を押下します。
テレフォニーオプションでは着信と発信の両方を許可し「次へ」を押下します。
データストレージではCustomer Profiles を有効化のチェックを外し「次へ」を押下します。
設定内容を確認し「インスタンスの作成」を押下します。
作成したインスタンスのステータスが「アクティブ」になったことを確認し、インスタンスにログインするため「アクセスURL」を押下します。
ログイン画面が表示されたら先ほど設定したユーザー名・パスワードを入力し、「サインイン」を押下します。
ログインができたら電話通知をするためのフローを作成していきます。
左ペインのルーティング > フローを押下します。
「フローを作成」を押下します。
以下の画像を参照し、フローを作成していきます。
「プロンプトの再生」のブロックを押下すると、右側に設定画面が開きます。
「テキスト読み上げまたはチャットテキスト」、「手動で設定」を選択します。
自動音声で流したい文章を入力し、「保存」を押下します。
一連のフローの設定が完了したら「保存」を押下し「公開」を押下します。
これでフローの作成は完了です。
後の設定手順で本フローのARNを使用するため、ARNを確認していきます。
「このフローについて」を押下し、「ARNを表示」を押下します。
フローのARNが表示されるため、メモしておきます。
次に電話番号を取得します。
左ペインから チャネル > 電話番号 を押下します。
「電話番号の取得」を押下します。
チャンネルを選択では「音声」を選択します。
「料金無料通話」のタブを選択し、国/地域は「Japan +81」を選択し、表示された番号一覧から任意の番号を選択します。
コンタクトフロー/IVRで先ほど作成したフローを選択します。
「保存」を押下します。
これでAmazon Connect の設定は完了です。
3-3. AWS Lambda の設定
続いてLambda関数を作成していきます。
関数名は任意の文字列を入力し、ランタイムはNode.js 20.xとします。
「関数の作成」を押下します。
コードソースは以下を入力します。
ContactFlowId、InstanceIdは上の手順でメモした値に置き換えます。
ContactFlowId 値は、ARNの中で /contact-flow/ の後の一意の ID です。
Instance ID は /instance/ と /contact-flow/ の間にある一意の ID です。
DestinationPhoneNumber には Amazon Connect インスタンスからコール可能な電話番号を E.164 形式で設定します。(例: +811234567890)
SourcePhoneNumber は Amazon Connect インスタンスで取得した電話番号を E.164 形式で設定します。
これらの値は Lambda 内の環境変数オプションを使用して宣言することもできます。
import { ConnectClient, StartOutboundVoiceContactCommand } from "@aws-sdk/client-connect";
const client = new ConnectClient();
export const handler = async (event, context) => {
const input = {
ContactFlowId: "作成したフローのID",
DestinationPhoneNumber: "通知先の電話番号",
InstanceId: "使用しているAmazon ConnectインスタンスのID",
SourcePhoneNumber: "発信元の電話番号"
};
const command = new StartOutboundVoiceContactCommand(input);
const response = await client.send(command);
return response;
};
次にAWS Lambda が Amazon Connect のAPIを呼び出すために必要なIAMポリシーを作成していきます。
作成したIAMポリシーをLambda関数で設定されているIAMロールに追加します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "connect:StartOutboundVoiceContact",
"Resource": "*"
}
]
}
3-4. Amazon SNS の設定
最後にAmazon SNS を設定していきます。
Amazon SNS コンソールから左ペインの「トピック」を押下し「トピックの作成」を押下します。
タイプは「スタンダード」を選択し、名前と表示名は任意の文字列を入力します。
「トピックの作成」を押下します。
作成したSNSトピックを押下し、「サブスクリプションの作成」を押下します。
トピックARNで先ほど作成したSNSトピックのARNを選択します。
プロトコルは「AWS Lambda」としてエンドポイントに上の手順でメモしたLambda関数のARNを入力・選択します。
Amazon SNS の設定は完了です。
※対象のCloudWatchAlarmのアクションにこちらのSNSトピックを設定します。
参照:Amazon Connect Divedeep training
Amazon Connect に関するご相談や機能の詳しいご説明をご希望の方はお気軽にNTT東日本までお問い合わせください。
4. Amazon Connect の動作確認
第3章で電話通知をするための各AWSサービスの設定が完了したので、正しく電話通知されるか動作確認をしていきます。
本来であればEC2インスタンスに負荷をかけてCloudWatchAlarmのアラートを発報させるところから実施したいところですが、本コラムでは簡略化し手動でSNSのメッセージを発行し正しく電話通知されるかをテストしていきます。
SNSのページから対象のSNSトピックを選択し、「メッセージの発行」を押下します。
メッセージ詳細の各設定項目はオプションのため空欄のままとします。
メッセージ本文はメッセージ構造に「すべての配信プロトコルに同一のペイロード」を選択し、エンドポイントに送信するメーセージ本文には任意の文字を入力します。
「メッセージの発行」を押下します。
「メッセージの発行」を押下した数秒後に受信先として設定した電話番号に着信があり、設定した自動音声が流れることを確認します。
Amazon Connect に関するご相談や機能の詳しいご説明をご希望の方はお気軽にNTT東日本までお問い合わせください。
5. Amazon Connect でアラート発生時の電話通知を実装まとめ
今回はAWS初学者の方に向けて、Amazon Connectを使用した障害アラートを電話通知させる仕組みについて、設定手順や注意するポイントについて解説しました。
Amazon Connectと聞くと「コールセンターのサービス」とまずイメージされるかと思いますが、今回のようにCloudWatchなど他のAWSサービスと組み合わせることでさまざまなユースケースで活用することができます。
NTT東日本はAWS活用に関するご相談は無料で行っておりますので、以下のサイトよりお気軽にご相談ください。
Amazon Connect に関するご相談や機能の詳しいご説明をご希望の方はお気軽にNTT東日本までお問い合わせください。
RECOMMEND
その他のコラム
無料ダウンロード
自社のクラウド導入に必要な知識、ポイントを
この1冊に総まとめ!
あなたはクラウド化の
何の情報を知りたいですか?
- そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
- 【AWS・Azure・Google Cloud】
どれが自社に最もマッチするの? - 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
- 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?
初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。
NTT東日本では
そんなあなたにクラウド導入に必要な情報を
1冊の冊子にまとめました!
クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・
- システムインフラの維持にかかるトータルコストがあまり変わらない。。
- 情シス担当者の負担が減らない。。
- セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
-
そもそも”クラウド化”とは?
その本質的なメリット・デメリット - 自社にとって
最適なクラウド環境構築のポイント - コストを抑えるための
具体的なコツ - 既存環境からスムーズにクラウド化を
実現するためのロードマップ
など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。
面倒でお困りのあなたへ
クラウドのご相談できます!
無料オンライン相談窓口
NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!
NTT東日本が選ばれる5つの理由
- クラウド導入を
0からワンストップでサポート可能! - 全体最適におけるコスト効率・業務効率の改善を
中立的にご提案 - クラウド環境に問題がないか、
第3者目線でチェック
してもらいたい - 安心の24時間・365日の対応・保守
- NTT東日本が保有する豊富なサービスの組み合わせで
”課題解決”と”コスト軽減”を両立
特に以下に当てはまる方はお気軽に
ご相談ください。
- さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
- オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
- オンプレミスとクラウド移行した際のコスト比較を行いたい
- AWSとAzure、どちらのクラウドが自社に適切かわからない
- クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
- クラウド利用中、ネットワークの速度が遅くて業務に支障がでている
クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。
相談無料!プロが中立的にアドバイスいたします
クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。