gpt4 book ai didi

amazon-web-services - 如何在使用 Terraform 创建网络负载均衡器时附加弹性 IP?

转载 作者:行者123 更新时间:2023-12-01 11:16:50 24 4
gpt4 key购买 nike

我正在尝试使用 Terraform 将我的弹性 IP 地址与新创建的网络平衡器相关联。我在 aws_lb documentation 中看不到任何选项像在 AWS 控制台中那样添加弹性 IP。困难在于您必须在创建 NLB 时关联弹性 IP。

编辑:他们现在在他们的文档中做了一个明确的例子!

最佳答案

aws_lb resource有一个 subnet_mapping block ,它允许您为网络负载均衡器所在的每个子网指定一个弹性 IP。

一个绝对最小的示例如下所示:

resource "aws_eip" "lb" {
vpc = true
}

resource "aws_lb" "network" {
name = "test-lb-tf"
load_balancer_type = "network"

subnet_mapping {
subnet_id = "${var.subnet_id}"
allocation_id = "${aws_eip.lb.id}"
}
}

显然,您可能希望在多个子网中运行负载均衡器,因此您可能会使用以下内容:
variable "vpc" {}

data "aws_vpc" "selected" {
tags {
Name = "${var.vpc}"
}
}

data "aws_subnet_ids" "public" {
vpc_id = "${data.aws_vpc.selected.id}"

tags {
Tier = "public"
}
}

resource "aws_eip" "lb" {
count = "${length(data.aws_subnet_ids.public)}"
vpc = true
}

resource "aws_lb" "network" {
name = "test-lb-tf"
internal = false
load_balancer_type = "network"

subnet_mapping {
subnet_id = "${data.aws_subnet_ids.public.ids[0]}"
allocation_id = "${aws_eip.lb.id[0]}"
}

subnet_mapping {
subnet_id = "${data.aws_subnet_ids.public.ids[1]}"
allocation_id = "${aws_eip.lb.id[1]}"
}

subnet_mapping {
subnet_id = "${data.aws_subnet_ids.public.ids[2]}"
allocation_id = "${aws_eip.lb.id[2]}"
}
}

以上假设您已使用 Name 标记您的 VPC使用 Tier 标记和您的子网在这种情况下使用 public 的标记作为任何面向外部的子网的值。然后,它为每个公共(public)子网创建一个弹性 IP 地址,并在每个公共(public)子网中创建一个网络负载均衡器,为每个公共(public)子网附加一个弹性 IP。

关于amazon-web-services - 如何在使用 Terraform 创建网络负载均衡器时附加弹性 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49761610/

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