Amazon ec2 Cloudformation堆栈,其中route53记录分配给自动缩放组中的单个实例

Amazon ec2 Cloudformation堆栈,其中route53记录分配给自动缩放组中的单个实例,amazon-ec2,amazon-cloudformation,Amazon Ec2,Amazon Cloudformation,我希望使用Cloudformation创建以下内容: 具有单点实例的自动缩放组,具有指定的route53记录,该记录将始终指向该实例,即使该实例已被替换 我知道如何使用RubyAPI(而不是cloudformation)实现这一点 如何使用Cloudformation来定义它?您有两个选项: 选项#1:在spot实例启动后,在其中更新R53: 在Cloudformation模板中,创建具有更新相应R53记录权限的IAM角色 将该角色分配给spot实例 当您的spot实例初始化时,让它直接通过re

我希望使用
Cloudformation
创建以下内容:

具有单点实例的自动缩放组,具有指定的route53记录,该记录将始终指向该实例,即使该实例已被替换

我知道如何使用RubyAPI(而不是cloudformation)实现这一点

如何使用Cloudformation来定义它?

您有两个选项:

选项#1:在spot实例启动后,在其中更新R53:

  • 在Cloudformation模板中,创建具有更新相应R53记录权限的IAM角色
  • 将该角色分配给spot实例
  • 当您的spot实例初始化时,让它直接通过restapi更新R53。我通常通过在中设置一个shell脚本并让cloudinit在引导时运行它来实现这一点 要通过Ruby进行更新,您需要访问id、访问密钥和安全令牌。由于您为实例分配了IAM角色,因此可以通过。大多数库会自动提取这些值,因此您甚至不需要手动执行。Boto和nodejs SDK会自动执行此操作

    选项2:使用ELB

  • 在你的云层中创建一个ELB
  • 在您的CloudFormation中,创建一个指向ELB的DNS名称的R53别名记录

  • 如果成本是一个因素,那么仅仅添加一个额外的间接层,ELB可能会有点昂贵

    “持久性点实例”是一个矛盾修饰法,你这是什么意思?在userdata中这样做实际上是我没有想到的。谢谢