从 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 集群的主要内容,如果未能解决你的问题,请参考以下文章