2017-01-14 6 views
3

Я пытаюсь настроить кластер ECS с помощью Terraform, и я не могу понять, как сделать autrarovision Terraform томом EBS на экземпляре ECS, который содержит службу, которая требует, чтобы объем.Как добавить объем EBS в экземпляр ECS в Terraform

В моей конфигурации у меня есть:

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" 
    } 
] 

Как я на самом деле получить объем на экземпляре, на котором размещена эта услуга?

ответ

0

Установка тома внутри контейнера Docker - это нечто иное, чем обеспечение хранения EBS. Вы скопировали конфигурацию службы/задачи ECS, но не настройку вашего экземпляра ECS (который должен быть обычным экземпляром EC2). Если вы используете стандартную оптимизированную по ECS Amazon Machine Image, некоторые стандартные объемы EBS создаются при настройке автоматически.

Вопрос остается в том, что вы хотите установить том внутри контейнера Docker при использовании ECS. Во многих случаях это не требуется и/или есть другие предпочтительные решения. ECS строится с предпосылкой, что любой контейнер может работать на любом экземпляре вашего кластера, если вам нужны конкретные данные из-за пределов вашего контейнера, эта предпосылка может не выполняться.

 Смежные вопросы

  • Нет связанных вопросов^_^