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

从ECS Fargate wordpress容器连接到RDS MySql超时,mysql,wordpress,amazon-web-services,docker,amazon-ecs,Mysql,Wordpress,Amazon Web Services,Docker,Amazon Ecs,我有一个容器运行wordpress容器(如果更具体的话),它试图连接到mysql rds实例 fargate ecs服务容器的参数: { "executionRoleArn": "ignore-this", "containerDefinitions": [ { "name": "MyCoolContainer", "image": "wordpress:latest", "ess

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

fargate ecs服务容器的参数:

{ 
    "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地址打开了22、80、443、3306个端口

但ECS中的容器仍然无法启动,原因如下:

[2019年9月17日08:42:24 UTC]PHP警告:mysqli::\uu构造: HY000/2002:第22行标准输入代码中的连接超时

MySQL连接错误:2002连接超时

MySQL连接错误:2002连接超时

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

mysql -uuser -ppassword -hhost -P3306
此外,我还可以确保wordpress容器在本地计算机上成功运行,并成功连接到远程RDS数据库,而不会超时

编辑 这是我的环境在ECS UI面板中的样子: 我尝试将这些值复制粘贴到我的本地mysql命令中,它成功连接。


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

多亏了Adii和互联网上的其他文章,我找到了这个问题的完整解决方案

您只需将NAT网关连接到正在启动ECS Fargate实例的子网

出于某种奇怪的原因,仅仅在一个公共子网中启动一个Internet网关并不能解决这个问题,尽管从逻辑上看应该这样做

TL;博士:


需要NAT网关。AWS已启动。

从{name:WORDPRESS\u DB\u HOST,value:HOST:3306}中删除端口,该端口应能正常工作。您好,谢谢您的建议。然而,这并没有解决这个问题。连接仍然超时。我想知道环境变量设置不正确。可以控制台WORDPRESS_DB_HOST的值,以便您能够签入cloudwatch日志fargate。环境变量syantax似乎错误或可能设置不正确您可以从fargate ping吗?是否存在NAT或网关?请验证另一件事。。容器是否能够与外部世界通信?一种可能性;从:您在您的帐户中创建和使用NAT网关将收取费用。NAT网关小时使用率和数据处理率适用。亚马逊EC2的数据传输费用也适用。