Amazon Web Services ブログ
Amazon Timestream を使って Amazon Connect のリアルタイムモニタリングを実現する方法
Amazon Connectは、あらゆる規模の企業がより低コストで優れたカスタマーサービスを提供できるようにする、使いやすいクラウドコンタクトセンターのソリューションです。Amazon Connect には多くのリアルタイムモニタリング機能があります。
Amazon Connect では、標準でサポートされる要件を超えた要件に対応するために、独自のカスタムリアルタイムモニタリングソリューションを実装するために使用できるデータと API も提供します。このようなソリューションを実装すると、標準のモニタリングツールでコンタクトセンターを監視したり、ビジネスルールを反映するカスタムメトリクスを作成したり、ユーザーの好みに応じてデータを視覚化したり、カスタムルールを使用してデータへのアクセスを保護したり、他のシステムからのサードパーティデータを集約したり、リアルタイムデータを他のアプリケーションに統合したりすることができます。
組織はコンタクトセンターでのアクティビティをリアルタイム、または、リアルタイムに近い状態で監視することができます。通話中のエージェントのパフォーマンスを評価し、問題を特定することで、スーパーバイザーは迅速な是正措置を講じて顧客体験の低下を防ぐことができます。ダッシュボードは、チームが成功に影響する指標に集中するのに役立ちます。
この投稿では、Amazon Timestream を使用して Amazon Connect のリアルタイムモニタリング用のデータレイヤーを構築する方法を紹介します。AWS CloudFormation テンプレートとこの記事に記載されているステップバイステップの解説を利用して始めることができます。このソリューションは複数のリージョンにデプロイできます。データは Amazon Timestream データベースに収集されますので、少なくとも1つのAmazon Timestream が利用できるリージョンにソリューションをデプロイする必要があります。
ソリューションの概要
次のアーキテクチャ図はこのソリューションの概要を説明しています。
このソリューションでは次のAWSサービスを利用します:
- AWS CloudFormation
- Amazon Connect
- Amazon EventBridge
- AWS IAM Identity Center (AWS Single Sign-Onの後継サービス)
- AWS Identity and Access Management (IAM)
- Amazon Kinesis
- AWS Lambda
- AWS Organizations
- Amazon Timestream
Amazon Connect は標準で Amazon EventBridge と統合されており、Amazon Connect コンタクトセンターで連絡先の状態が変わるたびにコンタクトイベントを公開できるようになっています。Amazon Connect は Amazon Kinesis と統合して、エージェントの状態やアクティビティが変わるたびにエージェントイベントを公開することもできます。
ソリューションのワークフローの中では、Amazon EventBridge と Amazon Kinesis は各エンティティタイプに提供される、対応した AWS Lambda 関数をトリガーします。各 Lambda は受信したイベントメッセージを解析し、データを表形式に変換して、Amazon Timestream データベーステーブルに保存します。
先のイベントで受信したデータを拡充させるために、EventBridge スケジューラーによってトリガーされた Lambda は、Amazon Connect API を通じて Amazon Connect からキューとユーザーの情報を定期的に取得し、Amazon Timestream データベースのテーブルに保存します。これにより、キュー内のタグ値やエージェントのフルネームのクエリなどの高度なクエリが可能になります。
このアーキテクチャを拡張して、サードパーティのデータソースからデータを取り込むことで、追加の分析などのユースケースなどに対応することができます。Timestream データベースに新しいテーブルを作成したり、サードパーティのデータを取り込んだり、提供されたテーブルをサードパーティのデータテーブルと結合したクエリを実行することができます。
複数のAWSリージョンにソリューションをデプロイする場合
複数のリージョンに Amazon Connect インスタンスがある場合、または Amazon タイムストリームをサポートしていないリージョンに Amazon Connect インスタンスがある場合は、このソリューションを複数のリージョンにデプロイすることができます。
まず、Amazon Timestream をサポートするリージョンで、Deploy all resources including database オプションを使用してソリューションをデプロイします。Amazon Connect インスタンスがある他のリージョンからデータを収集する場合は、各リージョンで同じスタック名を使用してソリューションをデプロイします。Deploy to collect Amazon Connect data from current オプションを使用して、Timestream データベースをデプロイしたリージョンを指定します。
次の例では、Amazon Timestream が us-east-1 リージョンにある場合、最初に us-east-1
に Deploy all resources including database – Current region supports Amazon Timestream オプションを使用してデプロイします。
次に、 ca-central-1
リージョンにて Deploy to collect Amazon Connect data from current Region – Amazon Timestream database is deployed to Region: us-east-1 オプションを使用してデプロイします。
前提条件
- IAM ロールを作成および変更する権限を持つ有効な AWS アカウントが必要です。
- Amazon Connect コンタクトセンターのインスタンスは、データを収集してダッシュボードに表示するのと同じ AWS アカウントとリージョンに存在する必要があります。
- Deploy all resources including database – Current region supports Amazon Timestream オプションを使用してデプロイする場合に、現在のリージョンが Amazon タイムストリームをサポートしている必要があります。このリージョンでのAmazon Connect インスタンスの使用は任意です。
- 他のリージョンにデプロイするには、まず、同じアカウントの別のリージョンにあるTimestreamデータベースを含むデプロイを完了する必要があります。
- このソリューションを AWS アカウントに実装する場合の推定コストを計算するには、 AWS Pricing Calculator を参照してください。
AWS CloudFormation を使用してデータ収集リソースをデプロイする
ソリューションをデプロイするには、次の手順を実行します。
- Launch Stack を選択してソリューションをデプロイします:
- 任意のスタック名を入力します。デフォルト名 (
ConnectRealTime
) を使用すると、後のステップで再設定する回数を減らすことができます。 - AgentEventDataStreamArn パラメータには、Amazon Connect インスタンスでエージェントイベントをストリーミングするように設定されている Kinesis データストリームの ARN を入力します。ストリームをまだ設定していない場合は、このパラメータは空のままにしてください。CloudFormation スタックは、エージェントイベントの送信先として設定する新しい Kinesis データストリームを作成します。
- DeploymentModel を選択してください。このソリューションでは、Amazon Timestream をサポートするリージョンに 1 つのデータベースを用意し、他のリージョンの Amazon Connect インスタンスからデータを収集できます。DeploymentModel パラメータでは、デプロイの中で新しいデータベースを作成するかどうかを選択できます。現在のリージョンが Amazon Timestream をサポートしていて、そのリージョンでデータベースを作成したい場合は、Deploy all resources including database – Current region supports Amazon Timestream を選択します。データベースのほかに、現在のリージョンの Amazon Connect インスタンスからデータを収集するためにAmazon Connect 統合コンポーネントが作成されます。データベースを含むソリューションが別のリージョンにデプロイされていて、現在のリージョンにデプロイするソリューションでデータを収集し、そのリモートリージョンに作成されたデータベースに保存したい場合は、他のオプションのいずれかを選択してください。
- 確認のチェックボックスを選択し、Create stack を選択します。
次のようなエラーが表示された場合:Amazon Timestream をサポートしていないリージョンに Amazon Timestream データベースとテーブルを構築しようとしています。
- スタックの作成が完了したら、Output タブに移動してデータストリームを確認できます。
- Amazon Connect コンソールで、インスタンスに移動します。
- Data Streaming セクションで、エージェントイベントの送信先となる Kinesis データストリームを選択し、Save を選択します。
データ収集パイプラインが完成しました。コンタクトセンターのインスタンスに何らかのデータを作成するアクティビティがあることを確認してください。 - Amazon タイムストリームコンソールのQuery editorに進みます (CloudFormation スタックの Output タブには、簡単に移動できるリンクもあります)。
- AgentEvent の横にあるオプションメニュー (3 つのドット) を選択し、Preview data を選択します。
- SQLクエリを使ってデータを検証します。
視覚化
Amazon Timestream は、Grafana、Amazon QuickSight、JDBC、ODBC、およびさまざまなサードパーティツールとの統合をサポートしています。Amazon Connect real time monitoring using Amazon Managed Grafana and Amazon Timestream を参照して、提供されている Grafana ダッシュボードのサンプルを利用できます。サンプルダッシュボードを独自の視覚化ソリューションの出発点として、ビジネス要件に合わせて改善して利用することができます。
Timestreamの注目すべき機能
Amazon Timestream は、リアルタイムモニタリングのための費用対効果の高いソリューションです。Timestream のストレージ管理機能は、古いデータを費用対効果の高いマグネティックストレージ階層に移動し、マグネティックストアでの保持期間が終了したらデータを削除することで、ストレージコストを削減します。デフォルトの保持期間はテーブルごとに設定されます。これらの値は更新できます。保持期間を増やすと、ユーザーはより長い時間枠でクエリを実行できるようになります。保持期間を減らすと、ストレージ利用を減らしてコストを削減できます。
Amazon Timestream でテーブルを作成する場合、データを取り込む前にスキーマを指定する必要はありません。テーブルは、取り込んだデータの構造の変化に適応できます。新しく到着したデータに新しいフィールドがある場合、それらは自動的にテーブルスキーマに追加されます。
Amazon Timestream のスケジュールドクエリ機能では、集計、ロールアップやその他のクエリを実行し、結果を別のテーブルに保存できます。この新しいコンパクトなテーブルは、クエリやダッシュボードを繰り返すコストを削減し、必要に応じて保存期間を長くすることができます。
履歴レポートにデータが必要な場合や、別のシステムに取り込む必要がある場合は、Timestream の UNLOAD ステートメントを使用して、時系列データを Apache Parquet 形式またはカンマ区切り値 (CSV) 形式で、選択した S3 バケットにエクスポートできます。UNLOAD を使用すると、時系列データを柔軟に保存、他のサービスのデータと結合して分析することができます。
クリーンアップ
このスタックによって作成されたリソースを削除して、追加コストを回避するには、次の手順を実行します。
- このソリューション用に作成したCloudFormation スタックを削除します。
デプロイモデルに応じて、CloudFormation スタックを作成してソリューションをデプロイしたすべてのリージョンで上記のステップを繰り返します。
まとめ
この投稿では、Amazon Connect のリアルタイムデータを Amazon Timestream データベースに収集する方法について説明しました。このソリューションは CloudFormation テンプレートを使用してお客様のアカウントにデプロイされます。
翻訳はソリューションアーキテクトの小林が担当しました。原文はこちらをご覧下さい。