gpt4 book ai didi

amazon-web-services - 如何在AWS中保留弹性IP

转载 作者:行者123 更新时间:2023-12-03 07:14:58 33 4
gpt4 key购买 nike

在我的 aws cdk 代码中,我为堡垒主机使用弹性 IP,如下所示。

const eip = new ec2.CfnEIP(this, "Bast-host1")
const bast_host = new ec2.BastionHostLinux(this, "myproj-Bhost", {
vpc,
subnetSelection: {subnetType: ec2.SubnetType.PUBLIC},
machineImage: ec2.MachineImage.latestAmazonLinux({
userData: ec2.UserData.custom('Content-Type: multipart/mixed;)
}),
})
new ec2.CfnEIPAssociation(this, "HostAllocation", {
eip: elasticIP.ref,
instanceId: bast_host.instance.instanceId
});

但每次部署 cloudformation 堆栈时,都会重新创建弹性 IP。有什么方法可以在每次cloudformation堆栈运行时保留弹性IP吗?

最佳答案

如果弹性IP地址是使用CDK创建的,一旦执行destroy命令,您将失去它与其他资源。

我不建议将其与 IAC 堆栈一起创建,因为它会使其他合作伙伴和兄弟网络的 IP 地址白名单变得一团糟。

我个人如何确保弹性 IP 地址在使用任何 IAC 工具(CDK、Terraform、CloudFormation)时保持事件状态,方法是使用 ClickOps 手动创建弹性 IP 地址,然后记下其分配 ID .

然后,我将此分配 ID 作为变量传递给我的 IAC 模板作为参数。这使我能够在销毁 IAC 堆栈时不会丢失 IP 地址。

要将其与您计划使用 CDK 创建的 EC2 实例关联,只需使用以下语法并将分配 ID 作为环境变量或 CDK 模板中的参数传递即可。

let ec2Assoc = new ec2.CfnEIPAssociation(this, "Ec2Association", {
eip: process.env.ENV_EIP_ALLOCATION_ID, // "AllocationID HERE"
instanceId: bast_host.instanceId
});

关于amazon-web-services - 如何在AWS中保留弹性IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76562898/

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