Cra*_*son 4 amazon-ec2 amazon-web-services amazon-elb amazon-cloudformation
TL;DR - CloudFormation 模板是否可以将特定 ELB 的子网特定内部 IP 地址插入到该子网内实例的 UserData 中?
我们在 Amazon VPC 中拥有一组 EC2 Web 服务器,其中有六个子网,一个私有的和一个公共的,跨越 EU-West-1 的三个可用区中的每一个。所有服务器都配置了 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 地址”。
小智 36
我们遇到了同样的问题,下面是我用来获取 ELB“LAMP-Prod”内部 IP 的命令
aws ec2 describe-network-interfaces --filters "Name=description,Values=ELB LAMP-Prod" |grep -wE 'Description|PrivateIpAddress'
Run Code Online (Sandbox Code Playgroud)
或者使用 JQ 而无需指定 ELB 名称
aws ec2 describe-network-interfaces --filters Name=requester-id,Values='amazon-elb' | jq -r '.NetworkInterfaces[].PrivateIpAddresses[].PrivateIpAddress'
Run Code Online (Sandbox Code Playgroud)
小智 7
JQ 解析版本,仅供参考。
aws ec2 describe-network-interfaces --filters "Name=description,Values=ELB your-elb-name" --output json | jq ".NetworkInterfaces[].PrivateIpAddresses[].PrivateIpAddress"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16116 次 |
最近记录: |