【发布时间】:2017-11-22 01:30:55
【问题描述】:
我在 AWS EC2 容器服务中有一个集群。当我设置它时,我使用了 t2.micro 实例,因为它们对于开发来说已经足够了。现在我想使用更强大的实例,例如 m4.large。
我想知道是否可以只更改实例类型,所以我不需要重新创建整个集群。我找不到如何做到这一点。
【问题讨论】:
标签: amazon-web-services amazon-ecs
我在 AWS EC2 容器服务中有一个集群。当我设置它时,我使用了 t2.micro 实例,因为它们对于开发来说已经足够了。现在我想使用更强大的实例,例如 m4.large。
我想知道是否可以只更改实例类型,所以我不需要重新创建整个集群。我找不到如何做到这一点。
【问题讨论】:
标签: amazon-web-services amazon-ecs
是的,您可以在 CloudFormation 中实现这一点。
Update Stack
current template, Next
Next, Next, Update
2*n 实例n 创建新类型的新实例n
【讨论】:
是的,这是可能的。
集群中的实例类型由启动配置中的“实例类型”设置确定。无需重新创建集群即可更新实例类型:
您还可以通过创建链接到不同启动配置的多个 Auto Scaling 组,将 多个 实例类型添加到 单个 集群。但请注意,您无法在控制台中轻松复制 Auto Scaling 组。
【讨论】:
这是如何在不停机的情况下做到这一点:
【讨论】:
以下是我在集群上更新实例类型所采取的具体步骤:
进入集群服务,更新任务数为0
转到 EC2 -> 启动配置 -> 操作下拉菜单 -> 复制启动配置 并设置新的实例类型
转到 EC2 -> Auto Scaling 组 -> 编辑 -> 将 启动配置 设置为新创建的启动配置
转到 EC2 -> Auto Scaling 组 -> 实例 -> 分离 实例
转到 EC2 -> 启动配置 -> 删除旧的启动配置
转到集群服务,将任务数更新为您想要的计数。
现在,当任务开始时,它将在更新后的 EC2 实例类型上运行。
【讨论】:
这可以通过修改 ECS 实例的 CloudFormation 堆栈中的 EcsInstanceType 来实现。手动对自动伸缩组所做的任何更改都将被下一个“Scale ECS Instances”操作覆盖。
【讨论】:
是的,您可以更改 ECS 集群中的实例类型。我相信您已经从 AWS GUI 手动创建了 ECS 集群。在后台,它会根据您从 AWS 控制台(ECS)的输入(如 VPC、实例类型和大小等)创建 aws 云形成模板。请按照以下步骤操作。
【讨论】:
当然,按照有关使用启动配置的建议,有多种方法可以更改实例类型。
但请注意,使用多个启动配置附加到具有容器实例扩展策略的 ECS 集群是一个挑战。
例如,如果使用启动配置运行具有 t2.medium 类型实例的集群,并且将 Auto Scaling 策略附加到 ECS 集群,则它只能向 Auto Scaling 组发出信号,并且不超过 1 个。
【讨论】:
AWS 文档有一个完整的分步指南,涵盖了手动启动的 CloudFormationStack 和 ECS 集群。
How do I change my container instance type in Amazon ECS?
来自指南:
要更改您的容器实例类型,请完成以下步骤之一 以下部分:
- 通过 AWS CloudFormation 堆栈更新在 ECS 集群中启动的容器实例
- 更新在 ECS 集群中手动启动的容器实例
【讨论】: