Amazon CloudSearchとAmazon Elasticsearch Serviceを実際に触ってみた

AWS運用自動化サービス「Cloud Automator」

こんにちは!技術2課、濱岡です。

どうぶつの森の島クリエイターで時間がとけていってます。
でも、色々やっていると楽しくなっていってしまうんですよね。。。

さて、今回はAmazon CloudSearchとAmazon Elasticsearch Serviceの2つを実際に触ってみました。

Amazon CloudSearchとは

Amazon CloudSearchとはウェブサイトまたはアプリケーション向けの検索ソリューションを容易かつコスト効率良く設定、管理、スケールできるマネージド型のサービスになります。
34言語をサポートしており、ハイライト表示、自動入力、地理空間検索などもできるそうです。
日本語もちゃんとサポートしてます。

色々書きましたが、使った方が早いよねということで早速使ってみます。

Amazon CloudSearchを使ってみよう

ドメインを作成してみよう

サンプルのデータがあるのでこちらを参考にやっていきます。

まずAmazon CloudSearchのマネージドコンソールの画面から Create a new search domain を押します。

Search Domain Nameは好きな名前で大丈夫です。
私はtest-domainとしました。
他の値はdefaultにしました。
設定が終わったらContinueを押します。

次はindexの設定です。
Use a predefined configurationを選択します。
Load configuration for indexingはIMDb movies (demo)を選択します。
設定が終わったらContinueを押します。

設定の確認画面がでてきますので確認できたらContinueを押します。

最後にポリシーの選択ですね。
ちょっとここがわかりにくくて戸惑いました。

Search and Suggester service: Allow all. Document Service: Account owner only.を押します。

するとこんな感じでポリシーが表示されます。
これで大丈夫です。
そしてContinueを押します。

設定の確認画面がでてきますので確認できたらContinueを押します。

するとこんな画面にいきます。
ドメインの作成に10分ほどかかると書いてますね。
OKをクリックして10分ほど待ちます…

この画面から

この画面になれば作成できてます。

データのアップロードをしてみよう

今回はサンプルのデータを使用します。
Upload Dcumentsを押します。

Predefined dataを選択し、Load sample data forの部分はIMDb movies (demo)を選択します。
そしてContinueを押します。

確認画面がでますので確認したらUpload Documentsを押します。

この画面になりましたらFinishを押します。

実際に検索してみる

では、実際に検索してみます。
Run a test searchに検索したいワードを記入します。
私はためしにmarsで検索してみます。
ワードを記入したらGoを押します。

こんな感じで検索結果がでました。
次にmars attacksで検索してみます。

2つの画像をみると_scoreという値があります。
これは類似度でどれくらい情報が一致しているかという値ですね。
検索結果の表示順などに使っている値になります。

他にもOptionsを押すとand検索やor検索なんかもできます。

では、次にAmazon Elasticsearch Serviceを実際に使ってみましょう。

Amazon Elasticsearch Serviceとは

Amazon Elasticsearch ServiceとはElasticsearchを簡単にデプロイ、保護、実行する完全マネージド型サービスです。
Elasticsearchはオープンソースの検索エンジンですね。
これをAWS上で簡単に使えるようにしたものになります。

では早速使ってみましょう。

Amazon Elasticsearch Serviceを使ってみよう

ドメインの作成

こちらもサンプルのデータがあるのでこちらを参考にやっていきます。

まず、Amazon Elasticsearch Serviceのマネージドコンソール画面から新しいドメインの作成を押します。

まずはデプロイタイプを選択します。
今回は開発およびテストを選択します。
バージョンは最新バージョンにしておきます。

次にドメインの作成です。
Elasticsearch ドメイン名は任意の名前で大丈夫です。
私は、testdomainとしました。

インスタンスタイプはc5.large.elasticsearchでノードの数はデフォルトの1にします。

データストレージとマスターノードもそれぞれデフォルトの値で大丈夫です。

スナップショットの設定と任意の Elasticsearch クラスター設定もそのままで次へを押します。

次にアクセスとセキュリティの設定です。
ネットワーク構成はパブリックアクセスを選択します。

細かいアクセスコントロール – Open Distro for Elasticsearch を搭載の部分はマスターユーザーの作成を選択します。
マスターユーザー名とマスターパスワードは任意で大丈夫です。
ただし

マスターパスワードは、少なくとも 8 文字で、1 つの大文字、1 つの小文字、1 つの数字、および 1 つの特殊文字を含める必要があります。

となっておりますので注意してください。

Amazon Cognito 認証はそのままでアクセスポリシーはドメインへのオープンアクセスを許可を選択します。

暗号化もそのままで次へを押します。

最後に確認画面が出るので確認できたら確認を押します。

Amazon CloudSearchの時のドメインの作成より長かったですね…

確認を押すとこの画面になります。
こちらも10分ほどかかるので待ちましょう。

この画面になれば作成完了です。

データをアップロードする

サンプルのデータをアップロードします。
ここにあるようにコマンドを叩いてアップロードしてみてください。

master-userとmaster-user-passwordは先ほど設定したものを使用すれば大丈夫です。
domain-endpointは下の赤枠の値です。

これで準備完了です。

実際に検索してみる

では、実際に検索してみましょう。

KibanaのところのURLをクリックします。

下の画面に遷移しますので作った先ほど作ったマスターユーザー名とパスワードを入力してLog inを押します。

Kibanaは少なくとも1つのインデックスパターンが必要なのでそれを作成します。
下の画像の赤枠部分を押します。

今回はIndex patternにmoviesと入力しました。
入力したらNext stepを入力します。

あとはCreate index patternを押すとできます。

これでやっと検索できます。
検索バーにmarsと入力してEnterを押します。

こんな感じで検索ができます。

まとめ

Amazon CloudSearchとAmazon Elasticsearch Serviceを実際に触ってみました。
実際にデータをどこからかとってやってみた方がいいのかなと思ったのですが今回はサンプルデータを使用してみました。
こうやってみるだけでも流れがわかっていいですね。

作成したドメインを削除することもお忘れなく。

以上、濱岡でした!

AWS運用自動化サービス「Cloud Automator」