Amazon EC2 On-Demand Workers для коротких задач

Я хочу создать веб-приложение, которое должно запускать ресурсоемкие вычисления MCMC (Цепь Маркова Монте-Карло) по требованию в R для создания некоторых графиков вероятностей для пользователя. .

Ограничения:

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

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

  3. Я не могу позволить себе запустить мощный экземпляр EC2 со скоростью ~66 центов/час x 24 часа в день, поэтому экземпляры по запросуили спотовые запросы, вероятно, необходимы.

Вот варианты, которые я придумал:

  1. Запуск дешевого и доступного рабочего инстанса 24 часа в сутки, что занимает одна задача за раз управляется Amazon SWF (или SQS).

    Минусы:

    • большая задержка— Более дешевое оборудование, большее время ожидания.



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

    Минусы:

    • дорого/расточительно- я буду платить за час на сервере каждый раз и используя только секунды для моих расчетов

    • накладные расходы при запуске— будет ли раскручиваться новый экземпляр EC2 по требованию вводят существенную задержку (компенсируя цель использования более мощного оборудования)?



  3. Аналогично №2, но с спотовыми запросами EC2 с низкими ставками.

    Минусы:

    • накладные расходы при запуске— см. № 2

    • несоответствие?— я никогда раньше не работал со спотовыми запросами, поэтому я понятия не имею, насколько изменчиво или практично такое решение было бы... нужно ли мне постоянно корректировать свои ставки, чтобы сделать уверен, что я все еще могу выполнять задачи в часы пик? Кроме того, я полагаю Мне пришлось бы внимательно следить за своими процессами, чтобы убедиться, что они не прервался на середине расчета.



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

    Минусы:

    • сложная и дорогостоящая установка— Если нет хорошего управляемого службы для обработки подобных вещей, мне пришлось бы установить все всю эту инфраструктуру сам создал...

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

Итак, мои вопросы следующие:

  • Как бы вы порекомендовали решить эту проблему?

  • Существует ли хорошее решение для управления инстансами EC2, которое могло бы работать поверх Amazon SWF и помогать балансировать нагрузку и прекращать простаивающие рабочие процессы?

  • Помогут ли спотовые ставки решить мою проблему или они больше подходят для задач, которые необязательно выполнять сразу?

18
задан mikegreiling 10 June 2012 в 13:39
поделиться