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

Amazon Elasticsearch Serviceを触ってみた

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

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

2019/02/28時点での情報です。
スクショのみ新しく撮り直しています。

はじめに

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

Amazon Elasticsearch Service とは

Amazon社が運営するクラウドサービスです。

Elasticsearchをクラウドで提供するサービスには、Elasticsearchを作っているElastic社が提供するElastic Cloudというものがありますが、それとは異なり公式運営ではないため、最新のバージョンがすぐに使えるわけではなかったり、一部のプラグインの使用などに制限があります。
一方で、AWSの他のサービスとの連携がしやすかったり、今までAWSを使っていた人にはわかりやすいという利点があります。

最近はリザーブドインスタンスで使用できるようになり、料金がさらに安くなりました。
使用にはAWSアカウントが必要です。

使い方

アカウント作成

Amazon Elasticsearch Serviceを使うにはAWSアカウントが必要です。作成しましょう。

デプロイメント

Elasticsearchのインスタンスを作成します。
CLI上でも可能ですが、今回はブラウザ上でGUIで作成する方法を紹介します。
細かい設定も可能ですが、最低限使えるようにする設定だけであれば非常に簡単です。

作成画面へ行くまで

AWS マネジメントコンソール画面からElasticsearch Serviceを選択します。
スクリーンショット 2019-08-12 9.06.38.png

Amazon Elasticsearch Sevice画面にて、「新しいドメインの作成」を選択します。
ドメインとは、Elasticsearchの実行に必要なリソースのコレクションです。
なお「リザーブドインスタンスの購入」では、予めインスタンスを年単位で安く購入することができます。
スクリーンショット 2019-08-12 9.07.33.png

作成画面(デプロイタイプの選択・バージョン指定)

デプロイタイプとバージョンを指定します。
検証用に作成するのであれば、デプロイタイプは「開発およびテスト」、バージョンは最新で良いでしょう。
スクリーンショット 2019-08-12 9.08.55.png

作成画面(ドメインの設定)

ドメイン名、インスタンスやストレージのタイプ、スナップショット等、ドメインの設定をします。
インスタンスやストレージなどは料金に直結するので、求めるスペックと料金表を比較しながら選びましょう。
その他の設定は、試してみるだけならデフォルトでも構わないと思います。
スクリーンショット 2019-08-12 9.14.38.png

作成画面(アクセス設定)

ドメインへのアクセスの制御をします。
検証であれば、設定が簡単なパブリックアクセス + 特定IPの許可でいいかと思います。
スクリーンショット 2019-08-12 9.17.09.png

最後に確認画面で確認してからボタンを押すと、インスタンスが作成されます。

またこれらの設定は、インスタンス作成後にも変更できます。

デプロイメント完了後

デプロイメントが完了すると、Amazon Elasticsearch Serviceの各機能が使えるようになります。
スクリーンショット 2019-08-12 9.28.04.png
おおよそボタン・タブにかかれている通りですが、コンソール上でindexを作る・データを入れるなどするときは、概要の「Kibana」のURLからKibanaコンソールへ飛び、そこで操作すると良いです。

ちなみに設定を変更する際は、青い「クラスターの設定」ボタンから設定ページに飛ぶことができます。
(最初そのボタンが今の画面のことを指していると勘違いし、かなり詰まりましたw)

Kibanaコンソール

Kibanaのコンソールです。
スクリーンショット 2019-08-12 9.31.19.png
コンソール上からデータを入れるなどしたいときは、「Dev Tools」を使うと良いでしょう。

日本語全文検索設定

日本語の全文検索をする際は、ICU、Kuromojiと呼ばれるライブラリを設定・導入する必要がありますが、Amazon Elasticsearch Serviceはデフォルトでそれらのプラグインをサポートしているため、プラグインの導入の必要はありません。

所感

良かった点

デプロイメントが楽

必要な情報をボタンやプルダウン、ちょっとしたテキストによって入力するだけで、すぐにインスタンスを作成できました。

細かくインスタンスの設定ができる

上限・下限はありますが、ストレージサイズを1GB単位で設定できるなど、細かくインスタンスのサイズなどを設定できます。

日本語での設定の際、プラグイン追加の手間がない

ICU、Kuromojiがデフォルトでサポートされているため、追加で導入する必要がありません。

コンソールが日本語でわかりやすい

Kibanaは英語ですが、Elasticsearch Serviceのコンソールは日本語のためとっつきやすいです。

アクセスコントロール設定が楽

コンソール上でアクセスコントロールの設定されており、簡単に設定できました。
ただし、凝ったことをする場合は、AWSのアクセスコントロールについて理解しておく必要があります。

他のAWSサービスと簡単に連携できる

CloudWatch、IAMなど、AWSの他のサービスと簡単に連携できます。
それぞれが使いやすく、またAWSの他のサービス使用時にも応用できたり、予め知識があれば使用できます。

いまいちな点

最新バージョンが使用できない場合がある

公式サポートでないこともあり、最新バージョンが使用できないことがあります。

Elastic社の他のツールがサポートされていない

Logstashなどのツールについては一緒にはサポートされていないため、使いたければ別途サーバなどを立てて自分で入れるなりする必要があります。

おわりに

アクセスコントロールを含むインスタンスの作成が非常に簡単で、Elasticsearchを試しに使ってみるのであればAmazon Elasticsearch Serviceを使ってみるのはとてもアリな選択肢だと感じました。
また予めAWSを導入しているのであれば、AWSの他のサービスと簡単でセキュアに連携できますし、CloudFormationが使えるなどAWSの知見が使用できるので、そういう意味でもとても良いサービスなのではないでしょうか。

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
ユーザーは見つかりませんでした