请检查以下情况:
我想创建一个包含3个实例的集群,因此3个实例需要知道彼此的私有IP地址。
在第三个实例中获取其他2个实例的IP地址的最佳方法是什么?我应该在AMI中保留一个小脚本,将IP地址扔到外面吗?
答案 0 :(得分:2)
一般情况下,最好避免通过IP地址引用其他资源。例如,实例可能会失败,您可能会将其替换为新实例,该实例将接收不同的IP地址。
相反,建议为实例分配DNS名称,并通过该DNS名称引用它。您可以在CloudFormation模板中定义 Amazon Route 53私有托管区域,并创建记录集以为每个3 EC2实例分配名称。
这样,实例本身不需要知道IP地址,也不需要将IP地址“发送”到其他实例,也不需要在每个实例上存储IP地址。
请参阅:
答案 1 :(得分:1)
在cloudformation中,您可以使用https://symfony.com/doc/current/doctrine.html,它会从模板中的资源返回属性的值。
要获取PrivateIp,它将如下所示:
{ "Fn::GetAtt" : [ "Ec2Instance", "PrivateIp" ] }