AWSを利用する際、さまざまなデータをオブジェクトストレージサービスのAmazon S3に置いている場合も多いと思います。 FessはS3上のデータもクロールして、検索することが可能です。今回はその方法をご紹介します。
認証情報の生成
今回は、IAMユーザーを作成して、その認証情報を利用します。まず、AWSコンソールにログイン後、右上の「アカウント名」をクリックして、「セキュリティ認証情報」をクリックします。
左メニューの「ユーザー」をクリックして、「ユーザーを追加」をクリックします。
任意のユーザー名を入力して、認証情報タイプで「アクセスキー - プログラムによるアクセス」にチェックを入れ、「次のステップ」ボタンをクリックします。
「既存のポリシーを直接アタッチ」をクリック後、入力フォームに「AmazonS3ReadOnlyAccess」を入力し、ポリシー名にチェックを入れます。「次のステップ」ボタンをクリックします。
タグの追加画面が表示されますが、今回は設定しないので何も入力せず「次のステップ」ボタンをクリックします。
確認画面で「ユーザー名」「AWSアクセスの種類」「管理ポリシー」の内容を確認して、「ユーザーの作成」ボタンをクリックします。
ユーザー作成が成功したら、ここで表示される「アクセスキーID」と「シークレットアクセスキー」を控えておきます。 「シークレットアクセスキー」は「表示」のリンクをクリックすると表示されます。 なお、「.csvのダウンロード」ボタンをクリックすると、それらの情報をダウンロードすることもできます。 「アクセスキーID」と「シークレットアクセスキー」はFessの設定で利用するので、保存しておいてください。
今回は、「AmazonS3ReadOnlyAccess」をアタッチして、IAMユーザーを簡単に作っていますが、実際の運用で利用する際にはポリシーの作成やIAMロールを利用するかなどの検討が必要です。
プラグインのインストール
Amazon S3 のバケットをクロールするために、fess-ds-s3プラグインをインストールします。今回利用するのは、Fess 14.3.0です。
管理画面にログイン後、左メニュー「システム」>「プラグイン」をクリックし、画面右上の「インストール」をクリックします。表示された「リモート」タブのプルダウンから「fess-ds-s3-14.3.0」を選択して「インストール」をクリックします。
クロールの設定
次に、クロール設定を作成します。
管理画面の左メニューで「クローラ」>「データストア」>「新規作成」をクリックし、クロール設定を作成します。 設定が必要な項目は以下の4つです。
「名前」には任意の文字列を入力し、「ハンドラ」には「AmazonS3DataStore」を選択してください。「パラメータ」には、以下の値を入力します。
各項目の説明は以下の通りです。
キー | 値 |
---|---|
region | S3 バケットのリージョン |
accesskeyid | AWS アクセスキーID |
secret_key | AWS シークレットキー |
buckets | AWS バケット名 (オプション指定。クロールするバケットを指定する場合に使用。複数ある場合はカンマ区切りで指定) |
「スクリプト」は以下を入力します。
取得可能なキーと値の説明は以下の通りです。
キー | 値 |
---|---|
object.url | S3 S3 オブジェクトの URL |
object.managementurl | S3 オブジェクトの管理 URL |
object.key | S3 オブジェクトのキー |
object.etag | S3 オブジェクトのタグ |
object.contents | S3 オブジェクトのテキスト コンテンツ |
object.mimetype | S3 オブジェクトの MIME タイプ |
object.filetype | S3 オブジェクトのファイルタイプ |
object.filename | S3 オブジェクトのファイル名 |
object.size | S3 オブジェクトのサイズ |
object.lastmodified | S3 オブジェクトの最終更新日時 |
object.ownerid | S3 オブジェクトの所有者 ID |
object.ownerdisplayname | S3 オブジェクトの 所有者の表示名 |
object.bucketname | S3 オブジェクトのバケット名 |
object.creationdate | バケットの作成日 |
クロールの実行
クロール設定ができたらクロールを実行してみましょう。管理画面の左メニューの「システム」>「スケジューラ」で「Default Crawler」のジョブを開きます。「今すぐ開始」をクリックしてクローラを開始し、ジョブの状態が「実行中」から「有効」になるまで待ちます。
検索
クロール完了後、検索画面にアクセスして検索してみます。 検索結果として、S3内のファイルが表示されれば成功です。
* * *
今回は Amazon S3 のバケットをクロールする方法をご紹介しました。 S3上にさまざまなデータを置いて管理している場合には、Fessを利用することで検索が可能になり、データを探しやすくなると思います。クロール設定も簡単にできるので、ぜひご利用ください。