首页 > 解决方案 > 带有 Terraform 的 AWS ECS 是否损坏?

问题描述

我正在尝试使用 Terraform 启动 ECS 集群,但无法使 EC2 实例注册为集群中的容器实例。

我首先尝试使用Terraform的已验证模块,但这似乎已经过时(ecs-instance-profile 路径错误)。

然后我尝试使用anrim另一个模块,但仍然没有容器实例。这是我使用的脚本:

provider "aws" {
  region = "us-east-1"
}

module "vpc" {
  source  = "terraform-aws-modules/vpc/aws"
  version = "2.21.0"

  name               = "ecs-alb-single-svc"
  cidr               = "10.10.10.0/24"
  azs                = ["us-east-1a", "us-east-1b", "us-east-1c"]
  private_subnets    = ["10.10.10.0/27", "10.10.10.32/27", "10.10.10.64/27"]
  public_subnets     = ["10.10.10.96/27", "10.10.10.128/27", "10.10.10.160/27"]

  tags = {
    Owner       = "user"
    Environment = "me"
  }
}

module "ecs_cluster" {
  source = "../../modules/cluster"

  name        = "ecs-alb-single-svc"
  vpc_id      = module.vpc.vpc_id
  vpc_subnets = module.vpc.private_subnets

  tags = {
    Owner       = "user"
    Environment = "me"
  }
}

然后,我在同一个 VPC 上创建了一个新的 ecs 集群(来自 aws 控制台),并仔细比较了资源的差异。我设法找到了一些小的差异,修复它们并再次尝试。但仍然没有容器实例!

此处提供了该模块的一个分支。

标签: amazon-web-servicesterraformamazon-ecs

解决方案


您能看到在自动缩放组中创建的实例吗?如果是这样,我建议通过 SSH 连接到其中一个(直接或使用堡垒主机,例如查看此模块)并检查ECS 代理日志。以我的经验,这些问题通常与 IAM 策略有关,这在日志中很明显,但 YMMV。


推荐阅读