带有Nat Gateway的Fargate Task无法与RDS数据库连接

时间:2019-11-07 21:50:31

标签: amazon-web-services terraform amazon-rds aws-fargate

基本上,我遵循以下两个指南:

  1. Deploying Hasura on AWS with Fargate, RDS and Terraform
  2. Deploying Containers on Amazon’s ECS using Fargate and Terraform: Part 2

我有:

  • 在“多可用区”中部署的Postgres RDS数据库
  • 我的python / flask应用跨多个可用区部署在Fargate中
  • 我在应用之前在任务定义内运行迁移
  • ALB任务之间的负载平衡
  • 将RDS,ECS和ALB登录到Cloudwatch日志中。
  • 具有用于每个专用子网的弹性IP的NAT网关,以实现Internet连接
  • 专用子网的新路由表
  • 没有证书
  • 我将terraform 0.12用于部署。
  • 存储库位于ECR上

但是... 我的应用无法连接到RDS数据库:

sqlalchemy.exc.OperationalError
(psycopg2.OperationalError): FATAL:  password authentication failed for user "postgres"

这些是pastebin-logs上的日志

我已经尝试过将密码更改为一种非常简单的密码,然后再直接在控制台上部署,打开端口,将访问设置为公共,将私有更改为公共子网等,等等...

请,我有一个星期出现此错误!!!

更新

我以这种方式注入数据库凭据:

pastebin-terraform

1 个答案:

答案 0 :(得分:0)

我无法发表评论,但是我的意思是作为评论。

运行任务的ECS服务上的安全组出口是什么样的?您需要确保它通常可以在端口5432上与RDS通讯。