AWSのAmazon Elasticsearch Serviceを使って簡単にElasticsearch環境を作成してみる

AWSのAmazon Elasticsearch Serviceを使って簡単にElasticsearch環境を作成してみる

Kazuya Takato

Kazuya Takato

こんにちは。エンジニアのづやです。

LIGにもオープンソースの検索エンジンElasticsearchを導入したいなぁと思いまして、AWSの公式サービスがリリースされていたのを思い出しました。そこでAWSのElasticsearch環境を作るところまでとりあえず試してみましたので、その紹介をさせていただきます。

「Elasticsearchとはなんだろう?」という方は公式サイトをご確認ください。

AWSのコンパネから設定する

まずは各種設定を行っていきます。

2-1

ドメイン名の入力

ドメイン名を任意で入力しましょう。
エンドポイントのURLに利用されます。今回は「liginc」にしました。

3-1

インタンスの設定

次は設定がいっぱいあります。
インスタンスタイプとインスタンスの数を選びます。1番小さいt2.microを選択しています。

ストレージタイプの設定

次にストレージのタイプです。
インスタンスストアかEBSが選択できるのですが、t2系だとEBSしか選べないためEBSにしています。

最後のUTC+0を選択しているものはsnapshotを自動で取ってくれる時間です。負荷の少ない時間にするといいよと書いてあります。今回はとりあえずデフォルトで。

4-1

セキュリティポリシーの設定

次はセキュリティポリシーです。S3とかでもあるやつですね。
テンプレートの中からIP制限のものを選択して、今回使用するインスタンスのIPを許可しました。

5

確認画面です。問題なければGOです。

ドメインの確認

指定したドメインで立ち上がります。

6-1

最初はDomain statusがLoadingなのでちょっと待ちます。

7-1

Activeになるとこんな感じです。エンドポイント等が作成されるので、こちらに向かって操作をしていく感じになります。

接続してみる

ではIPで許可したインスタンスから、まずデータをいれてみます。
※コマンドのURLはダミーのものです。

curl -XPUT search-dummy-domain.ap-northeast-1.es.amazonaws.com/testindex/test/1 -d '{
    "title":"testtitle" , 
    "body":"test body"
}'

curl -XPUT search-dummy-domain.ap-northeast-1.es.amazonaws.com/testindex/test/2 -d '{
    "title":"testtitle2" , 
    "body":"test body2"
}'

こんな感じでPUTにてテストデータを投入します。
そして投入したデータに検索をかけてみます。

curl -XGET search-dummy-domain.ap-northeast-1.es.amazonaws.com/testindex/test/_search -d '{
    "query":{
        "match":{
            "title":"testtitle"
         }
     }
}'

こんなふうにtitleが「testtitle」のデータを取得しにいくと↓の結果が

{
    "_shards": {
        "failed": 0, 
        "successful": 5, 
        "total": 5
    }, 
    "hits": {
        "hits": [
            {
                "_id": "1", 
                "_index": "testindex", 
                "_score": 0.30685282, 
                "_source": {
                    "body": "test body", 
                    "title": "testtitle"
                }, 
                "_type": "test"
            }
        ], 
        "max_score": 0.30685282, 
        "total": 1
    }, 
    "timed_out": false, 
    "took": 27
}

_idが1の最初にいれたデータが無事取得できました!!

おわりに

かなり簡単にElasticsearchを利用する環境が作れてしまいますね。
Elasticsearch導入の際は検討してみてもよいのではないでしょうか。

それでは、また。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。2023年7月には社長室室長に就任にし、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担っています。

このメンバーの記事をもっと読む