検索
特集/連載

AWSの2大検索サービス「Amazon Elasticsearch Service」「Amazon Kendra」とは「Amazon Elasticsearch Service」「Amazon Kendra」を比較する【前編】

AWSの主な検索サービスには「Amazon Kendra」と「Amazon Elasticsearch Service」がある。それぞれの機能と特徴、利用方法を説明する。

Share
Tweet
LINE
Hatena

 明確な構造定義を持たない「半構造化データ」や構造そのものがない「非構造化データ」を検索したい――。Amazon Web Services(AWS)はこのニーズに応える2つの検索サービス「Amazon Elasticsearch Service」と「Amazon Kendra」を用意する。どちらのサービスも複数のデータソースにまたがってデータを検索できるが、用途は異なる。それぞれの概要と特徴を説明する。

Amazon Elasticsearch Serviceとは

 Amazon Elasticsearch Serviceは、検索と分析のためのオープンソースソフトウェア(OSS)「Elasticsearch」のマネージドサービスだ。AWSの仮想マシンサービス「Amazon Elastic Compute Cloud」(Amazon EC2)のインスタンス(仮想サーバ)で稼働する。

 検索にはElasticsearch固有のJSON形式クエリ言語を使う。このクエリ言語は論理演算子(AND、OR、NOTなど)やワイルドカード、正規表現などを使った検索を実行できる。クエリの送信には、Amazon Elasticsearch ServiceのGUI(グラフィカルユーザーインタフェース)を利用する。システム連携の標準的な設計思想「REST」準拠のAPI(アプリケーションプログラミングインタフェース)を介したクエリの送信も可能だ。

 データは分析前にElasticsearchに取り込む必要がある。データの取り込みはストリームデータ(連続的に発生し続けるデータ)処理サービス「Amazon Kinesis Data Firehose」やログ監視サービス「Amazon CloudWatch Logs」、IoT(モノのインターネット)データ収集サービス「AWS IoT」などのAWSサービスとの連携を通じて実行できる。データ処理OSSの「Logstash」を使ったデータ取り込みも可能だ。REST準拠のAPI経由でデータを取り込む方法もある。

Amazon Kendraとは

 Amazon Kendraは機械学習を利用して、複数のデータソースに保存されたデータを検索する。開発者がAmazon Kendraをアプリケーションに組み込めば、データアナリストなどのエンドユーザーは半構造化データや非構造化データを自然言語で検索できるようになる。Amazon Kendraは、今までの検索パターンを基に検索結果の精度を微調整する機能を持つ。インデックス機能を使用することで、複数のデータソースに分散したドキュメントやよくある質問をグループ化し、一元管理できる。

 エンドユーザーはデータをAmazon Kendraに直接取り込んだり、AWSのオブジェクトストレージサービス「Amazon Simple Storage Service」(Amazon S3)に配置したりすることで、Amazon Kendraを使ってデータを検索できるようになる。コネクターを使用することで他のデータソースも検索対象にできる。例えばSalesforce(salesforce.com)の同名CRM(顧客関係管理)やMicrosoftの「OneDrive」やGoogleの「Google Drive」といったファイル同期サービス向けにコネクターを用意している。

 AWSは、ユーザー企業がアプリケーションにAmazon Kendraの機能を組み込むためのサンプルコード(ソースコードのサンプル)を用意している。Amazon Kendraの操作方法に加えて、独自のユーザーインタフェースからクエリを発行するためのサンプルコードも提供している。


 後編は、Amazon Elasticsearch ServiceとAmazon Kendraのどちらを選択すればよいかを考えるときのポイントを説明する。

TechTarget発 先取りITトレンド

米国TechTargetの豊富な記事の中から、最新技術解説や注目分野の製品比較、海外企業のIT製品導入事例などを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る