You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署ECS服务至EC2遇异常:集群无可用容器实例

常见导致ECS集群无容器实例的Terraform配置问题

以下是针对你遇到的No Container Instances were found in your cluster报错,最可能的Terraform配置遗漏或错误点:

  • EC2实例未配置ECS集群注册脚本
    预付费EC2实例必须通过用户数据(user data)配置ECS代理,指定要注册的ECS集群名称。示例配置如下:

    resource "aws_instance" "ecs_instance" {
      # 其他实例配置...
      user_data = <<-EOF
                  #!/bin/bash
                  echo "ECS_CLUSTER=${aws_ecs_cluster.your_cluster.name}" >> /etc/ecs/ecs.config
                  EOF
    }
    

    缺少这段配置的话,EC2实例的ECS代理不知道要注册到哪个集群,自然不会出现在集群的容器实例列表中。

  • EC2实例IAM角色权限不足
    EC2实例需要具备与ECS服务通信的权限,必须附加包含AmazonEC2ContainerServiceforEC2Role策略的IAM角色(或自定义等效权限的策略)。Terraform中需创建实例配置文件并关联到EC2实例:

    resource "aws_iam_role" "ecs_instance_role" {
      name = "ecs-instance-role"
      assume_role_policy = jsonencode({
        Version = "2012-10-17"
        Statement = [{
          Action = "sts:AssumeRole"
          Effect = "Allow"
          Principal = {
            Service = "ec2.amazonaws.com"
          }
        }]
      })
    }
    
    resource "aws_iam_role_policy_attachment" "ecs_instance_policy" {
      role       = aws_iam_role.ecs_instance_role.name
      policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role"
    }
    
    resource "aws_iam_instance_profile" "ecs_instance_profile" {
      name = "ecs-instance-profile"
      role = aws_iam_role.ecs_instance_role.name
    }
    
    # 在aws_instance中关联实例配置文件
    resource "aws_instance" "ecs_instance" {
      # 其他配置...
      iam_instance_profile = aws_iam_instance_profile.ecs_instance_profile.name
    }
    

    权限不足会导致ECS代理无法向ECS控制平面注册实例。

  • 安全组出站规则限制ECS代理通信
    即使你临时全开端口,也要确保EC2实例的安全组允许出站HTTPS(443端口)流量到AWS服务。ECS代理需要通过HTTPS连接到ECS API完成注册,出站规则如果限制了这个流量,实例无法完成注册。

  • ECS集群与EC2实例网络不匹配
    确保EC2实例部署的子网属于ECS集群关联的VPC。如果集群配置了VPC,而实例在其他VPC或未关联的子网中,集群无法发现该实例。

  • 未使用ECS优化AMI
    避免使用普通的Amazon Linux或自定义AMI,应选择官方的ECS优化AMI(比如Amazon Linux 2 ECS AMI)。这类AMI预装了ECS代理和必要依赖,自定义AMI可能缺少组件导致无法注册。

内容的提问来源于stack exchange,提问作者Moravas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 04:08:30