Python AWS::RDS-使用对流层的多可用区
我正在使用对流层创建一个CloudFormation模板,当我在堆栈中运行它时,它只创建一个可用区域。 我有2个专用子网,每个子网中有1个AZ。 创建VPC、子网、rounte internet gateway、EC2实例和RDS实例的文件,除了它为单个可用性区域创建的RDS中的所有内容之外,我还设置了Python AWS::RDS-使用对流层的多可用区,python,amazon-web-services,amazon-cloudformation,troposphere,Python,Amazon Web Services,Amazon Cloudformation,Troposphere,我正在使用对流层创建一个CloudFormation模板,当我在堆栈中运行它时,它只创建一个可用区域。 我有2个专用子网,每个子网中有1个AZ。 创建VPC、子网、rounte internet gateway、EC2实例和RDS实例的文件,除了它为单个可用性区域创建的RDS中的所有内容之外,我还设置了MultiAZ=true,但仍然失败 RDSdatabase = t.add_resource( rds.DBInstance( "RDSDatabase",
MultiAZ=true
,但仍然失败
RDSdatabase = t.add_resource(
rds.DBInstance(
"RDSDatabase",
DBName=Client+'RDSDatabase',
AllocatedStorage=Ref(dballocatedstorage),
DBInstanceClass=Ref(dbclass),
Engine="MySQL",
EngineVersion="5.5",
MasterUsername=Ref(dbuser),
MasterUserPassword=Ref(dbpassword),
DBSubnetGroupName=Ref(mydbsubnetgroup),
VPCSecurityGroups=[Ref(myvpcsecuritygroup)],
MultiAZ=True,
Tags=Tags(
Application=ref_stack_name, Client=Client, Name=Client+'_RDS-Master_1'),
))
这是我的子网组---
我认为这主要是对MultiAZ的误解。单个RDS实例实际上只能位于单个可用性区域(和子网)中。MultiAZ实际上并没有将该实例放在多个可用性区域中—它创建了一个备份实例,在单独的可用性区域中与主实例保持同步(我不相信它真的会告诉您是哪一个),以便在主实例以某种方式出现故障时为您提供更高的耐用性和正常运行时间
请参阅:Yeah DB实例在单个可用性区域中创建,但在设置
MultiAZ
时,它会在并行区域中创建另一个同步备份,但我的问题是-我如何检查并确保它在另一个可用性区域中创建,或者在它创建的区域中创建?有没有办法得到这些细节,我已经仔细看过了每一个细节,但我没有找到任何地方。我试图删除我的DBinstance,但它被删除了。谢谢你的回答@phobologic-------更多的是它应用了主从概念,但我不知道如何。嘿@rajain-我不相信有任何方法可以找到关于多AZ主机的信息。MultiAZ并不意味着主/从/副本或诸如此类的东西。您无法直接查询。也就是说,它绝对值得启用。它将更快地更改数据库(减少停机时间)。如果需要复制副本,则应单独设置复制副本。不过,这更多是为了分配您的阅读负载。我浏览了一遍,观看了一些视频,我看到,在启用Multi-AZ的同时,还有一个区域称为辅助可用性区域,创建了。假设我的例子是在美国西部1a,那么第二个AZ将是美国西部1b。我们可以在下面的实例详细信息的描述部分中看到
mydbsubnetgroup = t.add_resource(
rds.DBSubnetGroup(
"MyDBSubnetGroup",
DBSubnetGroupDescription="Subnets available for the RDS DB Instance",
SubnetIds=[Ref(db_subnet_AZ_1),Ref(db_subnet_AZ_2)],
Tags=Tags(Name=Join("-", [Ref("AWS::StackName"), "DBSubnetGroup"]),
),
))