KibanaとAmazon Elasticsearch Serviceの連携方法について

はじめに

Kibanaはデータ集約と可視化についてのオープンソースツールです。Amazon Elasticsearch ServiceとKibanaを利用すると、リアルタイムのデータ検索や、可視化、分析、インサイトを行うことができます。本記事では、まずAmazon Elasticsearch ServiceとKibanaについて紹介し、その後、Amazon Elasticsearch Serviceにあるチュートリアルを基にこれらの連携について紹介します。

Amazon Elasticsearch Service

Amazon Elasticsearch Serviceは、AWSクラウドで Elasticsearch を大規模かつ簡単にデプロイ、保護、実行するフルマネージド型サービスです。Amazon Elasticsearch Serviceでは、オープンソースの Elasticsearch APIやフルマネージド型としてのKibana、Logstashとその他のAWSサービスとの統合、組み込みのアラート、SQLクエリをサポートしています。

Amazon Elasticsearch Serviceの利点を以下に示します。

  • 簡単な管理 - ハードウェアプロビジョニングや、ソフトウェアのインストールとパッチ適用、障害復旧、バックアップ、モニタリングを含む、管理タスクを簡素化してくれます。また、Amazon Elasticsearch Serviceがサポートしている組み込みのイベントモニタリングとアラートを利用すると、データの変更に関する通知を受け取り、問題に事前に対処することができます。
  • スケーラビリティ - Amazon Elasticsearch Serviceでは、1つのクラスターにつき、最大3PBのデータを保存することができます。また、APIコールを1回実行する、もしくはAWSコンソールで数回のクリックを行うだけでクラスターのスケールアップ / ダウンが可能です。
  • 可用性 - Amazon Elasticsearch Serviceの設計では、マルチ アプリケーションゾーン(AZ)配置を採用しています。これにより、同じリージョン内の3つのAZ間でデータをレプリケートできます。
  • セキュリティ - Amazon Elasticsearch Serviceでは、Amazon VPCや、AWS KMS、Amazon Cognito、AWS IAMが利用できます。Amazon VPCでは、ネットワークの隔離ができます。AWS KMSでは、データの暗号化やデジタル署名に使用するキーを簡単に作成できるため、保存時または転送中のデータを暗号化することができます。Amazon CognitoおよびAWS IAMでは、Amazon CognitoとAWS IAMポリシーによる認証とアクセスコントロールの管理ができます。また、 Amazon Elasticsearch Serviceは、HIPAAに適合しており、PCI DSS、SOC、ISO、FedRamp標準に準拠しています。
  • コスト効率性 - Amazon Elasticsearch Serviceでは、実際に消費したリソースに対してのみ料金が発生します。料金システムは2つあります。一方は、前払いや長期契約がないオンデマンド料金で、もう一方は、1年または3年の長期契約によるコスト削減が可能なリザーブドインスタンス料金です。

Kibana

Kibanaは、Elasticsearch と緊密に統合された、オープンソースのデータの集約および可視化ツールです。主なユースケースとしては以下のものが挙げられます。

  • ログと時系列の分析
  • インフラメトリックとコンテナのモニタリング
  • アプリケーションのモニタリング
  • 地理空間データ分析と可視化
  • セキュリティ分析
  • オペレーショナルインテリジェンス

Kibanaの利点を以下に示します。

  • インタラクティブチャート - 大量のログデータをインタラクティブにナビゲートできる、直感的なチャートとレポートが提供されます。特定のデータのサブセットの拡大または縮小や、レポートをドリルダウンしてデータから実用的なインサイトを抽出するといったことができます。
  • マッピング - Kibanaに備わっている地理空間機能では、データ上に地理情報をシームレスに重ねることができる上に、結果をマップ上に可視化することができます。
  • 構築済みの集計とフィルター - Kibanaの構築済みの集計とフィルターを使用することで、ヒストグラムや上位N件のクエリ、トレンドなどのさまざまな分析を簡単に実行できます。
  • ダッシュボード - ダッシュボードとレポートを設定し、他のユーザーと共有するという作業が簡単にできます。ダッシュボードでは、各種のチャートやグラフ、メトリック、検索、マップを組み合わせて、1つのウィンドウに表示できます。

Kibanaは無料で利用することができ、Amazon Elasticsearch Serviceでは、フルマネージド型サービスとしてドメインと共に自動的にデプロイされ、クラスターを管理するための作業が自動的に行われます。

Amazon Elasticsearch ServiceとKibanaの連携

ここでは、Amazon Elasticsearch Service のチュートリアルにおけるAmazon Elasticsearch ServiceとKibanaを利用したカスタマーサポートコールの可視化について紹介します。

問題の想定

カスタマーサポートコールの分析における手動のワークフローは、以下のようになります。

  • 従業員が通話記録を聴く
  • 各問合せの件名をメモする
  • 顧客とのやり取りが肯定的 / 否定的の判断をする

このプロセスは、ビジネスのように多くの問い合わせを把握する必要がある場合は、大きな時間的リソースと労力を要します。これに、完全なトランスクリプトの作成の作業を追加すると、作業量は膨大となります。

解決手段

Amazon Elasticsearch ServiceとKibana、Amazon S3、Amazon Transcribe、Amazon Comprehendを利用すると、わずかなコード量で上記のプロセスを自動化できます。具体的には、次のことプロセスが自動化できます。

]

  • 問い合わせの完全なトランスクリプトを作成する
  • トランスクリプトからキーワードと問い合わせ内容の全体的な感情(肯定的 / 否定的 / 中立 / 混在)を取得する
  • データ検索と可視化を行う

※これには、各々のAWSサービスを使用することで、合計2USD未満の料金が発生します。

プロセスの自動化を行う手順

こちらのチュートリアルでは、次の手順で進められます。ただし、多くの通話記録が手元にない場合を想定したデータの追加については、割愛します。

1. 事前準備

このチュートリアルを始める前に、次の2つを作成しておく必要があります。

  • Amazon S3バケット
  • Amazon Elasticsearch Serviceドメイン
2. サンプルコードのコピー

このチュートリアルには、サンプルコードが用意されており、それを「call-center.py」という新しいファイルに貼り付けます。「call-center.py」と同様のディレクトリにMP3ファイルを配置し、コードを実行します。

コード中には、次の内容を実行するものが書かれています。

  • MP3の音声ファイルをAmazon S3バケットにアップロードする
  • 音声ファイルのURLをAmazon Transcribeに送信し、書き起こしジョブの完了を待機する
  • 書き起こしジョブの完了後、トランスクリプトを抽出し、5000文字に切り捨て、キーワードと感情の分析のためにAmazon Comprehendへ送信する
  • 完全なトランスクリプトやキーワード、感情、現在のタイムスタンプをJSONドキュメントに追加し、そのインデックスをAmazon Elasticsearch Serviceに作成する
3. データの分析と可視化

Amazon Elasticsearch Serviceに配置したデータの可視化を行うために、Kibanaに移動します。インデックスパターンを使用して分析対象を絞り込みやタイムフィルタフィールドといった、各種設定を行った後、可視化の作成が可能となります。そこで、3つのグラフを作成します。

  1. 感情別の割合を示す円グラフ
  2. 種類別の数を示す水平棒グラフ
  3. 日付別の数を示す垂直棒グラフ

これら3つの可視化したグラフは、Kibanaのダッシュボードに追加することができます。

以上の手順が完了した方は、不要な料金が発生しないようにAmazon S3バケットとAmazon Elasticsearch Serviceドメインの削除をおすすめします。

まとめ

本記事では、まずAmazon Elasticsearch Serviceの概要や利点、Kibanaの概要やユースケース、利点を紹介しました。その後、Amazon Elasticsearch Serviceのカスタマーサポートコールの可視化のチュートリアルを基に、Amazon Elasticsearch ServiceとKibanaの連携方法を紹介しました。Kibanaによるデータの可視化は、直感的にわかるGUIで行うことができます。ぜひ、データ分析にAmazon Elasticsearch ServiceとKibanaの利用を検討してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

AWS Lambdaの特徴と用途

次の記事

Amazon Redshiftについて