编辑云形成模板会终止现有实例并创建新实例

时间:2018-01-11 10:06:40

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

我们正在为一组VM使用云形成模板,每次代码部署后,我们都需要在模板参数上编辑软件包版本以进行自动扩展,以从s3存储桶中获取最新的软件包。

问题是,编辑云形成模板会触发基于云形式的实例升级(这涉及破坏现有机器并从头开始创建新机器,这非常耗时)。

无论如何,我们可以阻止这种情况。

基本上,每当我们编辑它时,我们都不需要云形成模板来销毁和重新创建实例。

编辑:这是我的自动缩放组设置

    "*********":{
        "Type":"AWS::AutoScaling::AutoScalingGroup",
        "Properties":{
            "AvailabilityZones":[
                {
                    "Ref":"PrimaryAvailabilityZone"
                }
            ],
            "Cooldown":"300",
            "DesiredCapacity":"2",
            "HealthCheckGracePeriod":"300",
            "HealthCheckType":"EC2",
            "LoadBalancerNames":[
                {
                    "Ref":"elbxxbalancer"
                }
            ],
            "MaxSize":"8",
            "MinSize":"1",
            "VPCZoneIdentifier":[
                {
                    "Ref":"PrivateSubnetId"
                }
            ],
            "Tags":[
                {
                    "Key":"Name",
                    "Value":"my-Server",
                    "PropagateAtLaunch":"true"
                },
                {
                    "Key":"VPCRole",
                    "Value":{
                        "Ref":"VpcRole"
                    },
                    "PropagateAtLaunch":"true"
                }
            ],
            "TerminationPolicies":[
                "Default"
            ],
            "LaunchConfigurationName":{
                "Ref":"xxlaunch"
            }
        },
        "CreationPolicy":{
            "ResourceSignal":{
                "Timeout":"PT10M",
                "Count":"1"
            }
        },
        "UpdatePolicy":{
            "AutoScalingRollingUpdate":{
                "MinInstancesInService":"1",
                "MaxBatchSize":"1",
                "PauseTime":"PT10M",
                "WaitOnResourceSignals":"true"
            }
        }
    },

1 个答案:

答案 0 :(得分:1)

您可以查看文档并查看您在CF模板上修改的属性上的Update requires:字段。

如果显示Replacement,它将使用新的逻辑ID

重新创建实例

如果它显示Some Interruption它将使实例不可用,在ec2情况下,重新启动它,但不会重新创建实例,保持相同的逻辑ID

如果它显示No interruption,它将不会影响实例

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html