0

当我在堆栈中运行它时,我正在使用对流层创建一个 CloudFormation 模板,它只创建一个可用区。我在每个子网中有 2 个私有子网和 1 个可用区。文件 create VPC, subnets, rounte internet gateway, EC2 instances and RDS instance,除了它在 RDS 中为单个可用区创建的所有内容,我也进行了设置,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'),
    ))

这是我的子网组---

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"]),
      ),
    ))
4

1 回答 1

1

我认为这主要是对 MultiAZ 所做的事情的误解。单个 RDS 实例实际上只能位于单个可用区(和子网)中。MultiAZ 实际上并没有将该实例放入多个可用区 - 它创建一个备份实例,该实例与单独可用区中的主实例保持同步(它并没有真正告诉你哪个,我不相信)给在主节点以某种方式发生故障的情况下,您可以获得更大的耐用性和正常运行时间。

请参阅:https ://aws.amazon.com/rds/details/multi-az/

于 2019-01-30T19:14:21.663 回答