我正在尝试将在Opsworks中运行的Rails应用程序连接到Elasticache Redis层.我无法让它发挥作用.
我目前的配置:
1个堆栈(2个实例)
层
- Rails App Server - MySQL
rails应用程序位于AWS-OpsWorks-Rails-App-Server
安全组中.
1 ElasticCache群集ES群集位于default security sg-ff58559a (VPC)(active)
安全组中.
我正在使用' Primary Endpoint '尝试连接.
可以从
ElastiCache>复制组
仪表板中看到此值.
它看起来类似于:
在我的rails控制台(在SSH进入rails层之后)我尝试:
>r = Redis.new(:url => 'redis://.oveuui.ng.0001.use1.cache.amazonaws.com:6379') >r.connected
结果是:
Redis::CannotConnectError: Timed out connecting to Redis on...
小智.. 6
如果您将群集启动到Amazon Virtual Private Cloud(Amazon VPC),则只能从在同一Amazon VPC中运行的Amazon EC2实例连接到ElastiCache群集.在这种情况下,您需要向群集授予网络入口.要将Amazon VPC安全组的网络入口授予群集:
1.登录AWS管理控制台并通过以下网址打开Amazon EC2控制台:https: //console.aws.amazon.com/ec2/ .
2.在左侧导航窗格的"网络和安全性"下,单击"安全组".
3.在安全组列表中,单击Amazon VPC的安全组.如果您是新的ElastiCache用户,则此安全组将被命名为default.
4.单击"入站"选项卡,然后执行以下操作:
一个.单击编辑.
湾 单击添加规则.
C.在"类型"列中,选择"自定义TCP规则".
d.在"端口范围"框中,键入缓存群集节点的端口号.此编号必须与启动群集时指定的编号相同.默认端口如下:
Memcached: port 11211 Redis: port 6379
即 在"源"框中,选择具有端口范围(0.0.0.0/0)的Anywhere,以便在Amazon VPC中启动的任何Amazon EC2实例都可以连接到ElastiCache节点.
F.单击保存.
http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/GettingStarted.AuthorizeAccess.html
如果您将群集启动到Amazon Virtual Private Cloud(Amazon VPC),则只能从在同一Amazon VPC中运行的Amazon EC2实例连接到ElastiCache群集.在这种情况下,您需要向群集授予网络入口.要将Amazon VPC安全组的网络入口授予群集:
1.登录AWS管理控制台并通过以下网址打开Amazon EC2控制台:https: //console.aws.amazon.com/ec2/ .
2.在左侧导航窗格的"网络和安全性"下,单击"安全组".
3.在安全组列表中,单击Amazon VPC的安全组.如果您是新的ElastiCache用户,则此安全组将被命名为default.
4.单击"入站"选项卡,然后执行以下操作:
一个.单击编辑.
湾 单击添加规则.
C.在"类型"列中,选择"自定义TCP规则".
d.在"端口范围"框中,键入缓存群集节点的端口号.此编号必须与启动群集时指定的编号相同.默认端口如下:
Memcached: port 11211 Redis: port 6379
即 在"源"框中,选择具有端口范围(0.0.0.0/0)的Anywhere,以便在Amazon VPC中启动的任何Amazon EC2实例都可以连接到ElastiCache节点.
F.单击保存.
http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/GettingStarted.AuthorizeAccess.html