3

ルート テーブルにプライベートの複数の 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 ゲートウェイを 1 つだけ接続する必要がありますか? この場合、Terraform で 1 つの NAT ゲートウェイのみをアタッチするには、何を入力する必要がありますか? 助けていただければ幸いです。

更新: このシナリオについて質問がある人のために、回答を探している他の人のためにコードを更新しました。

4

1 に答える 1