LoginSignup
2
1

More than 3 years have passed since last update.

検索サーバFessのオンプレからAWSへの移行

Last updated at Posted at 2020-05-05

オンプレのFessサーバをAWSに移行した際のメモです。

Fessについて

公式サイト
https://fess.codelibs.org/ja/
「Fess (フェス) は「5 分で簡単に構築可能な全文検索サーバー」です。 Java 実行環境があればどの OS でも実行可能です。 Fess は Apache ライセンスで提供され、無料 (フリーソフト) でご利用いただけます。」
↓ 実際の検索画面は以下のような形です。
image.png

移行前構成

  • 社内のサーバ室にてオンプレ運用
  • OSはwindows 7
  • ローカルに保管したhtml(約60万ファイル)を検索
  • SSL化未対応
  • 日次で新しい検索対象ファイルをwebからダウンロードし、webクロールを実施
  • 同じくオンプレのファイルサーバに日次でバックアップするタスクを起動

 閉じたネットワーク内でしか使わないのであまり管理されていませんでした。

移行後構成

image.png

  • AWSにWindows Server2019のEC2を立て、Fessをインストールする
  • EIP付与
  • ALB+ACMでSSL化する
  • セキュリティグループで社内のグローバルIPからのみアクセスを受け付ける
  • 頻繁に使うサーバではないので、CloudFormationのEC2 Schedulerを使って稼働時間以外は停止させて節約する
  • CloudWatchでALBの死活監視を行い、lambdaからSNS経由でslack通知させる
  • Fessのクロールに関する設定は現行踏襲

 ユーザの使い勝手が変わらないようにという要件に沿って構成。

移行概要

  1. EC2構築

    当初はt2.microで作成したのですが、以下の理由で後でt2.largeに変更しました。

    • クロールが一日かかっても終わらない。(変更後は30分ほどに改善)
    • 検索結果が表示されるのに非常に時間がかかる。(30秒→1秒に改善)
  2. Fessのインストール
    EC2が完成したら、Fessをインストールします。

    https://fess.codelibs.org/ja/quick-start.html#fess

    • ブラウザからインストールする時にはInternet Explorerセキュリティ強化をオフにする必要があります。

image.png

3.Fess起動

./bin/fess.batで起動します。
image.png

  • WindowsのECのパーソナルFW(Windows Defender)を開けないと、外部からfessとしてアクセス出来ませんでした。fessで利用するポート(デフォルト:8080)の穴あけをする必要あります。 image.png

4.Fessの設定

  • webクロール

    • クロールジョブのスケジュールの設定をします。 image.png
    • sitemapの設定
      • 移行前の設定と同様に、sitemapをクロールのURLに設定します。 image.png

5.SSL化

SSL化するには固定ドメインが必要なので、取得済みのドメインからサブドメインを登録して利用します。

  • Route53登録
    fess用のサブドメインを登録します。
    image.png
    image.png
    レジストラ側のネームサーバの内容をRoute53側に登録します。
    ※画像はムームードメインのものです。
    image.png

  • ACMからの証明書発行

    ACMでパブリック証明書のリクエストを行い、取得したサブドメインを追加します。
    image.png
    サブドメインがACMに登録されたら、証明書をALBに登録してFessとしてアクセスが可能になります。
    image.png

移行時に困った点

  • 構築当初はクロールに要する時間がとても長いので気をつける

    • EC2のインスタンスタイプt2.microの状態でしたが、検索対象となるhtmlファイルが約60万でクロールに3日以上かかりました。EC2のCPUが張り付いたらインスタンスタイプの変更要です。 image.png
  • 実際の検索に時間がかかる時

    • EC2のインスタンスタイプの変更で解消。
  • 検索対象となるファイルの移行

    • 最初は現行サーバのDBを移行しようと思ったのですが、現行に影響を与えないという移行方針から、対象となるファイルを手動でコピーしました。Mac上でrsyncなどのコピーコマンドを実行しましたが、どうしてもコピー中にエラーが生じる(新旧で検索結果の件数が異なる)ので何度も繰り返すこととなりました。

今後の課題

全体の構成をterraformで管理しようと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1