Ошибка AWS CDK (машинопись) при создании экземпляра RDS: «Ошибка: В этом VPC нет «изолированных» групп подсетей».

#typescript #amazon-web-services #amazon-rds #aws-cdk

#машинописный текст #amazon-веб-сервисы #amazon-rds #aws-cdk

Вопрос:

В AWS CDK я создал частную подсеть (без добавления mapPublicIpOnLaunch ), и я получаю эту ошибку при создании своего экземпляра RDS.

Вот мой код шагов, которые я предпринимаю, чтобы все подготовить:

  • Я забираю свой VPC из своей учетной записи
  • Создайте новую частную подсеть
  • Наконец, используйте эту частную подсеть для моей частной базы данных RDS.
 // Import VPC to be used. let mainVPC = ec2.Vpc.fromVpcAttributes(this, "test", {  vpcId: props.vpcId,  availabilityZones: ["us-east-1a", "us-east-1b", "us-east-1c"], });  // Private subnet 1a const privateSubnet1A = new ec2.CfnSubnet(this, 'privateSub1A', {  availabilityZone: props.availabilityZones[0],  cidrBlock: props.cidr   '.2.0/24',  vpcId: props.vpcId,  tags: [{  key: 'Name',  value: props.availabilityZones[0]   '.'   "sandbox"   "."   "foo"   "."   'bar'  }] });  // Creates postgreSQL RDS instance: const foobarDBInstance = new rds.DatabaseInstance(this, "foo_bar", {  vpc: mainVPC,  vpcSubnets: {  availabilityZones: props.availabilityZones,  subnetType: ec2.SubnetType.PRIVATE_ISOLATED,  },  engine: rds.DatabaseInstanceEngine.postgres({  version: rds.PostgresEngineVersion.VER_13_4,  }),  instanceType: ec2.InstanceType.of(  ec2.InstanceClass.BURSTABLE3,  ec2.InstanceSize.SMALL,  ),  credentials: rds.Credentials.fromGeneratedSecret('foo'),  securityGroups: [dbSG],  multiAz: false,  allocatedStorage: 100,  maxAllocatedStorage: 1000,  allowMajorVersionUpgrade: false,  autoMinorVersionUpgrade: true,  backupRetention: cdk.Duration.days(0),  deleteAutomatedBackups: true,  removalPolicy: cdk.RemovalPolicy.DESTROY,  deletionProtection: false,  databaseName: "foo bar",  publiclyAccessible: false, });  

Ошибка, которую я получаю, содержится в названии моего вопроса: Error: There are no 'Isolated' subnet groups in this VPC.

Поэтому мой вопрос в том, почему это происходит? Есть ли правильный способ исправить эту ошибку? Я был бы признателен за любую обратную связь.

Комментарии:

1. Есть ли у вас группа подсетей, связанная с теми подсетями, в которых запускается база данных? Если это так, вы можете указать параметр «Подгруппа» в конструкторе rds.DatabaseInstance

2. Я не. Я считаю, что для меня было бы лучше сделать это. Прежде чем я создам подсети вручную, а затем они будут зарегистрированы subnetType: ec2.SubnetType.PRIVATE_ISOLATED .

3. Ошибка в названии упоминает Изолированные подсети, в то время как в тексте упоминаются общедоступные подсети. Что это такое?

4. @gshpychka извиняюсь, вы правы. Обновленный вопрос.

5. Итак, просто обновление: я попытался создать класс rds.SubnetGroup на стороне, и мне так трудно добавлять свои подсети, ссылаясь на частную подсеть. Пытаюсь понять, как я могу это сделать.