如何在 CloudFormation 中连接实例

如何在 CloudFormation 中连接实例

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

  1. 层:弹性负载均衡器

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

  3. 层:数据库服务器

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

Fn::获取Att不支持私有IP(仅支持公网)

我认为另一种方法是构建堆栈,然后手动设置数据库私有 IP。但这确实会使我们的设置不那么干净。我们理想情况下希望在模板中描述所有内容。(即使这涉及通过运行脚本用户数据

有什么建议么?

答案1

我现在这样做是为了将新节点添加到我的 Puppet Master。例如,我在新节点的 UserData 部分中获取 Puppet Master 实例的私有 IP:

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

请参阅第 119 页CloudFormation 用户指南

或者,您可以使用实例元数据:

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

相关内容