首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ECS Fargate wordpress容器超时到RDS MySql的连接

从ECS Fargate wordpress容器超时到RDS MySql的连接
EN

Stack Overflow用户
提问于 2019-09-17 09:07:25
回答 1查看 1.5K关注 0票数 0

我有一个正在运行的容器(如果更具体的话,可以使用wordpress容器),它试图连接到mysql rds实例。

fargate ecs服务容器的参数:

代码语言:javascript
复制
{ 
    "executionRoleArn": "ignore-this", 
    "containerDefinitions": [ 
        { 
            "name": "MyCoolContainer", 
            "image": "wordpress:latest", 
            "essential": true, 
            "environment": [ 
                {"name": "WORDPRESS_DB_HOST", "value": "host:3306"}, 
                {"name": "WORDPRESS_DB_USER", "value": "user"}, 
                {"name": "WORDPRESS_DB_PASSWORD", "value": "password"}, 
                {"name": "WORDPRESS_DB_NAME", "value": "name"} 
            ], 
            "portMappings": [ 
                { 
                   "hostPort": 80, 
                   "protocol": "tcp", 
                   "containerPort": 80 
                } 
            ], 
            "logConfiguration": { 
                "logDriver": "awslogs", 
                "options": { 
                    "awslogs-group": "/aws/ecs/fargate/prefix", 
                    "awslogs-region": "eu-west-1", 
                    "awslogs-stream-prefix": "prefix" 
                } 
            } 
        } 
    ], 
    "requiresCompatibilities": [ 
        "FARGATE" 
    ], 
    "networkMode": "awsvpc", 
    "cpu": "256", 
    "memory": "512", 
    "family": "wordpress" 
} 

另外,对于安全组,我为任何IP地址打开了22804433306端口。

但是,ECS中的容器仍然不能从以下原因开始:

17-2019 08:42:24 UTC PHP警告: mysqli::__construct():(HY000/2002):在第22行标准输入代码中超时的连接

MySQL连接错误:(2002)连接超时

MySQL连接错误:(2002)连接超时

但是,当尝试使用命令从本地计算机连接时,我可以确保RDS实例是可访问的:

代码语言:javascript
复制
mysql -uuser -ppassword -hhost -P3306

此外,我可以确保(wordpress)容器成功地在本地机器上运行,并成功地连接到没有超时的远程RDS数据库。

编辑--这是我的环境在ECS面板中的样子:(我尝试将这些值复制到本地命令中并成功连接。)

我怀疑aws服务配置有问题。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-22 20:59:56

多亏了Adiii和其他一些在互联网上找到的文章,我对这个问题有了一个完整的解决方案。

您只需将NAT网关附加到启动ECS Fargate实例的子网。

简单地在带有Internet网关的公共子网中启动并不能解决这个问题(尽管逻辑上认为应该这样做)。

TL;DR:

需要NAT网关。AWS是f*d。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57970938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档