如何在CloudFormation中连接实例

我们想为AWS中相当标准的堆栈创build一个模板。 我们需要三层。

  1. 层:弹性负载平衡器

  2. 图层:根据网站需求触发的警报创build/销毁多个networking服务器

  3. 图层:数据库服务器

第2层上的实例应该知道数据库实例的主机名。 理想情况下,我想获得数据库实例的私有IP,并通过用户数据传递给Web服务器。

Fn :: GetAtt不支持私有IP(只有公共)

我想一个替代scheme是build立堆栈,然后手动设置数据库私人IP。 它虽然使我们的设置不那么干净。 我们理想地喜欢在模板中描述的一切。 (即使这涉及通过用户数据运行脚本)

有什么build议么?

我现在这样做,为我的木偶大师添加新的节点。 例如,我在新节点的UserData部分中获取puppet主实例的私有IP:

"echo ", { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateIp" ] }, " ", { "Fn::GetAtt" : [ "MasterOfPuppets", "PrivateDnsName" ] } ," puppet >> /etc/hosts\n","\n", 

请参阅CloudFormation用户指南的第119页。

或者,您可以使用实例MetaData:

 curl http://169.254.169.254/latest/meta-data/local-ipv4/