【问题标题】:With CDK is it possible to modify the default subnets after they have been created?使用 CDK 是否可以在创建默认子网后修改它们?
【发布时间】:2021-09-29 14:25:42
【问题描述】:

我已经创建了一个这样的 VPC

    vpc = new Vpc(theStack, vpcName,
        VpcProps.builder()
            .cidr("10.0.0.0/16")
            .build());

在 eu-west-1 中,默认情况下我得到 3 个公共子网和 3 个私有子网。私有子网将有一个 NAT 网关。

现在,我们正在尝试移除 NAT 网关(因为成本),所以我尝试了这个

    vpc = new Vpc(theStack, vpcName,
        VpcProps.builder()
            .maxAzs(3)
            .cidr("10.0.0.0/16")
            .subnetConfiguration(List.of(
                SubnetConfiguration.builder()
                    .subnetType(SubnetType.PUBLIC)
                    .name("Public")
                    .cidrMask(24)
                    .build(),
                SubnetConfiguration.builder()
                    .subnetType(SubnetType.ISOLATED)
                    .name("Private")
                    .cidrMask(24)
                    .build()))
            .build());

在新堆栈中创建它可以正常工作。我得到了一个与以前具有相同子网且没有 NAT GW:s 的 VPC。但是,运行它来修改上面创建的 VPC,会导致名称冲突。

有什么方法可以让 cdk/cloudformation 了解我想要修改现有私有子网而不是创建新子网?

【问题讨论】:

    标签: amazon-vpc aws-cdk


    【解决方案1】:

    我仔细检查了在没有指定子网的情况下创建的子网。 cdir-mask 是 /19 而不是 /24,就像我在第二个版本中输入的那样。

    因此,将 cidrMask 更改为 19 可以正常工作。现在 CloudFormation 不会创建新子网并删除 NAT 网关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-29
      • 2021-10-04
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      相关资源
      最近更新 更多