ruby-on-rails - 操作系统 : Rails Layer connect to Elasticache : Redis

标签 ruby-on-rails amazon-web-services redis aws-opsworks

我正在尝试将我在 Opsworks 中运行的 Rails 应用程序连接到 Elasticache Redis 层。 我只是无法让它工作。

我当前的配置:

1 个堆栈(2 个实例)
图层
- rails 应用服务器 - MySQL

Rails 应用程序在 AWS-OpsWorks-Rails-App-Server 中安全组。

1 个 ElasticCache 集群 ES集群在default security sg-ff58559a (VPC)(active)安全组。

我正在使用“主端点”尝试连接。

这个值是可见的
ElastiCache>复制组
仪表板。

它看起来类似于:
<name>.oveuui.ng.0001.use1.cache.amazonaws.com:6379

在我的 rails 控制台中(在 SSH 进入 rails 层之后)我尝试:

>r = Redis.new(:url => 'redis://<name>.oveuui.ng.0001.use1.cache.amazonaws.com:6379')
>r.connected

结果是:

Redis::CannotConnectError: Timed out connecting to Redis on...

最佳答案

如果您将集群启动到 Amazon Virtual Private Cloud (Amazon VPC),则只能从在同一 Amazon VPC 中运行的 Amazon EC2 实例连接到 ElastiCache 集群。在这种情况下,您需要将网络入口授予集群。 授予从 Amazon VPC 安全组到集群的网络入口:

1.登录 AWS 管理控制台并打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/ .

2.在左侧导航 Pane 中的“网络与安全”下,单击“安全组”。

3.在安全组列表中,单击您的 Amazon VPC 的安全组。如果您是新的 ElastiCache 用户,此安全组将被命名为 default。

4.点击 Inbound 选项卡,然后执行以下操作:

一个。单击编辑。

单击添加规则。

在类型列中,选择自定义 TCP 规则。

在“端口范围”框中,键入缓存集群节点的端口号。此编号必须与您在启动集群时指定的编号相同。默认端口如下:

 Memcached: port 11211

 Redis: port 6379

在源框中,选择具有端口范围 (0.0.0.0/0) 的任意位置,以便您在 Amazon VPC 中启动的任何 Amazon EC2 实例都可以连接到您的 ElastiCache 节点。

单击保存。

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/GettingStarted.AuthorizeAccess.html

关于ruby-on-rails - 操作系统 : Rails Layer connect to Elasticache : Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723176/

相关文章:

java - 如何在 jruby9.1.2.0 中使用 PGP 加密来加密文件?

ruby-on-rails - 在 macOS Catalina 上安装 Ruby 2.0.0 的问题

java - 通过 Java SDK 与 Lambda 函数进行 AWS api 网关集成,必须为 AWS 集成异常指定角色 ARN

linux - 将 bash 数据保存到 Redis

java - 从 Redis 数据库转换为 java 中的日期

ruby-on-rails - 如何在 Shopify 公共(public)应用程序中添加 JavaScript

node.js - 为什么 npm install 会因 node-sass 相关错误而失败?

部署到 heroku 时 JavaScript 堆内存不足 - 针对 AWS S3 删除对象的 Nestjs 应用程序 API 请求

javascript - Amazon S3 奇怪的 CORS 行为 : No 'Access-Control-Allow-Origin' header is present on the requested resource

ruby-on-rails - 使用 redis 作为 rails 应用程序的数据库来处理大量 api 请求