2018年8月22日 エンジニアリング

Elasticsearch ServiceでHot-Warmロギングクラスターをデプロイする

著者 Anurag Gupta

Amazon Elasticsearch Serviceと、Elasticが提供するオフィシャルのElasticsearch Serviceの違いについて詳しくは、AWS Elasticsearch比較ページをご覧ください。

先日、Elastic Cloudで提供されるElasticsearch Serviceに多数の新機能が登場しました。ロギングや検索アナリティクスからその他のユースケースまで、幅広い分野で優れた処理を実現できます。中でも注目の新機能が、Hot-Warmアーキテクチャーのデプロイテンプレートです。料金体系の引き下げもあり、ロギングユースケースでElasticsearch Serviceを利用するメリットが一層高まりました。

本ブログ記事では新しいHot-Warmアーキテクチャーのデプロイテンプレートの使い方と、機械学習やアラートなどのパワフルなElastic Stackオプションを活用してログデータからさらに深いインサイトを抽出する方法をご紹介します。手順の所要時間が10分未満という手軽さにもぜひご注目ください。Elasticsearch Serviceアカウントをお持ちでない方は、14日間の無料トライアルへのご登録で、本記事の手順を実施いただけます。

Hot-Warmアーキテクチャーとは?

Hot-Warmアーキテクチャーは、Elasticsearchのデプロイを"Hot"データノードと"Warm"データノードに分割することにより、優れたパフォーマンスを実現します。Hotデータノードは、高速ストレージを用いて新規の入力データを扱い、データをすばやく投入・取得します。Warmデータノードは、ストレージを高密度で使用し、ロギングデータを長期に保存する場合もコスト効率に優れます。この2つの異なるデータノードを併用することにより、投入データを効率的に処理しながらクエリをすばやく返すことができ、また長期に保持するデータにかかるコストも抑えることができます。

ロギングユースケースでは、最近のログ(例:直近2週間分)のログは重要ですが、それより古いログ(コンプライアンスやその他の目的で保存されているもの)に対するクエリが遅くても問題ありません。Hot-Warmアーキテクチャーが特にロギングユースケースで役立つ理由はここにあります。

Hot-Warmデプロイを作成する

HotデータノードからWarmデータノードにデータを移行する、インデックスキュレーションポリシーの管理を含むHot-Warmアーキテクチャーは、Elasticsearch Serviceで手軽に作成することができます。このインデックスキュレーションポリシーの管理は、Elastic Cloudでのみ利用でき、マネージドでElasticsearchを提供する他のプロバイダーにはない機能となっています。"驚くほど簡単"な手順ではじめるこのブログ記事でははじめに、5分以内にHot-Warmロギングクラスターと無料の1GBの機械学習ノード、さらに1GBのKIbanaノードを設定して稼働させる手順をご説明します。

まずElasticsearch Serviceコンソールを開き、[Create Deployment]をクリックします。

hot-warm-template.png

この事例ではAWSでUS Eastの地域を指定し、[Optimize your deployment]という項目で[Hot-Warm Architecture]というオプションを選択します。次に[Customize Deployment]というボタンをクリックします。

カスタマイズを行うページでは、Hotインスタンス構成とWarmインスタンス構成のスケールを独立に指定することができます。具体的なニーズに合わせてインスタンスのサイズを決める方法については、こちらのHot-Warmアーキテクチャーのサイズ設計に関する記事を参考にしてください。

今回の事例では、各値をデフォルトのままで設定します。

またここで、デプロイの機械学習機能を有効化しておきます。Elasticsearch Serviceのすべてのデプロイで、無料の機械学習ノードとKibanaノードがそれぞれ1GBずつ提供されます。

hot-warm-enable-ml.png

次に[Configure Index Curation]をクリックします。

インデックスキュレーション

index-curation.png

インデックスキュレーションで、HotノードからWarmノードへインデックスを移動する期間を定義することができます。Beats(metricbeat-*、filebeat-*)やLogstash(logstash-*)など、よく使われるツールのインデックスがデフォルトで用意され、デフォルトで移動期間は1日になっています。この事例では、デフォルト値のまま次へ進みます。

注: 各種の設定やルールは、デプロイの後も、デプロイ下の[Operations]ページからいつでも変更できます。

この手順が完了したら[Create Deployment]をクリックします。

おつかれさまでした!これであなたは"パワフルなHot-Warmアーキテクチャーの開発エンジニア"です。

データを送る

Hot-Warmデプロイを稼働させることができるようになりました。早速ロギングデータを入れてみましょう。はじめにローカルマシンにBeatsをインストールします。次にElasticsearch Serviceでデプロイが生成したCloud IDとパスワードを使用すると、データを送ることができるようになります。BeatsとElasticsearch Serviceの設定について詳しくは、こちらのElasticsearch ServiceでMetricbeatを使用する方法に関するブログ記事をご覧ください。

Cloud IDは、Deploymentsページの[Cloud ID]セクションで確認することができます。

deployment-cloud-id.png

メモ:パスワードを忘れてしまった!という場合はリセットできます。Elasticsearch Serviceで使用するElasticのユーザーパスワードをリセットするには、[Deployment] -> [Security] -> [Reset password]を選択します。

これでローカルマシンのデータを送ることができます。次はKibanaにログインしてダッシュボードを確認しましょう。Elasticsearch Serviceは毎日自動的にデータをHotノードからWarmノードに移動するので、データをどんどん送り続けることができます。

機械学習を追加する

Elasticsearch Serviceでサポートを開始したもう1つのパワフルなオプションが機械学習です。すべてのユーザーに無料で1GBの機械学習ノードが提供されています。先ほどデプロイの際に機械学習を有効化してあるため、Kibanaで機械学習アプリを操作することで、機械学習ジョブを作成することができます。

machine-learning-kibana.png

機械学習とユースケースについて詳しくは、こちらにあるElasticの機械学習オプションページでご紹介しています。

まとめ

Hot-WarmアーキテクチャーをはじめとするElasticsearch Serviceのパワフルな新機能は、わずか数クリックで使いはじめることができます。さらに機械学習やセキュリティといったElastic Stackのオプションを活用すれば、Elasticsearch Serviceでログやメトリックを驚くほど高度に監視することができます。

ぜひ14日間の無料トライアルをお試しください。