Распространение маршрута на AWS через Terraform - PullRequest
0 голосов
/ 31 октября 2018

Моя компания использует AWS в качестве поставщика облачных услуг и Terraform, чтобы сделать нашу инфраструктуру частью кода. Мне нужно изменить способ маршрутизации нашего трафика в AWS. В настоящее время у нас есть 1 шлюз NAT. Так что, если бы AZ, что этот живой грех исчез, мы потеряли бы внешнюю связь с нашими экземплярами, которые живут в наших частных подсетях.

Я создал 2 дополнительных NAT GW. По одному в каждом AZ. Я сделал все это через Terraform, но я столкнулся с камнем преткновения, когда дело доходит до маршрутизации.

Я создал этот тип установки, где у вас есть таблица маршрутизации для частной и общедоступной подсетей в каждой AZ

NAT GW Архитектура и маршрутизация

У нас есть Direct Connect и мы используем BGP для рекламы наших сетей в центре обработки данных на AWS. Кажется, я не могу понять, как включить распространение маршрутов в таблицах маршрутов частной подсети, чтобы наши локальные сети были заполнены этими таблицами маршрутов.

resource "aws_route_table" "private-subnet-a-routes" {
    vpc_id = "${aws_vpc.foo.id}"
    propogating_vgws "${aws_vgw.foo.id}" 

Я пробовал это, но получаю ошибку ниже

  • ресурс 'aws_route_table.private-subnet-a-router' config: неизвестный ресурс 'aws_vgw.foo', указанный в переменной aws_vgw.foo.id

Кто-нибудь знает, как установить маршруты для распространения по таблице маршрутов от основного VGW в вашем VPC?

Заранее спасибо

Chris

1 Ответ

0 голосов
/ 01 ноября 2018

Не уверен, что отвечает на ваш вопрос, но может дать вам несколько идей:

resource "aws_route" "nat" {
    count = "${var.num_availability_zones}"
    route_table_id = "${element(aws_route_table.private.*.id, count.index)}"
    destination_cidr_block = "0.0.0.0/0"
    nat_gateway_id = "${element(aws_nat_gateway.nat.*.id, count.index)}"

    depends_on = ["aws_internet_gateway.main", "aws_route_table.private"]
}

https://www.terraform.io/docs/providers/aws/d/route.html

...