【问题标题】:How to add EBS volume to ECS instance in Terraform如何在 Terraform 中将 EBS 卷添加到 ECS 实例
【发布时间】:2020-11-27 01:05:56
【问题描述】:

我正在尝试使用 Terraform 设置 ECS 集群,但我不知道如何在托管需要该卷的服务的 ECS 实例上使 Terraform 自动配置 EBS 卷。

在我的配置中,我有:

resource "aws_ecs_task_definition" "name" {
  family = "name"
  container_definitions = "${file("task-definitions/name.json")}"

  volume {
    name = "name-storage"
    host_path = "/ecs/name-storage"
  }
}

resource "aws_ecs_service" "name" {
  name = "name"
  cluster = "${aws_ecs_cluster.main.id}"
  task_definition = "${aws_ecs_task_definition.name.arn}"
  desired_count = 1
  iam_role = "${aws_iam_role.ecs_service_role.arn}"
  depends_on = ["aws_iam_role_policy.ecs_service_role_policy"]

  load_balancer {
    elb_name = "${aws_elb.name.id}"
    container_name = "name"
    container_port = 8000
  }
}

task-definitions/name.json 我有:

"mountPoints": [
  {
    "sourceVolume": "name-storage",
    "containerPath": "/var/lib/cassandra"
  }
]

我如何实际获取托管此服务的实例上的卷?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-ecs terraform


    【解决方案1】:

    在 Docker 容器中安装卷与配置 EBS 存储不同。您复制了 ECS 服务/任务设置的配置,但没有复制 ECS 实例的设置(应该是普通的 EC2 实例)。如果您使用标准 ECS 优化的 Amazon 系统映像,则会在设置时自动创建一些标准 EBS 卷。

    问题仍然存在,您是否想在使用 ECS 时在 Docker 容器中挂载卷。在很多情况下,这不是必需的和/或有其他更好的解决方案。 ECS 构建的前提是任何容器都可以在集群中的任何实例上运行,如果您需要来自容器外部的特定数据,这个前提可能不成立。

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2018-01-08
      • 2023-03-25
      • 2017-12-05
      • 2018-12-29
      相关资源
      最近更新 更多