3

Elastic Beanstalk で SOLR サーバーを実行したいと考えています。しかし、私はウェブでそれについて多くを見つけることができません.

すでに一部の人が使用しているため、何らかの方法で可能である必要があります。( https://forums.aws.amazon.com/thread.jspa?threadID=91276すなわち)

どのように私はそれを行うことができますか?

まあ、どうにかして solr warfile を環境にアップロードできますが、そうすると複雑になります。各インスタンスがアクセスできるように、構成ファイルとインデックス ディレクトリをどこに配置すればよいですか?

4

1 に答える 1

2

編集: この回答は 2013 年のものであることを覚えておいてください。ここに記載されている製品は進化している可能性があります。solr クラスタリング wiki の変更を反映するために、ドキュメント リンクを更新しました。この情報を読んだ後、調査を続けることをお勧めします。

オリジナル: 単一サーバーのデプロイのみを使用することを計画している場合にのみ、Beanstalk インスタンスで solr を実行することが本当に理にかなっています。アプリをスケーリングしたいときに、Beanstalk 環境を構成して、solr クラスターを作成するか、CloudSearch などに移動する必要があります。ec2 のライフサイクルと solr の展開に慣れていない場合、CloudSearch はほぼ確実に時間を節約します (お金を読む)。

単一のインスタンスで solr を実行したい場合は、rake を使用.ebextensions/solr.configして、次の内容で名前が付けられたファイルをローカル リポジトリに追加することで起動できます。

container_commands:
  01create_post_dir:
    command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
    ignoreErrors: true
  02killjava:
    command: "killall java"
    test: "ps uax | grep java | grep root"
    ignoreErrors: true

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_start_solr.sh":
    mode: "755"
    owner: "root"
    group: "root"
    content: |
        #!/usr/bin/env bash
        . /opt/elasticbeanstalk/support/envvars
        cd $EB_CONFIG_APP_CURRENT
        su -c "RAILS_ENV=production bundle exec rake sunspot:solr:start" $EB_CONFIG_APP_USER
        su -c "RAILS_ENV=production bundle exec rake db:seed" $EB_CONFIG_APP_USER
        su -c "RAILS_ENV=production bundle exec rake sunspot:reindex" $EB_CONFIG_APP_USER

自動スケーリングを使用している場合、これにより混乱が生じることに注意してください。

于 2013-11-19T06:42:40.493 に答える