EC2 で redis サーバーを実行しており、本番アプリ マシンから redis インスタンスへの確立された ssh トンネルの接続を保護します。autossh -M 0 -f -NT -L6379:localhost:6379 -i /path/to/ec2.key root@ec2-xxxx.compute-1-amazonaws.com
永続的なトンネルを確立するようなものを使用しました。
ここに問題があります。これは約 90% の確率で機能するようですがRedis::CannotConnectError: Error connecting to Redis on localhost:6379 (ECONNREFUSED)
、environment.rb から Resque を初期化するときに何らかの理由で redis がスローされることがあります。指定されたボックスには、他のプロセス (unicorn および resque スレッド) からの多数の redis 接続が既にあるため、トンネルが機能していることがわかります。コマンドを再実行すると、ほとんどの場合成功し、問題なく接続を確立できます。
m2-xlarge 上の CentOS 6 で、Rails 4、Resque 1.24.1、Redis gem 3.0.5、および redis-server 2.6.12 を実行しています。
何か案は?展開中にこれが発生すると、カピストラーノが殺されるので非常にイライラします。また、独自のレール環境をスピンアップする夜間のジョブで散発的な障害が発生します。