gpt4 book ai didi

amazon-rds - 如何使 RDS::DbInstance 可从 EC2::Instance 访问?

转载 作者:行者123 更新时间:2023-12-03 07:32:32 28 4
gpt4 key购买 nike

我目前正在使用 Cloud Formation 来部署堆栈,其中包括:

  • VPC
  • 创建的 VPC 内的子网
  • 创建的子网内的 EC2 实例
  • RDS Postgres 数据库

起初我无法连接到 DBInstance,因为它没有正确配置的 SecurityGroup。

当我尝试创建 SecurityGroup 时,部署失败,因为 DBInstance 和 SecurityGroup 是在不同的 VPC 上创建的。

但我在 Cloud Formation 上找不到任何 RDS 相关资源的属性来调整要在其中创建数据库的 VPC。四处搜索,我找到了创建 DBSubnetGroup 的替代方案。

但是为了使用 DBSubnetGroup,我需要至少有两个子网(因为它需要覆盖至少 2 个可用区)。我希望避免为了完成此任务而在另一个可用区上创建空子网。

有更好的选择吗?仅使用 Cloud Formation 让我的 EC2 实例访问我的 DBInstance 的最简单方法是什么?

最佳答案

如果您不想采用DBSubnetGroup方式,创建RDS实例的唯一可能是使用默认VPC。如果您不指定 DBSubnetGroup,您的 RDS 实例将在默认 VPC 中创建。

现在您的 EC2 实例有两种方式访问​​ RDS 实例。

  1. 让您的 RDS 实例可公开访问。确保您拥有严格的安全组配置以拒绝攻击的可能性。然后EC2实例应该能够访问数据库实例。

  2. 将可公开访问标记为false。将默认 VPC 与您使用 VPC 对等连接创建的 VPC 连接。我推荐这种方式,因为您的 RDS 实例将无法公开访问,但您可以完成工作。

除此之外,您还提到

But in order to use a DBSubnetGroup, I need to have at least two subnets (because it needs to cover at least 2 Availability Zones). I wish to avoid creating an empty subnet on another AZ just to make this work.

RDS 不是这样工作的。当您在 RDS 模板中指定 MultiAZ = true 并具有 DBSubnetGroup 时,您的 DBInstance 的副本将维护在不同可用区中可用的另一个子网中。当主节点出现故障时,该副本节点会启动并充当主节点。记住这一点,我强烈建议您在创建 RDS 实例时使用 DBSubnetGroup。

更多阅读内容here

希望这有帮助。

关于amazon-rds - 如何使 RDS::DbInstance 可从 EC2::Instance 访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44980234/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com