我正在编写一个云形成模板来配置 EC2 实例,我想等到用户数据完成。
我尝试使用 cfn 信号,但当我的 EC2 在私有子网中时它不起作用。
获取客户端超时错误
我正在编写一个云形成模板来配置 EC2 实例,我想等到用户数据完成。
我尝试使用 cfn 信号,但当我的 EC2 在私有子网中时它不起作用。
获取客户端超时错误
cfn-signal
需要直接或通过 NAT 设备或代理的 Internet 连接,以便联系 CloudFormation 并传递信号。此功能运行所需的终端节点不在您的 VPC 内。(一些 AWS 服务支持VPC Endpoints,但在撰写本文时,这不是其中之一)。
您的选择:
将NAT 网关或NAT 实例附加到您的 VPC 中的公有子网,然后修改私有子网的默认路由以指向 NAT 设备。NAT 实例具有较低的运营成本,而 NAT 网关支持更高的吞吐量和内置冗余和容错......但如果考虑成本,t2.nano 机器上的 NAT 实例将绰绰有余应用。
或者,使用 HTTP 代理(例如squid )在可以访问 Internet 的子网上构建 EC2 实例,配置为允许您的实例向外连接,将--http-proxy
参数传递给 cfn-signal,将代理的地址设置为 URL,例如--http-proxy http://172.32.1.10:3128
. 也可以构建此类代理的集群,但这需要在 TCP(非 HTTP)模式下使用网络负载均衡器 (NLB) 或 ELB Classic。Application Load Balancer (ALB) 可以与反向代理一起使用,但不支持正向代理,这是一个正向代理应用程序。