簡體   English   中英

Terraform NAT 網關設置路由表

[英]Terraform NAT Gateway To Setup Route Table

我正在嘗試在我的路由表中設置我的私有多個 NAT 網關,但我對我缺少的東西感到困惑。 有人可以幫助我編寫有關我缺少的代碼的代碼嗎?

這是我的路線表:

resource "aws_route_table" "private" {
  count                     = length(var.private_subnet_cidr_blocks)
  vpc_id                    = aws_vpc.main_vpc.id

  route {
    cidr_block              = "0.0.0.0/0"
    nat_gateway_id          = aws_nat_gateway.nat-gw[count.index].id
  }

  tags = {
    Name = "private-rtable-${count.index+1}"
  }
}

resource "aws_route_table_association" "private" {
  count                     = length(var.private_subnet_cidr_blocks)
  subnet_id                 = element(aws_subnet.private.*.id, count.index)
  route_table_id            = element(aws_route_table.private.*.id, count.index)
}

這是我的 NAT EIP 和 NAT 網關:

resource "aws_eip" "nat-eip" {
  count                     = length(data.aws_availability_zones.available.names)
  vpc                       = true
}

resource "aws_nat_gateway" "nat-gw" {
  count                     = length(data.aws_availability_zones.available.names)
  allocation_id             = element(aws_eip.nat-eip.*.id, count.index)
  subnet_id                 = element(aws_subnet.public.*.id, count.index)

  tags = {
    Name = "NAT-GW-${count.index+1}"
  }
}

我以前想將每個 NAT 網關附加到我的路由表,目的地為 0.0.0.0/0,但這無法完成。 有沒有辦法讓您的 NAT 網關在您的架構中具有高可用性,或者您應該只附加一個 NAT 網關? 如果是這種情況,我需要輸入什么才能使其僅在 Terraform 中附加一個 NAT 網關? 將不勝感激任何幫助。

更新:對於任何對此場景有疑問的人,我為正在尋找答案的其他人更新了代碼。

以下在aws_route_table.private不正確:

  count                     = var.private_subnet_cidr_blocks

它應該是:

  count                     = length(var.private_subnet_cidr_blocks)

還有你的aws_route_table_association.private而不是:

route_table_id            = aws_route_table.private.id

應該有:

route_table_id            = element(aws_route_table.private.*.id, count.index)

原因是您將擁有與私有子網一樣多的路由表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM