从 ECS 集群中的 docker nodejs EC2 容器连接到 Redis Elasticache 集群

Posted

技术标签:

【中文标题】从 ECS 集群中的 docker nodejs EC2 容器连接到 Redis Elasticache 集群【英文标题】:Connect to Redis Elasticache cluster from an docker nodejs EC2 container in ECS cluster 【发布时间】:2019-07-01 01:17:17 【问题描述】:

我正在构建一个身份验证服务器,用于存储用户访问令牌并跟踪它们我想使用 redis。

我已经成功地创建和部署了一个小的 nodejs 应用程序,并将它包装到一个只返回令牌的 docker 容器中。然后我将它推送到 AWS 中的 ECR 存储库,并创建了一个运行的任务和完美运行的 EC2 实例。

到目前为止一切顺利。当我尝试连接到我创建的集群时,问题就来了。我正在使用this nodejs redis module,效果很好。

我已经更改了 VPC,因此所有集群和实例都在相同的网络配置下。也许这就是我搞砸的地方,因为我不是部署专家,更不是网络安全组方面的专家。

另外我已经成功地从同一个VPC下的另一个EC2实例(不是docker容器,只是一个ubuntu机器)用相同的代码sn-p访问了redis集群,所以代码不是问题。

所以根据我的测试,问题不在于 VPC,也不在于代码,所以有人知道我缺少什么吗?也许与 Dockerfile 连接有关?

我将在这里展示我认为需要的所有配置:

Dockerfile

FROM node:8-alpine
MAINTAINER Sergio Faya Fernandez <sergiofayafernandez@gmail.com>
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . .
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]

Redis Elasticache 集群

安全组

容器安全

【问题讨论】:

【参考方案1】:

没关系,刚刚发现在我的 EC2 容器中我只接受 http,我将它更改为接受所有,现在它可以正常工作了。

【讨论】:

以上是关于从 ECS 集群中的 docker nodejs EC2 容器连接到 Redis Elasticache 集群的主要内容,如果未能解决你的问题,请参考以下文章

显示docker容器登录aws ECS集群

从jenkins docker ecs容器中访问ecr图像

在 AWS ECS EC2 集群中运行 docker 镜像

在 Docker 后面运行的 Nginx 上出现随机 502/503 错误(在 ECS 集群 + ALB 上)

如何在 ECS 代理容器上设置 docker 标签?

ECS 中 docker 任务的 Prometheus 指标抓取