gpt4 book ai didi

typescript - 如何让 CDK 只创建一个弹性 IP 地址以用于单个 EC2 实例 (AWS CDK)

转载 作者:行者123 更新时间:2023-12-01 23:58:26 37 4
gpt4 key购买 nike

我正在尝试使用 AWS CDK 创建一个 Stack,它将部署单个 EC2 实例,创建一个弹性 IP,然后将其与该实例相关联。 (最有值(value)球员)

出于我不明白的原因,为我的 EC2 实例所在的 VPC 的每个公共(public)子网创建了一个弹性 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,
});

关于typescript - 如何让 CDK 只创建一个弹性 IP 地址以用于单个 EC2 实例 (AWS CDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62265949/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com