typescript - 如何让 CDK 仅创建一个弹性 IP 地址以用于单个 EC2 实例 (AWS CDK)
问题描述
我正在尝试使用 AWS CDK 创建一个堆栈,该堆栈将部署单个 EC2 实例,创建一个弹性 IP,然后将其与该实例相关联。(MVP)
由于我不明白的原因,为我的 EC2 实例所在的 VPC 的每个公共子网创建了一个弹性 IP。我希望只创建一个,而不是三个。
下面是我的简化代码:
const vpc = new Vpc(this, 'VPC');
const securityGroup = new SecurityGroup(this, 'SecurityGroup', {
vpc,
});
const ec2Instance = new Instance(this, 'EC2Instance', {
vpc,
instanceType: new InstanceType('t2.small'),
machineImage: ubuntuImage, // searched for elsewhere
keyName: 'keynamehere',
vpcSubnets: { subnets: [vpc.publicSubnets[0]] },
});
const eip = new CfnEIP(this, 'Server IP', {
instanceId: ec2Instance.instanceId,
});
我尝试在 CfnEIP 中使用“instanceID”属性的 CfnEIPAssociation 实例,但仍然遇到同样的问题。
有什么建议么?
解决方案
(抱歉,这是解决它几个月后)
我相信问题是 vpcSubnets 字段,下面是我今天的工作代码
const ec2Instance = new Instance(this, "Instance", {
vpc: supportStack.vpc,
instanceType: new InstanceType("t2.nano"),
machineImage: ubuntuImage,
securityGroup: supportStack.securityGroup,
vpcSubnets: { subnetType: SubnetType.PUBLIC }, //
userData,
});
supportStack.bucket.grantRead(ec2Instance);
new CfnEIPAssociation(this, "ElasticIpAssociation", {
eip: eip.ref,
instanceId: ec2Instance.instanceId,
});
推荐阅读
- android - Android Studio 重构和基本搜索/替换有什么区别?
- python - 使用单个列表值作为键将多个列表组合到字典中
- firebase - Firebase 身份验证在使用 ionic 3 的 ios 中不起作用?
- javascript - 向语义 ui 日历添加秒数
- excel - vba SpecialCells(xlCellTypeVisible)在过滤器中循环遍历数据透视项目时无法正常工作
- django - login_required 下一个不重定向
- r - R:如何命名来自 tidycensus 的 get_acs 中的列?
- r - tidyr spread 改变数值
- php - Wordpress 中的短代码和 Ajax 问题
- sql - 从给定日期生成 X 天