gpt4 book ai didi

amazon-web-services - 具有 Cloud Formation 和 AZ 问题的 RDS

转载 作者:行者123 更新时间:2023-12-03 13:36:09 24 4
gpt4 key购买 nike

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

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

DB Subnet Group doesn't meet availability zone coverage requirement. Please add subnets to cover at least 2 availability zones. Current coverage: 1

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

也许 AWS 可以通过某种方式自动创建该子网,让我摆脱困境。我不需要额外的子网,也不想为此选择另一个可用区而给我的用户带来负担。

最佳答案

是的,即使对于完全包含在单个可用区 [AZ] 内的部署,您也必须在不同的可用区中创建额外的子网并将其包含在您的数据库子网组中。此要求的基本原理是支持高可用性多可用区部署,如 Working with a DB Instance in a VPC 中所述。 RDS 用户指南部分:

For Multi-AZ deployments, defining a subnet for two or more Availability Zones in a region allows Amazon RDS to create a new standby in another Availability Zone should the need arise. You need to do this even for Single-AZ deployments, just in case you want to convert them to Multi-AZ deployments at some point.

为了不让用户为此选择另一个可用区而增加负担,有多种方法可以实现这一点。例如,您可以使用Fn::GetAZs自动选择辅助可用区。和 Fn::Select内在函数。如果您允许用户选择主可用区,您还需要 Condition以确保次要可用区不等于所选的主要可用区。

这是一个示例模板片段:

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: ""}]
# ...

关于amazon-web-services - 具有 Cloud Formation 和 AZ 问题的 RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33722394/

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