Laravel:连接AWS ElasticCache Redis超时

时间:2020-07-12 17:13:33

标签: laravel amazon-web-services redis amazon-elasticache

我正在开发Laravel应用程序。我使用Redis,为此使用AWS ElasticCache服务。我正在尝试从Laravel应用程序连接到Redis。但这是超时。这就是我所做的。

我通过运行以下命令安装了Predis库。

composer require predis/predis

然后,我在ElastiCache服务控制台中创建了Redis实例,允许AUTH设置我的密码令牌。

然后我在.env文件中设置变量。

CACHE_DRIVER=redis
REDIS_CLIENT=predis
REDIS_HOST=master.laravelredistest.8sm3xo.euw1.cache.amazonaws.com
REDIS_PASSWORD=mypassword
REDIS_PORT=6379

运行代码以连接到Redis时,出现以下错误。

Operation timed out [tcp://master.laravelredistest.8sm3xo.euw1.cache.amazonaws.com:6379]

我的配置缺少什么,我该如何解决?

我还更新了Redis的安全组,以允许入站规则中的EC2实例的安全组如下:

enter image description here

这次我收到此错误:

enter image description here

我编辑了Re​​dis的SG,也添加了以下入站规则。

enter image description here

安全组也位于同一VPC中,如屏幕截图所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

这听起来像是导致超时的安全组问题。

Elasticache群集始终是私有的,因此,如果您使用的是公共IP地址,则需要将其更新为实例/子网/ VPC的私有IP地址范围。

Elasticache群集是VPC中的一种资源,因此需要允许网络传输才能访问该群集。

更多信息,请访问Accessing Your Cluster页面。

其他配置

这是问题。我还需要删除现有的Redis实例,并创建另一个未启用AUTH令牌的实例。