4

Сценарий следующий: У меня есть 3 экземпляра EC2 (A, B и C), все из которых работают с оптимизированным ECS AMI. Я хотел бы написать шаблон CloudFormation с определением задачи, который позволяет задаче запускаться только на A. Как мне это сделать?Как запустить контейнер в существующем экземпляре EC2 с помощью CloudFormation?

Все примеры CloudFormation, которые я видел, требуют создания нового экземпляра EC2, чего я не хочу.

ответ

1

Единственный способ прикрепить задачу к хозяину, чтобы сделать это через AWS CLI с запуска задачи: http://docs.aws.amazon.com/cli/latest/reference/ecs/start-task.html

Как беговые задачу ECS через CloudFormation, единственный способ, как создать и запустите все это в рамках шаблона CFT, чтобы создать службу. Вот непроверенный шаблон CFT:

{ 
 
    "AWSTemplateFormatVersion": "2010-09-09", 
 
    "Description": "Curator runner", 
 
    "Parameters": { 
 
     "CpuUnits": { 
 
      "Type": "Number", 
 
      "Default": 0, 
 
      "Description": "The number of CPU Units to allocate." 
 
     }, 
 
     "Memory": { 
 
      "Type": "Number", 
 
      "Default": 256, 
 
      "Description": "The amount of Memory (MB) to allocate." 
 
     }, 
 
     "ClusterName": { 
 
      "Type": "String", 
 
      "Description": "The cluster to run the ecs tasks on." 
 
     }, 
 
     "DockerImageUrl": { 
 
      "Type": "String", 
 
      "Description": "The URL for the docker image. Example: 354500939573.dkr.ecr.us-east-1.amazonaws.com/something:latest" 
 
     } 
 
    }, 
 
    "Resources": { 
 
     "SomeTask": { 
 
      "Type": "AWS::ECS::TaskDefinition", 
 
      "Properties": { 
 
       "ContainerDefinitions": [{ 
 
        "Memory": { 
 
         "Ref": "Memory" 
 
        }, 
 
        "Name": "something", 
 
        "Image": { 
 
         "Ref": "DockerImageUrl" 
 
        }, 
 
        "Cpu": { 
 
         "Ref": "CpuUnits" 
 
        } 
 
       }], 
 
       "Volumes": [] 
 
      } 
 
     }, 
 
     "service": { 
 
      "Type": "AWS::ECS::Service", 
 
      "Properties": { 
 
       "Cluster": { 
 
        "Ref": "ClusterName" 
 
       }, 
 
       "DesiredCount": "1", 
 
       "TaskDefinition": { 
 
        "Ref": "SomeTask" 
 
       } 
 
      } 
 
     } 
 
    } 
 
}

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