マイナビニュースマイナビ

AWS Elasticsearch Serviceの利用方法

【連載】

簡単導入! OSS全文検索サーバFess入門

【第37回】AWS Elasticsearch Serviceの利用方法

[2021/06/03 08:00]菅谷 信介 ブックマーク ブックマーク

前回はElastic社が提供している「Elastic Cloud」でのFessの利用方法について説明しました。今回は、AWSが提供している「AWS Elasticsearch Service」でのFessの利用方法を紹介します。

AWS環境の準備

今回は、事前にAWSアカウントを取得して、AWSのサービスが利用可能な状態であることを前提とします。

AWS環境でFessを利用する場合、Amazon ECS(Elastic Container Service)やAmazon EKS(Elastic Kubernetes Service)などにFessをデプロイすることになると思います。ここでは説明をシンプルにするために、Fessはローカル環境上で動作させ、Elasticsearch Serviceと接続するようにします。実際に運用する場合は、ご利用の環境に合わせて適切なAWSの権限設定で利用してください。

AWS Elasticsearch Serviceのデプロイ

AWSマネジメントコンソールにサインインしたら、Elasticsearch Serviceのサービスの画面を表示して「新しいドメインを作成」ボタンをクリックします。今回は検証目的で環境を構築するので、「デプロイタイプ」は「開発およびテスト」を選択します。また、Elasticsearchのバージョンは、現時点で最新である「7.9」を選択し、「次へ」をクリックします。

手順

デプロイタイプの選択

次は「ドメインの設定」です。今回は以下のように設定します。

項目 設定値
Elasticserach ドメイン名 fess-demo
カスタムエンドポイント 無効化
自動調整 無効化
インスタンスタイプ r5.large.elasticsearch(デフォルト)

これらの設定値は構築したい環境の要件によって変わるため、運用する際はAWSの公式ドキュメントを参照の上、調整してください。 今回の設定は、最低限の動作確認ができる設定値として利用しています。

設定ができたら、「次へ」ボタンをクリックします。

手順

「アクセスとセキュリティの設定」では以下のように設定します。

項目 設定値
ネットワーク構成 パブリックアクセス
細かいアクセスコントロール 有効化
マスターユーザーの作成 マスターユーザー名とパスワードを指定
アクセスポリシー IPv4アドレスを指定

今回はローカル環境からElasticsearch Serviceに接続するため、VPCでなく、パブリックなアクセスにして、マスターユーザー名とパスワードを設定しています。このユーザー名とパスワードが、Fessからアクセスするために必要な情報となります。

アクセスポリシーには、アクセス元のIPを設定しておきます。アクセス元のIPアドレスはローカル環境がインターネットから見えているグローバルIPアドレスになります。

アクセス権限に関する設定は、ご利用の環境に合わせて設定してください。

設定ができたら、「次へ」ボタンをクリックします。

手順

タグの追加は必要に応じて設定し、「次へ」ボタンをクリックします。

手順

最後に設定した内容が表示されるので、問題ないことを確認して、「確認」ボタンをクリックしてください。10分ほどでElasticsearchクラスタが利用可能になり、ステータスがアクティブになります。

手順

ここまでがElasticsearch Serviceのデプロイ手順になります。

Fessの設定と起動

Elastic Cloudの利用時と同様、DockerでFessを実行します。以下のように「docker run」を実行するとFessを起動できます。

docker run -d -p 8080:8080 \
  -e ES_HTTP_URL=<エンドポイントURL> \
  -e ES_TYPE=aws \
  -e ES_USERNAME=<ドメイン作成時に設定したユーザー名> \
  -e ES_PASSWORD=<ドメイン作成時に設定したパスワード> \
   ghcr.io/codelibs/fess:13.12

「ES_TYPE」は「aws」、「ES_HTTP_URL」は「Elasticsearch Serviceのエンドポイント」、「ES_USERNAME」と「ES_PASSWORD」は「ドメイン作成時に指定したもの」を指定してください。

Fessの起動後、「http://localhost:8080/」にアクセスし、管理画面でダッシュボードを確認するとElasticsearch Serviceのノードが表示されていると思います。

なお、Fessの動作確認後、利用しないElasticsearch Serviceの環境を削除することを忘れないようにしてください。

Elastic Cloud利用時との違い

「ES_TYPE」で「aws」か「cloud」を指定するだけで、Fessの起動方法や制約などはほぼ同様になります。

現時点では、AWS Elasticsearch ServiceでElasticsearchプラグインを変更することはできません。そのため、「ES_TYPE」を「aws」に設定した場合は、AWSで提供されているプラグインに合わせたインデックスマッピングを適用して、Fessを動作させています。そのため、「ES_TYPE」が「aws」のときにはAWS Elasticsearch Service専用の設定になり、cloudの場合はプラグインが調整可能なマネージドElasticsearch向けの設定が適用されます。

* * *

今回はAWS Elasticsearch Serviceに接続して、Fessを利用する方法をご紹介しました。

Elastic Cloudと同様、Fessでの辞書管理機能は利用できませんが、マネージドのElasticsearchを簡単に利用でき、Fess自体もマネージドな環境にデプロイして利用しやすいので、ぜひ試してみてください。

著者紹介

菅谷 信介 (Shinsuke Sugaya)

Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。

本連載の内容やFessに関するご質問は公式フォーラムまで。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で TECH+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Slackで始める新しいオフィス様式
Google Workspaceをビジネスで活用する
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
次世代YouTubeクリエイターの成長戦略
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る