无法使用Aws ECS fargate容器连接到Aurora MySql

时间:2020-03-19 13:56:58

标签: docker asp.net-core amazon-rds amazon-rds-aurora aws-fargate

我有一个.net core 3.1应用程序,该应用程序作为带有Fargate的AWS Ecs上的Docker容器部署。我创建了2个新的Aurora MySql数据库,并尝试使用writer端点连接到数据库集群之一。现在的问题是,当我尝试通过调用负载平衡器DNS通过邮递员调用POST方法时,出现以下异常:

“引发了一个异常,可能是由于瞬态 失败。考虑通过添加以下方式启用瞬态错误恢复能力 “ EnableRetryOnFailure()”传递给“ UseMySql”调用。”

我也尝试添加异常中提到的重试模式,但是没有运气。 我为我的RDS创建的安全组中的任何位置都允许在端口3306上使用Aurora / MySql。我还在端口3306上为源“我的群集服务安全组以及负载均衡器安全组”添加了Aurora / MySql,但即使这样也没有运气。最后,我添加了所有端口上所有端口上的所有流量,但即使这样,错误仍然相同。所以我怀疑这是不同的。 然后,我尝试通过Windows上的docker桌面运行应用程序,但在那里仍然出现相同的错误。

使用服务器上与数据库''的连接时发生错误 “ db-cluster.cluster-cqb2jskhx78p.us-east-2.rds.amazonaws.com”。

我的连接字符串是:

"DefaultConnection": "Data Source=db-cluster.cluster-cqb2jskhx78p.us-east-2.rds.amazonaws.com;Initial Catalog=demodb;User ID=admin;Password=MyPassword;port=3306"

有帮助吗?

1 个答案:

答案 0 :(得分:0)

很难对开箱的Fargate容器进行故障排除。您应该检查的第一件事:

  • RDS和容器在同一个VPC中吗?
  • RDS安全组是否向容器的安全组打开了正确的端口?

一些疑难解答选项:

  • 最快的选择,将EC2实例部署在与您的容器相同的子网中,并对与此连接进行故障排除
  • 仅在开发环境中,通过入口点脚本在您的容器上安装SSH。
    • 或者,有一个单独的任务,该任务将启动仅运行SSH的容器以进行网络故障排除
  • 为Dev使用容器宿主,以便您可以使用docker exec
相关问题