Amazon web services 具有云形成和AZ问题的RDS

Amazon web services 具有云形成和AZ问题的RDS,amazon-web-services,amazon-rds,amazon-cloudformation,Amazon Web Services,Amazon Rds,Amazon Cloudformation,我正在使用云形成创建包含RDS实例的设置 由于以下错误,我在创建RDS实例时遇到一些困难: DB子网组不满足可用性区域覆盖率要求。 请添加子网以覆盖至少2个可用区域。现在的 覆盖范围:1 问题是整个设置都在一个AZ上。。。我该怎么办?只需在另一个AZ中创建一个额外的子网,该子网中没有任何内容,仅用于RDS 也许有一种方法AWS可以自动创建子网,让我摆脱困境。我不想要那个额外的子网,也不想让我的用户为此而选择另一个AZ。是的,即使是完全包含在单个可用性区域[AZ]中的部署,您也必须在不同的AZ中创

我正在使用云形成创建包含RDS实例的设置

由于以下错误,我在创建RDS实例时遇到一些困难:

DB子网组不满足可用性区域覆盖率要求。 请添加子网以覆盖至少2个可用区域。现在的 覆盖范围:1

问题是整个设置都在一个AZ上。。。我该怎么办?只需在另一个AZ中创建一个额外的子网,该子网中没有任何内容,仅用于RDS


也许有一种方法AWS可以自动创建子网,让我摆脱困境。我不想要那个额外的子网,也不想让我的用户为此而选择另一个AZ。是的,即使是完全包含在单个可用性区域[AZ]中的部署,您也必须在不同的AZ中创建一个额外的子网,并将其包括在您的DB subnet组中。此要求的基本原理是支持高可用性多AZ部署,如《RDS用户指南》的以下章节所述:

对于多AZ部署,为一个区域中的两个或多个可用性区域定义子网允许Amazon RDS在需要时在另一个可用性区域中创建新的备用。即使对于单AZ部署,您也需要这样做,以防您希望在某个时候将它们转换为多AZ部署

为了不让用户为此而选择另一款AZ,有很多方法可以做到这一点。例如,可以使用和内部函数自动选择辅助AZ。如果您允许用户选择主AZ,您还需要确保辅助AZ不等于所选的主AZ

下面是一个示例模板片段:

Parameters:
  PrimaryAZ:
    Type: AWS::EC2::AvailabilityZone::Name
    Description: Primary AZ
Conditions:
  IsFirstPrimaryAZ:
    Fn::Equals:
    - !Ref PrimaryAZ
    - Fn::Select [0, {Fn::GetAZs: ""}]
Resources:
  Subnet1:
    Type: "AWS::EC2::Subnet"
    Properties:
      AvailabilityZone: !Ref PrimaryAZ
      # ...
  Subnet2:
    Type: "AWS::EC2::Subnet"
    Properties:
      AvailabilityZone:
        Fn::If:
        - IsFirstPrimaryAZ
        - Fn::Select [1, {Fn::GetAZs: ""}]
        - Fn::Select [0, {Fn::GetAZs: ""}]
      # ...

对。只需删除其中一个子网,然后使用不同的可用性区域再次创建相同的子网。

创建一个新主题,该主题与其他主题具有不同的可用性区域。

只需添加有关此问题的更多详细信息。 我在RDS>子网组中解决了评估子网组的问题。 (子网组是仅存在于RDS上下文中的概念,不存在于VPC上下文中)

在我的例子中,第一次尝试创建RDS Mysql时,选择了我的个性化VPC(不是默认VPC),自动创建了一个子网组,但我认为RDS脚本创建了一个子网组,从我的VPC中选择了前3个子网:

  • 子网1区域1a
  • 子网2区域1a
  • 子网3区域1b
我创建了3个用于RDS的专用子网:

  • 子网4区域1a
  • 子网5区域1b
  • 子网6区域1c

    不可能修改子网组,然后我创建了一个子网,然后选择3个具有相同acl和路由配置的子网,每个子网位于不同的区域(1a、1b、1c)。然后我删除了另一个配置错误的子网组。 返回到RDS仪表板单击创建RDS,选择所需的所有数据库详细信息,选择所需的VP,您将看到所选子网组名称。问题解决了


答案是肯定的,没有其他选择这也适用于DMS(数据库迁移服务)。正如您所说,创建另一个子网可以解决问题。您的
Fn::If
是否应该启用
IsFirstPrimaryAZ
而不是
FirstAZ
?是的,看起来像是输入错误,谢谢您的更正!
PrimaryAZ
不应该低于
参数
,而不应该低于
属性
?是的,另一个输入错误,谢谢更正!(我从来没有实际执行过这个模板代码,只是粗略地写出了代码片段。)我有一个不同但相关的问题。由于两个AZ,但DB是单个AZ的目标,这会导致任何访问问题吗?我提供了两个公共子网和两个私有子网,但我注意到现在访问db的速度非常慢。在使用其他DB之前,我提供了一个公共子网和两个私有子网,并且工作正常。但由于新的db(mssql)有一个公共子网,我无法从公共ip访问,所以我需要提供另一个公共子网,它可以工作。但现在访问速度非常慢。