Elasticsearchとは
Elasticsearch(エラスティックサーチ)は、オランダのアムステルダムに本社を置くelastic社が開発を進めている、Lucene※(オープンソースの検索エンジン)を基盤とする全文検索エンジンです。
全文検索とは、対象の文書内にあるテキストの全文を対象に、指定した検索文字列をキーにして検索を行い、その検索文字列が含まれている文書を見つけて表示することです。全文検索に特化したElasticsearchは、他の製品と比較しても、圧倒的な検索スピードと利便性を誇っています。
Elasticsearchは当初はOSS(オープンソースソフトウェア)でしたが、現在はプロプライエタリソフトウェア※として利用に一部条件を付けて提供されています。
この記事では、Elasticsearchの入門編として、特徴やメリット、活用方法、エンジニアとして押さえておきたいことなどについてわかりやすく解説していきます。
※プロプライエタリソフトウェアの“proprietary” は私有、専有のソフトウェアを意味し、改変や複製などが制限されたソフトウエアのことです。
【参考】:※Apache Lucene|公式サイト
【参考】:Elasticsearch|公式サイト
Elasticsearchの主な特徴や料金など
ここでは、Elasticsearchにはどのような機能、特徴があるのか、できることは何か、について解説をします。
Elastic Stackとは
Elastic Stackとは、elasticが提供する検索や分析、可視化のための検索プラットフォームです。
Elastic StackはElasticsearchに加え、Kibana、Beats、Logstashなどから構成されています。
特にKibanaはデータ解析/可視化のツールで、Elasticsearchと対で利用されるよう設計されています。
他、Beatsはデータ収集とデータ転送を担うプラットフォームです。Beatsはサーバからあらゆる種類のデータを収集し、ElasticsearchやLogstashなどに転送します。Logstashはログ収集の管理ツールです。
【参考】:The Elastic Stack|elastic 公式
Elasticsearchの主な特徴
Elasticsearchは高速の検索エンジンですが、どのような特徴を持っているのでしょうか? Elasticsearchの主な特徴を挙げてみますので、ぜひ参考にしてください。
■高速検索
Elasticsearchは高速な検索処理が大きな特徴ですが、なぜ早いのでしょうか。Elasticsearchはは「有限状態トランスデューサ※1」を使用した転置インデックスや、数値データや地理データなどの格納のための「BKDツリー」、分析用カラム型ストアなどの技術を用いて高速検索を実現しているのです。
■スケーラビリティ
Elasticsearchは大規模なクラスタ構成、ペタバイト級の大規模データにも対応が可能で、小規模システムから始めて大規模までスムーズな移行が可能です。またシステム停止をせずに、Elasticsearchの追加や変更が可能です。
■ハイアベイラビリティ
Elasticsearchはクラスタを構成しているサーバーが停止した場合には、そのサーバーを切り離してサービスを継続することが可能です。データを複数のサーバーに配置するような構成にしておくと、完全に冗長化されたシステムを組むことができます。
■マルチテナント
Elasticsearchはマルチテナント(無関係な企業や個人が同時に利用)に対応しており、柔軟な運用が可能です。
■スキーマレス
Elasticsearchはスキーマ定義(あらかじめデータマッピングを行う)をせずにデータ投入が可能で、直ぐに利用できます。また、後からフィールド追加が必要になっても問題なく行えます。
■多様なクエリに対応
テキストデータ以外にも、構造化・非構造化データ、数値データ、地理情報、メトリックデータなど、あらゆるデータについてリアルタイムでの分析や検索が可能です。
※有限状態トランスデューサとは自然言語処理におけるテキスト正規化や品詞の分類など、さまざまなタスクで活躍する手法のこと。
【参考】:無料かつオープン、Elastic Stackのハート
Elasticsearchの用途
Elasticsearchは何に使えるのかについて見ていきます。Elasticsearchは例として、以下のような用途で使うことができます。Elasticsearchはデータの型にはこだわらず、人が認識できるもので、データ化できるものは全て検索や分析の対象になります。
たとえば、企業内ではマニュアルや手順書、各種情報などをナレッジとして全従業員が検索できるシステムを構築することができ、従業員のリテラシー向上、情報共有などに活用できます。
▪Webサイトの検索機能
▪ナレッジ検索
▪エンタープライズサーチ
▪地理情報や空間データの分析と可視化
▪インフラメトリックとコンテナなどの監視
▪アプリケーションパフォーマンスの監視(APM)
▪ログデータやイベントデータなどの保存と分析
▪セキュリティ分析
▪機械学習 など
Elasticの料金
Elastic CloudはAWS、AzureやGCPなど、主要なクラウドプロバイダーで使うことができる、パブリッククラウド向けのマネージドサービスです。Elasticのテクノロジーを有効活用する上での最適な手法です。また、Elastic Stackをダウンロードして自社でソフトウェアの管理をすることもできます。
Elasticの料金体系は次のようになっています。それぞれ14日間の無料トライアルが可能です。それぞれ利用できる機能が異なりますので、サイトでよく機能を確認し、評価をしてから申込むようにしましょう。
スタンダード ゴールド プラチナ エンタープライズ
最低料金 月々$95 月々$109 月々$125 月々$175
【参考】:Elasticの料金 【参考】:AWS|アマゾン ウェブ サービス 【参考】:Azure|Microsoft Azure
【参考】:GCP|Google Cloud Platform
Elasticsearchの導入例
Elasticsearchの機能や特徴は理解できたでしょうか?ここでは実際にどのように活用されているのかについて見ていきます。導入事例、活用例などから製品のイメージをつかんでください。
Elasticsearchの導入企業
Elasticsearchはどういった企業で利用されているのでしょうか?Elasticsearchはスタートアップ企業から世界レベルの企業まで、数千の組織で、ドキュメント検索やインフラ監視など多様な目的で利用されています。たとえば世界では、NETFLIX、Uber、slack、Microsoftなどがあります。では、日本ではどのような導入事例があるのでしょうか?ここでは日本経済新聞社と日立ソリューションズの事例を見てみましょう。
【参考】:検索で世界を動かすお客様の事例|elastic 公式
導入事例:日本経済新聞社
日本経済新聞はElasticsearchを使ってノード数最大48台、1億6千万件のドキュメントデータベース事業での検索を実現しています。この環境はAWS上で構築され、しかもサーバー台数は従来の200台から1/5の48台に削減し、運用の自動化と併せて年間ランニングコストの20%削減や可用性向上を実現しています。
【参考】:日本経済新聞社: ドキュメント総数1.6億件、 国内最大級のデータベース事業の検索を担う|elastic 公式
採用事例:日立ソリューションズ
日立ソリューションズが開発・提供しているビジネスデータ活用支援ソフト「活文」の新たに追加された「活文 企業内検索基盤」のエンジンにElasticsearchが採用され、「Microsoft Azure」上で利用する企業が増えています。
この仕組みで、従業員はWebブラウザの検索窓からキーワードを入れ、Azure上に置かれた自社の共有フォルダから瞬時に目的のテキストやファイルを探し出すことができます。
【参考】:株式会社日立ソリューションズ:ビジネスデータの発生から管理・共有・活用までを支援する「活文」|elastic 公式
Elasticsearchの勉強法
ここまで、Elasticsearchとは、Elasticsearchの特徴や事例などを紹介しました。ここではElasticsercに関する勉強法を中心に解説します。
Elastic認定エンジニア資格(Elastic Certified Engineer)
認定資格取得に向けて学習することは、明確な目標があることでモチベーションを高められます。
Elasticには2018年6月に開始した、認定エンジニア資格(Elastic Certified Engineer)制度があり、3種類の認定資格があります。
これらの認定資格を取得することで、Elasticsearchのエキスパートであることを証明できます。受験料は$ 400で、自宅での受験が可能です。詳細は下記のekasticの公式リンクから確認してみてください。
【参考】:Open doors with Elastic Certification
おすすめの教材
Elasticsearchの学習には、elastic社提供のオンラインビデオを活用し、以下の参考書と併用して学ぶことをおすすめします。以下、ビデオ学習とおすすめの参考書を紹介しますので、ぜひ活用してください。
■ elastic ビデオ&ウェビナー
elasticに関するビデオ教材やオンラインセミナーを利用します。言語、ソリューション&プロダクト、対象業界や地域から選択することができます。ビデオでイメージをつかんでから参考書を利用すると理解が早いでしょう。
【参考】:ビデオ&ウェビナー|elastic 公式
■ データ分析基盤構築入門[Fluentd,Elasticsearch,Kibanaによるログ収集と可視化]
Elasticsearchの特徴、導入や利用方法の紹介に加え、ログの収集、解析などで使う際に、関連製品を組み合せて使う方法、Elasticsearch運用の注意点など、総合的にElasticsearchが使える内容にまとめた参考書です。
アプリケーション開発からデータサイエンスに関わるインフラエンジニアまで、さまざまなエンジニアが利用できる内容です。
▪著者:惣道 哲也
▪ページ数:206ページ
▪出版社:インプレスブックス
▪発売日:2018/6/15
【参考】:データ分析基盤構築入門[Fluentd,Elasticsearch,Kibanaによるログ収集と可視化]
Elasticsearchエンジニアの強い味方
ここまでElasticsearchを中心に、Elasticsearchの概要、特徴や活用例、学習法などについて紹介してきました。
Elasticsearchはさまざまなアーキテクチャを駆使し、また関連製品や各プログラミング言語との連携によって、単なる検索エンジンにとどまらず、データの分析や情報共有、監視ツールなどさまざまな分野で活用される総合ツールとなっています。
Elasticsearchはクライアントのさまざまなビジネス課題を解決する武器となりますので、エンジニアの皆さんがElasticsearchを習得することで、クライアントの要求や要件に応えるための強い味方となる可能性を秘めています。ぜひElasticsearchに関する知識を高めてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから