amazon-web-services - AWS Fargate 连接到不同 VPC 中的 RDS

标签 amazon-web-services amazon-rds

我有以下设置:

  • VPC-1 中的 ECS (Fargate) 集群
  • VPC-2 中的 RDS

我在 ECS 中运行的应用程序使用 DNS 名称连接到 RDS,但 DNS 不是私有(private) IP,而是解析公共(public) IP 地址。

在 RDS 中,我想配置严格的安全规则以防止来自外部世界的连接 - 我想将其限制为仅接受来自 VPC-1 的连接。

我尝试了以下操作:

  • 对等连接 VPC-1 和 VPC-2 - 没有帮助,在 ECS 中运行的应用程序仍然解析公共(public) IP
  • 将所有出站流量 (0.0.0.0/0) 从 ECS 集群路由到 NAT 网关(而不是互联网网关)并在 RDS 中配置安全组以接受来自为 NAT 网关配置的弹性 IP 的连接 - 在这种情况下我的应用程序不甚至不想开始,我怀疑这是由于出站流量通过 NAT 路由而导致配置过程失败
  • 所有 VPC 都将“DNS 解析”和“DNS 主机名”设置为"is"

我不知道如何正确配置它。一旦我允许我的 RDS 的所有入站流量 (0.0.0.0/0),一切都会开始正常工作,但我不希望那样。

我在这里错过了什么?也许我应该使用完全不同的方法来保护对我的 RDS 的访问?

最佳答案

我设法通过使用 NAT 网关的方法解决了这个问题 - 我不确定为什么它不能更早地工作,我改变了方法来首先创建 VPC,然后创建 ECS 集群并将它与之前创建的 VPC 相关联。

  1. 创建弹性 IP、NAT 网关、具有私有(private)和公共(public)子网的 VPC,如本文所述:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-public-private-vpc.html

  2. NAT网关关联私有(private)子网

  3. 在私有(private)子网中创建ECS集群

  4. 创建负载均衡器并将其关联到公共(public)网络

  5. 修改了 RDS 的安全组,以允许来自在先前创建的 NAT 网关上配置的弹性 IP 的流量。

通过此设置,从应用程序到 RDS 的任何流量都通过 NAT,因此我可以设置安全组规则以允许此流量。另一方面,公共(public)子网中的负载均衡器能够与位于私有(private)网络中的集群通信。

关于amazon-web-services - AWS Fargate 连接到不同 VPC 中的 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50249493/

相关文章:

mysql - 无法使用 "lower_case_table_names=1"创建新的 RDS MySQL 数据库实例

MySQL 在 `check table` 上失去连接

performance - AWS RDS 预置 IOPS 真的值得吗?

amazon-web-services - 不同端口的Route 53记录集

amazon-web-services - 如何自定义由将 AWS NLB 用于 TCP 服务的 Kubernetes LoadBalancer 类型服务创建的安全组入口规则

mysql - 使用 mysqldump 将大型 Innodb 数据库缓慢导入 Amazon RDS

amazon-web-services - 使用 PVC 加密 EBS 卷而不会在 Kubernetes 中丢失数据

amazon-web-services - 有没有办法重命名cloudformation堆栈名称?

mysql - 与mysql的uuid_short函数的值长度不同

mysql - 将 Amazon RDS 与 Heroku 连接起来?