Elasticsearchが解決する課題とは何か?
システムのデータを格納する目的で、リレーショナルデータベース(以下、RDB)が使⽤されることは多い。しかし、RDBには欠点がある。システム運用の長期化によりテーブルが肥⼤化して数百万のデータセットを含む状態になると、検索のパフォーマンスが著しく劣化してしまうのだ。この課題を解決するためにスキーマ分割やテーブル分割などの施策が行われるケースはあるものの、RDBの根本的な問題が解消されるわけではない。
Elasticsearchはこうした課題を解決できる、柔軟で強力かつオープンでフリーな分散型リアルタイム検索および分析エンジンである。Elasticsearchはドキュメントベースのデータベースであり、データをJSON形式(⾮正規化された状態)で保存する。Elasticsearchを用いれば、たとえ数百万、数千万という量のデータであっても数秒ほどで簡単に検索できる。
また、検索処理の高速性だけではなく日本語サジェスト機能の優秀性もElasticsearchの利点だ。
<日本語サジェストの機能概要>
・ユーザーが検索キーワードを入力すると、関連する候補が表示される。
例:「日本」と入力すると「日本」「日本 地図」「日本 人口」などが提案される。
・不完全な検索キーワードを入力した場合でも、関連する候補が表示される。
例:「にほn」と入力すると「日本」「日本 地図」「日本の人口」などが提案される。
・タイプミスした場合でも、意味の通る候補が提案される。
例:「に hん」「にっほん」「日本ん」と入力すると「日本」「日本 地図」「日本の人口」などが表示される。
・候補となる単語が、キーワードが検索された回数が多い順に一覧表示される。
3 Solutions, 1 Stack, Deploy Anywhere
鈴木氏は次に、Elastic社が提供する3つのソリューションやElastic Stack、多様なデプロイ選択肢について解説していった。
Elastic StackはElasticsearchやKibana、Beats、Logstashから構成されるElasticのコアプロダクト群だ。Elasticsearchは前述の通り分散型リアルタイム検索および分析エンジンである。KibanaはElasticsearchのデータを可視化・分析するためのツールだ。棒グラフや円グラフなどさまざまな形式でデータを描画できる。
Beatsは軽量なデータシッパーであり、各種システムからログデータなどを取得してElasticsearchに投入する役割を果たす。Logstashは強力なETLツールで、他のデータベースに格納されている大量のデータをすべてElasticsearchに投入するなどのユースケースで威力を発揮する。
こうしたElastic Stackの技術をベースとして、Elastic社は「Elasticエンタープライズサーチ」「Elasticオブザーバビリティ」「Elasticセキュリティ」といった3つのソリューションを提供している。
さらに、これらのソリューションのデプロイ選択肢も豊富だ。AWSやAzure、GCPといったパブリッククラウド環境にElasticをデプロイするためのElastic Cloud。物理ハードウェアや仮想環境、パブリッククラウド、プライベートクラウド、それらのハイブリッドなど多種多様な環境にデプロイできるElastic Cloud Enterprise。Kubernetes環境上にElasticをデプロイできるElastic Cloud on Kubernetesなどが用意されている。