如何为可私下访问的 EC2 数据库配置 VPC 和子网

如何为可私下访问的 EC2 数据库配置 VPC 和子网
  • 我有一个 EC2 Postgres 数据库(不是标准 AWS RDS,而是基于我自己配置​​的 AMI)
  • 我有一个负载均衡器,自动扩展组,每个可用区 (us-west-2) 最多有 4 个服务器
  • 我的负载均衡器连接了 4 个公共子网(每个子网位于 1 个可用区)
  • 我的 EC2 ASG 负责处理应用程序服务器,允许在 4 个私有子网(每个子网位于 1 个可用区)中的任何一个中创建实例
  • 我已完成所有必要的设置(NAT 和 IGW),以便可以从我的 EC2 实例访问互联网。

我已经测试过,在进行上述配置(DB 除外)后,我的应用程序服务器已启动,并且可以使用我的 Route 53 托管区域进行访问。

问题如下:

1 – 如何使我的 1 个 EC2 DB 实例(应该是私有 IP)可从位于 4 个私有子网中的 4 个应用程序服务器中的任何一个访问?

2 - 实现上述目标后,是否有办法让其他地区(例如 eu-central-1)也能使用同一实例?

3 - 如何在应用程序代码中处理数据库实例的重新启动?我每次都要用它的 IP 地址更新它吗?

PS 我使用 3 个 CFN 模板 (1 个用于网络、1 个用于 DB、1 个用于 ASG + ELB) 设置了所有内容,因此如果可能的话,请包含此类示例的链接或尝试在此处提供相关指南。

答案1

1 – 您可以通过将私有 EC2 实例的安全组提及为 DB 实例安全组中 postgres 端口的源,从而使您的 DB 实例可从私有子网中的实例访问。

2 – 是的,可以使同一个实例在另一个区域可用,但是会存在延迟,从而导致其访问非常慢。

3-是的,不幸的是您必须这样做,因为它没有附加静态公共 IP。

相关内容