Gle*_*eeb 18 amazon-web-services amazon-rds aws-cloudformation
我正在使用云形成来创建包含RDS实例的设置.
由于以下错误,我在创建RDS实例时遇到一些困难:
数据库子网组不符合可用区域覆盖要求.请添加子网以覆盖至少2个可用区域.目前的报道:1
问题是整个设置都在一个AZ上......我该怎么做?只是在不同的AZ中创建一个额外的子网,其中没有任何内容只适用于RDS?
也许AWS可以通过某种方式自动创建该子网,让我摆脱困境.我不想要那个额外的子网,我不想让我的用户为此选择另一个AZ负担.
wjo*_*dan 10
是的,即使对于完全包含在单个可用区[AZ]中的部署,您也必须在不同的AZ中创建一个额外的子网并将其包含在您的数据库子网组中.此要求的基本原理是支持高可用性多可用区部署,如"RDS用户指南" 中的"使用VPC中的数据库实例"部分所述:
对于多可用区部署,为区域中的两个或更多可用区定义子网允许Amazon RDS在需要时在另一个可用区中创建新备用数据库.您甚至需要为单可用区部署执行此操作,以防您希望在某些时候将它们转换为多可用区部署.
至于为此选择另一个AZ而不给用户带来负担,有很多方法可以实现这一点.例如,您可以使用Fn::GetAZs和Fn :: Select内部函数自动选择辅助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: ""}]
# ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6551 次 |
| 最近记录: |