我在子网和 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 将是显而易见的选择。如果这不起作用,请尝试几种不同的实例类型,即使您不想保留该实例类型,它也将是帮助您进行诊断的有用信息。
我还发现,一个区域中的一个可用区可能没有可用实例,但其他两个可用区有。您可以尝试更改所选的可用区。
较新的区域没有较旧的实例。我猜较旧的实例可能也会在某个时候被删除。现在有这么多实例类型和大小,很难确定每个区域的需求。特殊类型和较旧的类型更有可能不可用。