AWS ECS 容器无法连接到 Elasticache 集群

时间:2021-01-09 17:23:46

标签: amazon-web-services docker amazon-ec2 redis amazon-elasticache

快速、切中要害。

ECS 容器在 EC2 上运行。我可以从 EC2 实例连接到 Elasticache Redis 集群,但是在 docker 容器内时我得到了

Warning: inverse host lookup failed for <ip>

我认为这不一定是问题,因为据我所知,这只是反向 DNS 查找的错误,并且容器仍在为查找获得正确的 IP 响应,但我认为值得一提。< /p>

ECS 容器配置为 awsvpc 网络模式,因此容器在实例上获得自己的 ENI 并继承实例、安全组。

弹性缓存集群正在接受来自 ec2 实例上的安全组的所有流量,并且如上所述,ec2 实例可以连接到 Redis 集群,但在 docker 容器中时我不能。

为了测试这个,我从 ec2 运行了一个 netcat nc -v <redis cluster endpoint> 6379 并且它连接正确,但是在 docker/ecs 容器中它超时。 nc的结果如下

user@hostname $ nc -v <redis-endpoint> 6379 
Warning: inverse host lookup failed for <returned-ip>: Unknown host
<redis-endpoint> [<returned-ip>] 6379 (?) open

对可能导致此问题的原因有任何想法吗?

我认为这与 SG 无关,因为 ec2 实例可以正常连接,而且据我所知,ECS 容器(因为它在同一主机上使用 eni)使用与 ec2 相同的安全组容器,但我的想法不多了,所以任何输入都是有帮助的。

我还发现了这个 existing post,这可能是我需要考虑的事情,但此时我什至无法打开到 Redis 端口的 tcp 连接,所以我什至没有解决应用程序问题

0 个答案:

没有答案