Help us understand the problem. What is going on with this article?

Elastic Cloudを使ってみた

こんにちは。
Web・iOSエンジニアの三浦です。

今回は、Elastic社のクラウドサービスの一つで、マネージドなElasticsearchを提供してくれているElastic Cloudを触ってみたので、その内容や感想などを述べていこうと思います。

2019/02/28時点での情報です。

はじめに

うちの会社ではSolrをVMに載せて使っているのですが、VMの保守期限が切れるため、移行が必要になりました。
当初は同じくSolrをどこかで使おうと思っていたのですが、せっかくなので最近よく聞くElasticsearchを使ってみることにしました。
また、正直もう保守の面倒も見たくないということで、マネージドなサービスを使おうと考え、選択肢の一つとしてElasticがマネージドで提供しているElastic Cloudに白羽の矢を立てて使ってみました。
(なおこちら Amazon Elasticsearch Service 編です)

Elastic Cloud とは

Elastic社が公式に運営するクラウドサービスです。

公式運営のため、常に最新バージョンのElasticsearchや関連するサービス(Kibanaなど)が使用でき、またサポートも充実しています。

公式プラグインや機能なども自由に使用できます。

サーバーとしてはAWSとGCPから好きなRegionのものを選択できますが、GCPではTokyo Regionが使用できないなど一部制限もあります。
最近東京がサポートされたようです!

ただしAWSやGCPのアカウントは不要であり、Elastic Cloudにアカウントを作るだけで使用することができます。

使い方

アカウント作成

https://www.elastic.co/jp/cloud/elasticsearch-service

ここからアカウントを作成できます。
使用できるインスタンスのメモリ・ストレージサイズなどの内容は限定されますが、14日間は無料トライアルが使用可能です。
内容が限定されるとはいえ、トライアルとしては十二分なものがもらえるので問題ないでしょう。

デプロイメント

インスタンスを作成します。
基本的にはCLIなどは一切使用せず、必要な要件のボタンを押していくだけで完了します。
細かい設定をしたい場合は、設定ファイルを変更することもできます。

基本作成画面

スクリーンショット 2019-02-20 16.51.09.png
好きな名前記入と各ボタンをクリックだけで進められます。

カスタム作成画面

スクリーンショット 2019-02-20 16.53.03.png
カスタム作成画面では、無料トライアルのためあまりできることはありませんが、実使用時はいろいろと調整できそうです。
また全文検索時に日本語を使用する場合、デフォルトで使われているAnalyzerでは対応していません。
そのため、ICU、kuromojiと呼ばれるライブラリを導入・設定する必要があります。
以下のように設定できます。

この操作は、デプロイメント完了後にEdit画面からも行うことができます。

  1. Elasticsearch plugins and settings の Manage plugins and settings を展開
  2. analysis-icu と analysis-kuromoji を選択

スクリーンショット 2019-02-21 12.11.46.png

デプロイメント完了後

デプロイメントが完了すると、Elastic Cloudの各機能が使用できるようになります。

主なものについて紹介します。

なお、デプロイ完了直後に表示される、デフォルトユーザーであるelasticのパスワードは最初しか表示されないので、どこかにコピーして保存してください。

デフォルト画面

スクリーンショット 2019-08-12 10.40.18.png

左メニューのデプロイメント名をクリックすると表示されます。
作成した各インスタンス・アプリケーション等の概要データが表示されます。
Applications欄のLaunchリンクから、各アプリケーションの詳細画面へ飛ぶことができます。

Edit画面

スクリーンショット 2019-08-12 11.10.10.png

左メニューのEditをクリックすると表示されます。
各アプリケーション・インスタンスについて編集ができます。
主にメモリやストレージサイズ、設定などの変更、Machine LearningやAPMなどのアプリケーションの有効・非有効化、公式プラグインの追加などが行なえます。

API Console画面

スクリーンショット 2019-08-12 11.08.16.png

左メニューのAPI Consoleをクリックすると表示されます。
ターミナルやブラウザを使わず、直接APIを叩くことができます。

Performance画面

スクリーンショット 2019-08-12 11.00.12.png

左メニューのEditをクリックすると表示されます。
現在のElastic Cloudの各種状態をモニタリングできます。

Kibana画面

KibanaのLaunchリンクを叩くことで遷移できます。
アカウントは、最初に提示されたelasticアカウントか、自分で作成したアカウントです。
データの可視化、モニタリングなどが利用できます。

アクセス制御

不特定のものからElasticsearchへデータを追加・編集されたりデータを読み取られないようにするため、Elasticsearchへのアクセスを制御する必要があります。

Elastic Cloudでは、X-Packと呼ばれるツールの機能を使います。

Kinabaコンソールの「Management」のSecurity項目にてロールを振り分けたユーザを作成し、Elasticsearchへのアクセス時は作成したユーザのID/PASSを使用することで、ロールに合致する内容にのみアクセスできるようになります。

スクリーンショット 2019-03-01 14.23.07.png
スクリーンショット 2019-08-12 11.12.09.png

通知

何らかの異常が起きた時に、それを検知して通知する必要があります。
Elastic Cloudでは、X-PackのWatcherという機能を使います。
Kinabaコンソールの「Management」のElasticsearchのWatcherにて、Watcherの管理画面に飛ぶことができます。
スクリーンショット 2019-03-01 14.23.07 (1).png

所感

良かった点

デプロイメントが楽

必要な情報をボタンで選んでいくだけですぐにインスタンスを作成できました。

インスタンスのメモリ・ストレージサイズの比率設定が、Elasticが考える最も良い比率に固定されている

これは良い点でも悪い点でもありますが、インスタンスのメモリ・ストレージサイズの比率がElasticが考える最も良い比率に固定されています。

キレイに運用できる利点がある一方、細かく値段のチューニングは効きません。

最新バージョンが使用できる

Elastic公式のため、最新バージョンがすぐに使用できます。

プラグイン追加が楽

デフォルトのAnalyzerでは日本語の解析は難しく、専用のプラグインを追加する必要があるのですが、予めレコメンドしてくれているので設定が楽でした。

Elasticの関連アプリケーションを使用できる

Kibanaでは、APMなどサービス側の状態を取得して可視化できるサービスも使用でき、関連サービスの様々な状態を取得できるため、全文検索以外にも幅広くデータ収集ができます。

悪かった点

独自のサービスである

AWSが提供するAmazon Elasticsearch ServiceではAWSの知見があれば応用できたりしますが、これは独自のサービスであるためそのあたりの応用が効かないという点があります。

総評

公式というだけあってElasticsearchの最新版が使えたり、Elasticの他のツールもデフォルトで多くが提供されていたりなどしており、Elastic自体にとても慣れている人には非常に良いサービスであると思います。

一方で、Elasticツール独特の使い方や設定を学習しなければならない点などがあるのも事実です。

ただ、最近はGCPへの対応が強化されているようですので、今後はGCPならElastic Cloud、AWSならAmazon Elasticsearch Service、という使い分けになるかもしれません。

takayuki-miura0203
エンジニア。Webのフロントエンド(es5, es6など) ~ バックエンド(主にPHP)、iOSアプリ(Swift)とかやってます。 最近はAWSなども。 Twitterはこちら https://twitter.com/miura0203
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした