編集: この回答は 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
自動スケーリングを使用している場合、これにより混乱が生じることに注意してください。