2017-02-20 23 views
0

Я не могу понять, как защитить экземпляры задач ECS при использовании автоматического масштабирования в Amazon AWS. У меня есть долго работающая задача, которая может масштабироваться по мере необходимости, но я хочу отмечать экземпляры задач, которые работают как «не разрушаемые». Я нашел несколько ресурсов, которые говорят о защите например, такие как:AWS Scaling In Termination Protection for EC2 Container Service

https://aws.amazon.com/blogs/aws/new-instance-protection-for-auto-scaling/

и (потому что я использую Python) документация API здесь:

http://boto3.readthedocs.io/en/latest/reference/services/autoscaling.html#AutoScaling.Client.set_instance_protection

Этот метод требует INSTANCEID и поэтому я пытаюсь получить идентификатор экземпляра текущего контейнера, используя следующую команду:

curl http://169.254.169.254/latest/meta-data/instance-id

Однако этот метод просто возвращает идентификатор экземпляра компьютера EC2, на котором выполняется задача. Поэтому мой вопрос: есть ли способ получить идентификатор экземпляра экземпляра задачи docker (если он существует)? Если нет другого способа, я могу предотвратить автоматическое масштабирование от завершения задачи, которая все еще работает? Должен ли я писать собственный диспетчер задач, который управляет масштабированием In?

+0

Фактические задачи не могут быть защищены от прерывания в ECS - вы можете написать свой собственный планировщик, который мог бы делать то, что вы хотите. – birryree

+0

Что вы пытаетесь достичь? Может быть, есть еще один вариант? – hellomichibye

ответ

0

Для решения этой же проблемы мы разработали простое приложение, которое запускается, когда задание выполняется в одном из экземпляров автоматической масштабирующей группы (ASG). Это приложение проверяет очередь и если в очереди нет задания (например, 10 минут или 10 раз), он завершает свой экземпляр и уменьшает желаемое значение ASG. Это дает нам надежный механизм масштабирования. С другой стороны, масштабирование выполняется самой ASG на основе количества заданий в очереди.