我在AWS EC2 Container Service中有一个群集。当我设置它时,我使用了t2.micro实例,因为它们足以进行开发。现在我想使用更强大的实例,比如m4.large。
我想知道是否可以仅更改实例类型,因此我不需要重新创建整个集群。我找不到怎么做。
答案 0 :(得分:45)
是的,您可以在CloudFormation中实现这一目标。
Update Stack
current template
,Next
Next
,Next
,Update
2*n
个实例n
个新实例n
答案 1 :(得分:35)
是的,这是可能的。
群集中的实例类型由'实例类型'在启动配置中进行设置。要更新实例类型而不必重新创建集群:
您还可以通过创建链接到不同启动配置的多个Auto Scaling组,将多个实例类型添加到单个群集。但请注意,您无法在控制台中轻松复制Auto Scaling Groups。
答案 2 :(得分:5)
如何在Amazon ECS中更改容器实例类型?
要更改您的容器实例类型,请完成以下部分之一的步骤:
解决方案
重要:以下步骤仅适用于使用内部创建基础 AWS CloudFormation堆栈的资源创建的ECS集群。堆栈具有以下格式的名称: EC2ContainerService-yourClusterName 。这些步骤不适用于空的ECS群集或用于配置容器实例的自定义方法。
更新AWS CloudFormation堆栈中 EcsInstanceType 参数的值:
1。打开AWS CloudFormation控制台。
注意:群集名称附加到堆栈名称的末尾(例如,EC2ContainerService-yourClusterName)。
选择“操作”,然后选择“更新堆栈”。
选择“使用当前模板”,然后选择“下一步”。
对于EcsInstanceType,为容器实例中的实例类型设置一个合适的值,然后选择“下一步”。
跳过“选项”部分,选择“下一步”,然后选择“更新”。
替换群集中的旧容器实例:
要更新AWS CloudFormation堆栈,请完成上一节中的步骤1-4。
对于AsgMaxSize,输入一个参数值,该值是当前大小的两倍。 注意:例如,如果当前值为2,则将新值设置为4。这有助于防止在更改实例类型时停机。
答案 3 :(得分:4)
是的,您可以在ECS集群中更改实例类型。我相信您已经从AWS GUI手动创建了ECS集群。在幕后,根据您从AWS控制台(ECS)的输入(例如VPC,实例类型和大小等),创建AWS云形成模板。请按照以下步骤进行操作。
答案 4 :(得分:3)
这是在没有任何停机的情况下进行的操作:
答案 5 :(得分:2)
这可以通过在CloudFormation堆栈中为ECS实例修改EcsInstanceType来实现。手动对自动伸缩组所做的任何更改都将被下一个“伸缩ECS实例”操作覆盖。
答案 6 :(得分:1)
以下是我更新群集中实例类型的确切步骤:
转到群集服务,将任务数更新为0
转到EC2 - >启动配置 - >行动下拉菜单 - > 复制启动配置并设置新实例类型
转到EC2 - > Auto Scaling Groups - >编辑 - >将启动配置设置为新创建的启动配置
转到EC2 - > Auto Scaling Groups - >实例 - > 分离实例
转到EC2 - >启动配置 - >删除旧的启动配置
转到群集服务,将任务数更新为所需的计数。
现在,当任务开始时,它将在更新的EC2实例类型上运行。
答案 7 :(得分:1)
当然,根据使用启动配置的建议,有多种方法可以更改实例类型。
但是请注意,使用多个启动配置来附加到具有容器实例扩展策略的ECS集群是一个挑战。
例如,如果正在使用启动配置运行具有t2.medium类型实例的群集,并且将自动扩展策略附加到ECS群集,则它只能表示自动扩展组,而不能超过1。
答案 8 :(得分:1)
AWS文档具有完整的分步指南,涵盖了手动启动的CloudFormationStack和ECS集群。
How do I change my container instance type in Amazon ECS?
根据指南:
要更改容器实例类型,请完成以下任一步骤 以下部分:
- 更新通过AWS CloudFormation堆栈在ECS集群中启动的容器实例
- 更新在ECS集群中手动启动的容器实例