Tomcat で Grails アプリを実行し、Apache で UI Web ページを提供する Elastic Beanstalk インスタンスをセットアップしています。Web コンテンツは EBS ボリューム上にあり、起動時に init.d スクリプト ( mountec2vol ) でアタッチおよびマウントされます。Apache の DocumentRoot は、このボリューム /mnt/data/www にあります。私の AMI イメージは、デフォルトの Beanstalk 64bit-Tomcat7-linux イメージに基づいています。
EBS ボリュームのアタッチに時間がかかるため (5 ~ 20 秒)、ホストマネージャーが Apache を起動できないようです。これは、/opt/elasticbeanstalk/var/log/bluepill.log に記録される内容です。
W, [2012-09-19T18:06:15.366835 #1283] WARN -- : [hostmanager:httpd] {:stdout=>"Starting httpd: [FAILED]\r\n", :stderr=>"Syntax error on /etc/httpd/conf/httpd.conf の 293 行目:\nDocumentRoot はディレクトリでなければなりません\n", :exit_code=>1}
このため、Web サーバーをオンラインにできず、ヘルスチェックが失敗し、インスタンスが終了して再作成されます...
EBS ボリュームがアップするまで Apache の開始を遅らせるようにホストマネージャーを設定できますか? これは、Elastic Beanstalk インスタンスを使用して EBS をアタッチ + マウントする正しい方法ですか?
それとも、ここで不必要に難しいことをしていますか...もっと簡単な方法はありますか?