Amazon S3のクロール」では、fess-ds-s3プラグインを利用して、S3バケットをクロールする方法を紹介しました。Fessでは、このプラグインを利用せず、ファイルシステムクロールでS3バケット内のデータをクロールする方法も提供しています。

今回は、storage://形式のパスを利用し、S3バケットに保存されたファイルをクロールして、全文検索できるようにする手順を説明します。

認証情報の取得

FessがS3バケットをクロールするために必要なIAMユーザーを作成します。 IAMユーザーの作成後、「アクセスキー」と「シークレットアクセスキー」を以下の手順で取得してください。

AWSコンソールにログイン後、右上の「アカウント名」をクリックして、「セキュリティ認証情報」をクリックします。

  • セキュリティ認証情報をクリック

左メニューの「ユーザー」をクリックして、「ユーザーの作成」をクリックします。

  • ユーザーの作成画面を表示

任意のユーザー名を入力して、「次へ」をクリックします。

  • ユーザー名の入力

許可オプションでは「ポリシーを直接アタッチする」を選択します。許可ポリシーの検索ボックスで「AmazonS3ReadOnlyAccess」を入力して、ポリシー名を検索し、検索結果に表示された「AmazonS3ReadOnlyAccess」にチェックを入れて「次へ」をクリックします。FessがアクセスするS3バケットを限定したい場合などは、必要に応じてポリシーを作成してください。

  • S3の読み取り専用ポリシーをアタッチ

「ユーザー名」と「許可ポリシー」が指定したものであるかを確認して「ユーザーの作成」をクリックします。

  • ユーザーの作成

ユーザー一覧画面が表示されるので作成したユーザー名をクリックします。

  • 作成したユーザーを選択

ユーザー画面で「アクセスキーを作成」をクリックします。

  • アクセスキーの作成

「ユースケース」で「ローカルコード」を選択し、「上記のレコメンデーションを理解し、アクセスキーを作成します。」にチェックを入れて、「次へ」をクリックします。

  • ユースケースの選択

今回は説明タグを設定しないので、空欄のまま「アクセスキーを作成」をクリックします。

  • 説明タグなしでアクセスキーを作成

「アクセスキー」と「シークレットアクセスキー」が表示されるので保存してください。 最後に「完了」ボタンをクリックして終了します。

  • アクセスキーとシークレットの表示

Fessのクロール設定

今回は、Fess 14.19.1を利用して、手順を説明します。

ファイルシステムクロールの作成

管理画面の「クローラー」>「ファイルシステムクロール」>「新規作成」をクリックして以下を入力します。

  • 名前
  • パス
  • 設定パラメータ

「名前」には任意のクロール設定の名前を入力します。

今回は例として、S3上に作成した「fess-testdata」バケットをクロールするため、「パス」には以下のように入力しました。クロール対象のS3バケットに合わせて、「fess-testdata」の部分を置き換えてください。

storage://fess-testdata/

「設定パラメータ」は次のように記述します。

client.endpoint=https://s3.ap-northeast-1.amazonaws.com
client.accessKey=[保存したアクセスキーを指定]
client.secretKey=[保存したシークレットアクセスキーを指定]

クロールの実行

クロール設定の登録後、「システム」>「スケジューラ」>「Default Crawler」から「今すぐ開始」をクリックします。

クロールが完了したら、検索画面にアクセスして検索してみましょう。S3上に保存したファイルが検索できれば成功です。

  • 検索画面

* * *

今回、fess-ds-s3プラグインを使わずにstorage://スキームを利用することで、S3バケットをファイルシステムのように扱い、S3上のファイルを手軽に全文検索対象とする方法を紹介しました。S3のログやドキュメントを検索基盤へシームレスに取り込みたい方は、ぜひ本手順をお試しください。