使用 Terraform 在 AWS 上创建 HA NAT
Posted
技术标签:
【中文标题】使用 Terraform 在 AWS 上创建 HA NAT【英文标题】:Creating HA NAT on AWS with Terraform 【发布时间】:2015-10-28 14:28:37 【问题描述】:在 AWS 中构建 HA NAT 的两种常见策略是:
“路由接管”,实例更新路由表以指向自身。 “ENI 附加”实例将 ENI 附加到自身,并且路由表设置为将默认路由指向 ENI。这两种方法都涉及更新资源配置(即路由表或 ENI)的实例,该实例由“心跳脚本”触发或由自动缩放组创建。
这适用于 CloudFormation,因为对堆栈的更新不会覆盖在此之后发生的这些更改。 Terraform 并非如此。
Terraform 将检测到任一资源的配置已更改,并将尝试通过删除在 Terraform 之外发生的任何更改来“修复配置”。
我明白这里的理念,但它阻止了使用通用策略部署 HA NAT。
那么,有没有人知道如何在 Terraform 的运作范围内完成 HA NAT 解决方案?
谢谢, 乔
【问题讨论】:
【参考方案1】:作为此问题的更新,Terraform 现在支持 managed NAT gateways 和 aws_nat_gateway resource
【讨论】:
【参考方案2】:从 0.6.2 版开始,terraform 不再尝试删除带外附加的 ENI 的附件 https://github.com/hashicorp/terraform/pull/2943
【讨论】:
以上是关于使用 Terraform 在 AWS 上创建 HA NAT的主要内容,如果未能解决你的问题,请参考以下文章
Terraform aws - 无法使用 terraform 脚本创建 AWS SFTP 服务器
在 AWS RDS 集群实例上使用 Terraform 预置多个逻辑数据库
使用 Terraform 创建 AWS MySQL RDS 实例时出错
在创建 aws_dms_replication_task 资源-terraform 中使用“cdc_start_position”参数时出错