如何更改 Amazon ECS 中的容器实例类型?

上次更新时间:2019 年 7 月 23 日

如何更改我的 Amazon Elastic Container Service (Amazon ECS) 集群中的容器实例类型?

简短描述

要更改您的容器实例类型,请完成以下任意一个部分中的步骤:

通过 AWS CloudFormation 堆栈更新 ECS 集群中启动的容器实例 更新 ECS 集群中手动启动的容器实例

解决方法

通过 AWS CloudFormation 堆栈更新 ECS 集群中启动的容器实例

重要提示:以下步骤仅适用于使用内部创建了底层 AWS CloudFormation 堆栈的资源创建的 ECS 集群。堆栈名称具有以下格式: EC2ContainerService-yourClusterName。这些步骤不适用于空 ECS 集群或自定义的容器实例预置方法。

更新 AWS CloudFormation 堆栈的 EcsInstanceType 参数值:

    打开 AWS CloudFormation 控制台。 选择包含您的 ECS 集群的堆栈。
    注意:集群名称附加在堆栈名称之后(例如 EC2ContainerService-yourClusterName)。 依次选择操作更新堆栈。 依次选择使用当前模板下一步。 对于 EcsInstanceType,根据您的容器实例的实例类型设置一个适当的值,然后选择下一步。 跳过选项 部分,选择下一步,然后选择更新

替换集群中的旧容器实例:

    要更新 AWS CloudFormation 堆栈,请完成上一部分中的第 1-4 步。 对于 AsgMaxSize,请输入一个等于当前大小两倍的参数值。
    注意:例如,如果当前值为 2,则新值设置为 4。这有助于防止在更改实例类型时发生停机。 打开 Amazon ECS 控制台。 在导航窗格中,选择集群,然后选择您的集群。 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。
    注意:如果 DeploymentConfiguration 允许将替换任务放入容器实例中,则 Amazon ECS 将自动放置替换任务。 选择操作 菜单,然后选择耗尽实例以耗尽实例。 在 ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数0。 在导航窗格中,选择集群,然后选择您的集群。 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册
    注意 :取消注册实例会将其从 Amazon ECS 中移除。 在您的 AWS CloudFormation 模板中,将 AsgMaxSize 的值设置为原始值以终止旧容器实例。
    重要提示:此步骤假定您的 Auto Scaling 组具有默认终止策略。

更新 ECS 集群中手动启动的容器实例

    复制 Auto Scaling 组的启动配置,然后为新启动配置命名。 更改实例类型。 在 Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组。然后选择您的容器实例的 Auto Scaling 组。 选择操作,然后选择编辑。 在弹出窗口中,对于启动配置,选择您在这一部分的第 1 步中创建的启动配置。 对于理想容量,输入一个等于当前值两倍的值,然后根据需要更新最大值
    注意:理想容量必须介于最小组大小和最大组大小(含)之间。 在 Amazon ECS 控制台的导航窗格中,选择集群,然后选择您的集群。 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。 选择操作 菜单,然后选择耗尽实例以耗尽实例。 在 ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数0。 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册
    注意 :取消注册实例会将其从 Amazon ECS 中移除。 在 Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组。 选择操作,然后选择编辑。 在您的 Auto Scaling 组配置中,将理想容量最大值设置为原始值,然后保存您的更改。
    注意:这将终止 ECS 集群中的旧容器实例。