2014-01-03 2 views
3

Что такое рекомендуемый способ/шаблон для настройки периодической задачи высокой доступности (множественные точки доступности) (возможно, с помощью Cron) на AWS?Периодическая задача с высокой доступностью (cron) на AWS

Я хотел бы иметь программное обеспечение, установленное на нескольких экземплярах EC2 в нескольких зонах доступности, но только для задачи, выполняемой в одном экземпляре за раз. Не имеет значения, в каком экземпляре.

Прежде чем перейти к AWS, мы использовали блокировку базы данных в экземпляре MySQL - только экземпляр, который успешно создает блокировку, будет работать.

Но должен ли быть лучший способ для AWS? В частности, если нет требований к базе данных.

Спасибо!

ник.

+1

Как часто выполняется задание и сколько времени требуется? – chris

+0

Вы проверили Simple WorkFlow (SWF - http://aws.amazon.com/swf/)? – Guy

+0

Не думайте, что у SWF есть механизм для планирования задач? (довольно, это клиент, который должен выполнять планирование). – njh

ответ

0

С тех пор как я впервые задал этот вопрос, теперь можно использовать события CloudWatch для планирования периодических событий.События могут быть:

  • Фиксированная скорость N минут/часов/дней экспрессии
  • Крон

Цели могут быть:

  • Функция АМС Лямбда
  • Опубликовать в тему SNS
  • Написать очередь SQS
  • Запись в поток Kinesis
  • Выполнить действие на экземпляре EC2/EBS

SQS может затем использоваться, чтобы уведомить один экземпляр в кластере машин в нескольких зонах доступности чтобы выполнить действие.

Существует больше информации здесь: https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/ScheduledEvents.html

Хотя это не включает в себя устойчивость/доступности утверждения о том, что происходит, если доступность зона идет вниз.

-1

Это действительно зависит от ваших требований.

Вы можете отправлять свои задачи в очередь SQS и иметь свои экземпляры (возможно, группу автомасштабирования, разбросанную по разным зонам), опрос этой очереди. SQS 'как минимум (и вообще только) один раз семантика может быть проблемой здесь, если для вас важно, чтобы задачи выполнялись только один раз. Если это так, вы можете легко использовать таблицу DynamoDB и conditional writes. Или, если вы больше после полноценного отказоустойчивого решения, вы можете дать airbnb chronos.

+0

Как вы гарантируете высокую готовность системных сообщений к очереди SQS? – njh

+0

SQS уже столь же доступен, как и он, поэтому, если задачи каким-то образом создаются пользователями (или какой-либо другой системой/компонентом), вы можете просто напрямую поговорить с ним. В других случаях какое-то событие должно инициировать создание задачи; опять же есть много вариантов и дизайнов, но, например, вы можете использовать CloudWatch (возможно, настраиваемые показатели) и темы SNS в очереди –

0

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

Этот метод был кратко освещен на учебном курсе Architecting on AWS, но я не знаю, насколько он надежный.

0

Amazon выпустила решение вашей проблемы: Beanstalk рабочий ярус периодические задачи:

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html#worker-periodictasks

Это в основном зависит от файла YAML листинг расписания хрон вызова API вы хотите:

Чтобы вызывать периодические задачи, ваш источник источника приложения должен содержать файл cron.yaml на корневом уровне. Файл должен содержать информацию о периодических задачах, которые вы хотите запланировать. Укажите эту информацию, используя стандартный синтаксис crontab.

+0

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

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