我有2个EC2实例 - 一个安装了Rails应用程序(并连接到RDS MySQL数据库)。这很好用。 然后我创建了另一个EC2实例,其中安装了Redis。我在这里定义了用户,端口,密码和命名空间。
但是,我在成功连接时遇到问题。
以下是我在Rails应用程序中的两个位置,我尝试连接到此Redis实例:
deploy/production.rb
:
config.cache_store = :redis_store, { host: "deployer_redis:IP",
port: 6379,
db: env_num,
password: "...my password...",
namespace: "cache" }
和
config/initializers/sidekiq.rb
:
Sidekiq.configure_server do |config|
config.redis = { url: "redis://deployer_redis:password_here@IP:6379/#{env_num}",
namespace: "sidekiq_shiptis_com_#{Rails.env}" }
end
Sidekiq.configure_client do |config|
config.redis = { url: "redis://deployer_redis:password_here@IP:6379/#{env_num}",
namespace: "sidekiq_shiptis_com_#{Rails.env}" }
end
但是当我尝试部署代码时,capistrano失败了,因为应用程序无法连接到远程Redis主机。
当我查看此Redis EC2实例(t2.micro)的安全组时,它的名称是 launch-wizard-5 ,并且有这些入站规则:
SSH TCP 22 0.0.0.0/0
Custom TCP Rule TCP 6379 0.0.0.0/0
我错过了什么配置? 如何使EC2 Rails实例与EC2 Redis实例进行通信?
谢谢。