切换到 AWS 中的 t4g.medium 实例后,ECS 任务陷入配置状态

问题描述 投票:0回答:1

我有一个 AWS ECS 集群,最初使用带有 t2.medium 实例的自动扩展组。我最近创建了一个使用 t4g.medium 实例的新启动模板,并将默认启动版本设置为 t4g 版本。但是,进行此更改后,我注意到我的 ECS 任务陷入“配置”状态并且永远不会达到“运行”状态,即使自动缩放组成功创建新的 t4g.medium EC2 实例也是如此。

以下是我所做的更改的摘要:

使用 t4g.medium 实例创建了一个新的启动模板。 将默认启动版本设置为 t4g 版本。 确认自动缩放组正在创建新的 t4g.medium 实例。 我正在寻求帮助来理解为什么我的任务陷入“配置”状态而不是转换到“运行”状态。从 t2.medium 实例切换到 t4g.medium 实例时,是否需要进行任何特定配置或更改?任何帮助或指导将不胜感激。

编辑:

除了上面提供的详细信息之外,值得一提的是,我正在使用一个 AMI,该 AMI 是使用代码项目中的 Docker 容器构建的,然后推送到 AWS ECR。我的期望是,鉴于此 AMI 在 Docker 容器环境中工作,它应该是可移植的并且可以在不同实例类型之间正常运行。

详细说明:

我已经建立了一个项目,其中 Docker 容器构建 AMI。 然后,该 AMI 被推送到 AWS ECR。 我的印象是,由于 AMI 是在 Docker 容器中构建的,因此它应该可以跨各种实例类型无缝工作,包括 t2.medium 和 t4g.medium。 尽管如此,我还是遇到了上述问题,即从 t2.medium 实例转换到 t4g.medium 实例后任务陷入“配置”状态。我很想知道问题是否出在我对 AMI 可移植性的假设上,或者在这个转变中我是否还遗漏了其他东西。对此的任何见解将不胜感激。

amazon-web-services docker amazon-ec2 amazon-ecs
1个回答
0
投票

对于寻找答案的其他用户,这就是我解决问题的方法:

  1. ECS 任务定义 - 创建新的任务定义修订版并将操作系统/架构更改为
    Linux/ARM64

arm64 architecture

  1. ECS 优化的 AMI - 当我手动将 AMD64 更改为 ARM64 时,我没有意识到我选择的是非 ECS 优化的 ARM64 AMI(又名 Docker 和 ECS 未安装在 EC2 实例中)。这就是导致我的 ECS 任务陷入“配置”状态的原因。

不要从快速入门 AMI 中进行选择,而是使用以下关键字之一从社区 AMI 中进行搜索:

  • ecs
  • ecs 优化

根据您的需求选择ECS优化的AMI ecs-optimized-amis

© www.soinside.com 2019 - 2024. All rights reserved.