如何在AWS中配置CloudFormation的“实例保护”?

时间:2016-03-11 16:58:40

标签: amazon-web-services amazon-ec2 amazon-cloudformation

我需要使用CloudFormation模板为Auto Scaling组中的实例设置“Instance Protection”属性。

我通常在我的AWS控制台中这样做:EC2 - > Auto Scaling Groups

但我似乎无法在CloudFormation documentation

上找到它

3 个答案:

答案 0 :(得分:8)

可以使用CloudFormation完成,但这并不容易。

CloudFormation目前(截至2016年3月30日)未正式支持Auto Scaling实例保护功能。遗憾的是,CloudFormation往往落后于添加到底层AWS API的新功能,而且此功能在2015年12月7日仅为recently launched

为了将来参考,要确认CloudFormation中是否更新了新功能,您最好的选择是参考CloudFormation release history以查看是否提及了所需的功能。

其他AWS软件开发工具包往往会更频繁地更新,因此您可以使用以下方法创建AutoScaling组。带有--new-instances-protected-from-scale-in标志的AWS CLI create-auto-scaling-group命令。

如果不在CloudFormation之外创建自动缩放组,则另一种(更复杂的)解决方法是在现有CloudFormation资源之上修补自定义资源,以使用新功能设置更新新创建的自动缩放组使用其中一个更新的SDK。它可以工作,但您需要创建一个lambda函数和所有支持IAM角色和权限,并将它们全部挂钩到一个自定义资源中。有关如何执行此操作以支持其他CloudFormation不支持的功能(将ACM证书附加到CloudFront分配)的示例,请参阅我的SO answer here

当然,最简单的方法是等待AWS向CloudFormation添加对此功能的官方支持,因为他们最终会这样做。

答案 1 :(得分:2)

CloudFormation目前不支持此功能。

如果查看Autoscaling的CFN文档,它有一个TerminationProtection元素,它是一个字符串列表。我在文档中找不到可用选项列表,但是当我使用CLI时似乎没有任何相关内容:

$> aws autoscaling describe-termination-policy-types
{
    "TerminationPolicyTypes": [
        "ClosestToNextInstanceHour", 
        "Default", 
        "NewestInstance", 
        "OldestInstance", 
        "OldestLaunchConfiguration"
    ]
}

答案 2 :(得分:-1)

他们终于在 2020 年 10 月 26 日添加了此功能。

NewInstancesProtectedFromScaleIn

相关问题