はじめに
検索システムの設定を手動で管理していると、環境の再現が難しくなり、設定ミスのリスクも高まります。 モダンな DevOps の考え方を取り入れ、検索インフラもコードとして管理し、自動化しましょう。
本記事では、Fess の設定をコードとして管理し、デプロイを自動化するアプローチを紹介します。
対象読者
検索システムの運用を自動化したい方
DevOps/IaC の手法を検索インフラに適用したい方
Docker と CI/CD の基本知識がある方
Infrastructure as Code の適用
Fess 環境を「コード」として管理する対象は以下の通りです。
Docker Compose による環境定義
本番環境用の Docker Compose ファイル
第2回で使用した基本構成を拡張し、本番環境に適した構成を定義します。
ポイントは以下の通りです。
ヘルスチェックの定義: OpenSearch が準備できてから Fess を起動
ボリュームの永続化: データの永続化
再起動ポリシー: 障害時の自動復旧
JVM ヒープの明示的な設定
管理 API を使った設定の自動化
Fess の管理 API を使うことで、GUI を介さずにプログラムから設定を操作できます。
設定のエクスポート
現在の Fess 設定をエクスポートして、コードとして保存します。
管理画面の [システム情報] > [バックアップ] からエクスポートできます。 また、管理 API を使ってスクリプトからエクスポートすることも可能です。
設定のインポート
保存した設定ファイルを使って、新しい Fess 環境に設定を適用します。 これにより、環境の再構築や複製が容易になります。
fessctl CLI の活用
fessctl は Fess のコマンドラインツールです。 管理画面で行う操作の多くを、コマンドラインから実行できます。
主な操作
クロール設定の作成・更新・削除(ウェブ、ファイルシステム、データストア)
スケジューラジョブの実行
ユーザー・ロール・グループの管理
キーマッチ、ラベル、ブーストなどの検索設定管理
CLI を使うことで、設定変更をスクリプト化し、CI/CD パイプラインに組み込むことができます。
CI/CD パイプラインの構築
設定変更のワークフロー
検索システムの設定変更を、以下のワークフローで管理します。
変更: 設定ファイルを修正し、Git ブランチで管理
レビュー: プルリクエストで変更内容をレビュー
テスト: ステージング環境で動作確認
デプロイ: 本番環境に設定を適用
GitHub Actions での自動化例
設定ファイルの変更がマージされたら、自動的に本番環境に反映する例です。
バックアップの自動化
定期的なバックアップも自動化しましょう。
バックアップスクリプト
cron や CI/CD のスケジュール機能を使って、定期的にバックアップを取得します。
環境の再構築手順
災害復旧やテスト環境の構築のために、環境を完全に再構築する手順を文書化しておきます。
Docker Compose でコンテナを起動
OpenSearch のヘルスチェックが green/yellow になるまで待機
Fess の設定をインポート(管理 API またはリストア機能)
辞書ファイルを配置
クロールジョブを実行
動作確認(検索テスト)
この手順をスクリプト化しておけば、環境の再構築を迅速に行えます。
まとめ
本記事では、Fess の検索インフラを DevOps の手法で管理するアプローチを紹介しました。
Docker Compose による環境定義のコード化
管理 API と fessctl による設定の自動化
CI/CD パイプラインによる設定変更のデプロイ自動化
バックアップの自動化と環境再構築手順
「手順書を読んで手作業で設定」から「コードを実行して自動デプロイ」へ、検索インフラの運用を進化させましょう。
次回は、プラグイン開発による Fess の拡張について扱います。