EC2实例未自动注册至ECS集群,容器任务无法运行求助
解决ECS集群无EC2实例无法运行任务的问题
方案1:用Fargate模式运行任务(新手首选)
Fargate是ECS的无服务器模式,不用手动管理EC2实例,直接调度容器:
- 打开AWS控制台的ECS服务,进入你创建的集群
- 左侧点击任务定义,新建任务定义:
- 启动类型选择Fargate
- 任务角色和执行角色选默认选项(没有的话跟着控制台提示创建即可)
- 添加容器:名称填
hello-world,镜像使用amazon/amazon-ecs-sample(官方示例镜像),端口映射按需设置(比如80端口) - 其余配置保持默认,完成任务定义创建
- 回到集群页面,点击运行新任务:
- 启动类型选择Fargate
- 任务定义选择刚创建的版本
- VPC和子网选择集群创建时的配置(或默认VPC)
- 安全组放开必要端口(比如80,方便后续测试)
- 其余配置默认,点击运行任务,等待几分钟即可看到任务正常运行
方案2:给EC2集群添加实例(适合需要EC2模式的场景)
如果必须使用EC2模式,需要给集群注册ECS容器实例:
- 进入你的ECS集群,左侧点击ECS实例
- 点击注册实例,进入引导页面:
- 选择集群对应的实例启动模板(没有的话点击创建新模板)
- 实例类型选
t2.micro(免费额度内),AMI选择官方的Amazon ECS-Optimized Amazon Linux 2 AMI(控制台会自动筛选出对应镜像) - 密钥对可选(用于远程连接实例,新手可跳过,但建议创建一个)
- 网络配置选择集群的VPC和子网,安全组使用默认的ECS通信配置即可
- 完成启动模板创建后,选择该模板,设置实例数量(比如1),点击启动实例
- 等待几分钟,EC2实例启动后会自动注册到你的ECS集群,之后再运行任务就不会报错了
注意事项
- 免费额度内的
t2.micro实例和Fargate资源均可免费使用,无需担心额外费用 - 任务运行后,可在集群的任务页面查看状态,正常运行后即可访问容器服务
内容的提问来源于stack exchange,提问作者Howard Scott
相关产品推荐
相关产品推荐

