通过Terraform在AWS上进行路由传播

时间:2018-10-31 07:17:56

标签: terraform-provider-aws aws-vpc

我的公司使用AWS作为云提供商,并使用Terraform将我们的基础架构用作代码段。我需要更改我们在AWS中的流量路由方式。我们目前有1个NAT网关。因此,如果此活动犯罪的可用区下降,我们将无法通过位于专用子网中的实例失去外部连接。

我创建了2个额外的NAT GW。每个AZ中的一个。我已经通过Terraform确定完成了所有这些工作,但是在路由方面遇到了绊脚石。

我已经创建了这种类型的设置,其中在每个可用区中都有专用和公用子网的路由表

NAT GW Architecture and routing

我们拥有直接连接,并使用BGP将我们的Datacentre网络发布给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-routes'配置:变量aws_vgw.foo.id中引用的未知资源'aws_vgw.foo'

有人知道如何设置要从VPC中的主VGW在路由表上传播的路由吗?

预先感谢

克里斯

1 个答案:

答案 0 :(得分:0)

不确定能回答您的问题,但可能会给您一些想法:

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