TL;DR - CloudFormation 模板是否可以将特定 ELB 的子网特定内部 IP 地址插入该子网内实例的 UserData?
我们在一个 Amazon VPC 中有一组 EC2 Web 服务器,在 EU-West-1 内的三个 AZ 中的每一个都有六个子网、一个私有子网和一个公共子网。所有服务器都配置了 CloudFormation。
我们想配置 Apache 的 mod_rpaf 来记录X-Forwarded-For
标头(我们可以更改 LogFormat,但这并不容易转换为 PHP 或 Apache 错误日志;RPAF 对我们来说是最简洁的解决方案)。
据我所知,ELB 的架构方式意味着它在每个配置的可用区中都有一个“脚”,如果 ELB 被拆除或重新创建,这可能会发生变化。
似乎 Ubuntu 12.04 存储库中的 mod_rpaf 版本尚未更新以允许ProxyIPS
指令的 CIDR 表示法,理论上 ELB 的 IP 地址可以是我们三个公共子网中的任何内容。
剩下的一个解决方案是通过 Puppet 配置模块,使用实例的 UserData 生成的 hieradata。我知道在某种程度上您可以在 CloudFormation 模板中插入引用和变量,但我不确定是否可以有效地说“给我这个子网中这个 ELB 的私有 IP 地址”。
我们遇到了同样的问题,下面的命令我用来获取 ELB“LAMP-Prod”的内部 IP
或者使用 JQ 而无需指定 ELB 名称
如果要获取 elb 的私有 IP 地址,请检查 ec2 仪表板中网络和安全下的网络接口。
JQ 解析版,仅供参考。
不幸的是没有。我已经与我们的 AWS 解决方案工程师在这方面反复讨论,目前无法查询 ELB 的内部 IP。我目前正在抓取日志文件以找到它们。