AWS CloudFormation 无法在指定的 AvailabilityZone 中创建 db.t2.micro 实例

AWS CloudFormation 无法在指定的 AvailabilityZone 中创建 db.t2.micro 实例

我在子网和 VPC 内有一个数据库和一个 DBSecurityGroup。但每当我尝试启动堆栈时,都会收到此错误:

Database    CREATE_FAILED   Resource handler returned message: "Cannot create a db.t2.micro database instance because no subnets exist in availability zones with sufficient capacity for VPC and storage type : gp2 for db.t2.micro. Please first create at least one new subnet; choose from these availability zones: sa-east-1a, sa-east-1c, sa-east-1b. (Service: Rds, Status Code: 400, Request ID: 6b6ed3c0-6a29-4a2b-8f3b-6e278fc0e70e)" (RequestToken: 119fb2ad-f081-24e1-651f-c316f30ac4d3, HandlerErrorCode: InvalidRequest)

我尝试了南美洲所有三个可用的可用区域,每个区域都返回了相同的错误。这是我的数据库、DBSecurityGroup 和他所属的子网:

Database:
    Type: 'AWS::RDS::DBInstance'
    Properties:
      AvailabilityZone: !GetAtt 
        - Subnet2
        - AvailabilityZone
      DBSecurityGroups:
        - !Ref DBSecurityGroup
      AllocatedStorage: !Ref DBStorage
      DBInstanceClass: db.t2.micro
      Engine: !Ref Engine
      MasterUsername: !Ref MasterUsername
      MasterUserPassword: !Ref MasterUserPassword
Subnet2:
    Type: 'AWS::EC2::Subnet'
    Properties:
      AvailabilityZone: sa-east-1b
      VpcId: !Ref VPC
      CidrBlock: 10.0.2.0/24
DBSecurityGroup:
    Type: 'AWS::RDS::DBSecurityGroup'
    Properties:
      GroupDescription: grupo de seguranca do banco
      DBSecurityGroupIngress:
        - CIDRIP: 10.0.1.0/24

我是否必须将数据库设置为可以实例化 db.t2.micro 的区域?

答案1

并非所有实例类型在每个区域都可用。尝试不同的实例类型。t3.micro 将是显而易见的选择。如果这不起作用,请尝试几种不同的实例类型,即使您不想保留该实例类型,它也将是帮助您进行诊断的有用信息。

我还发现,一个区域中的一个可用区可能没有可用实例,但其他两个可用区有。您可以尝试更改所选的可用区。

较新的区域没有较旧的实例。我猜较旧的实例可能也会在某个时候被删除。现在有这么多实例类型和大小,很难确定每个区域的需求。特殊类型和较旧的类型更有可能不可用。

相关内容