从ECS Fargate wordpress容器连接到RDS MySql超时
我有一个容器运行wordpress容器(如果更具体的话),它试图连接到mysql rds实例 fargate ecs服务容器的参数:从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
{
"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的数据传输费用也适用。