如何从一个EC2实例连接到另一个EC2(Redis)实例?

时间:2016-03-30 17:21:54

标签: ruby-on-rails ruby amazon-web-services amazon-ec2 redis

我有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实例进行通信?

谢谢。

0 个答案:

没有答案