我正在尝试引用几个子网来创建ec2实例,但是我有些困惑。 假设我有这个:
const vpc = new Vpc(this, 'gwc-vpc', {
cidr: "10.20.0.0/16",
maxAzs: 3,
subnetConfiguration: [
{
subnetType: SubnetType.PRIVATE,
name: 'gossipSubnet',
cidrMask: 24
},
{
subnetType: SubnetType.PRIVATE,
name: 'dbSubnet',
cidrMask: 24
},
{
subnetType: SubnetType.PUBLIC,
name: 'extSubnet',
cidrMask: 24
}
]
})
例如,如何在dbSubnet中创建实例?更好的是,如果我想创建一个具有2个接口的EC2实例,每个实例都位于一个不同的子网(dbSubnet和gossipSubnet)中,该怎么办?有什么想法吗?
谢谢!
答案 0 :(得分:1)
我建议您使用一个可以定义网络基础结构(vpc,子网,网关,安全组等)的应用程序。然后,您可以添加与其连接的任意数量的单独应用。
因此,您可以使用一个具有上述内容的应用程序来构建VPC和子网,然后从那里导出vpc的ID以及所创建的所有子网的名称,并带有易读的名称
现在,您创建的在VPC中生成内容的其他任何应用程序都可以选择使用简单的Fn.importValue
来获取所需的任何子网或vpc ID。或者他们可以使用Vpc.fromLookup
在cdk应用程序中获取可用的Vpc对象。拥有Vpc对象后,即可使用vpc.selectSubnets
获取要在应用程序中使用的子网。如果您要查看特定语言的示例,请告诉我。
答案 1 :(得分:0)
不确定此处是否相关,但是您是否也不能使用内置功能选择/定位您感兴趣的子网?
const vpc = new Vpc(this, 'ProductionVPC', {
cidr: '10.10.0.0/16',
enableDnsHostnames: true,
enableDnsSupport: true,
defaultInstanceTenancy: DefaultInstanceTenancy.DEFAULT,
maxAzs: 2,
natGateways: 1,
subnetConfiguration: [
{
cidrMask: 24,
name: 'Public',
subnetType: SubnetType.PUBLIC
},
{
cidrMask: 24,
name: 'Private - Application',
subnetType: SubnetType.PRIVATE,
},
{
cidrMask: 24,
name: 'Private - Database',
subnetType: SubnetType.ISOLATED,
},
]
});
Tag.add(vpc, 'Name', 'Production VPC');
const subnets = vpc.selectSubnets({subnetType: SubnetType.Public)).subnets;