Какой самый простой способ запуска параллельных заданий в AWS? - PullRequest
0 голосов
/ 27 июня 2019

Мой пример использования следующий:

У меня есть скрипт python, который:

1. reads a file from S3
2. processes the file and outputs a new file
3. saves the output file to S3 (or maybe a database)

Скрипт python имеет некоторые зависимости, которые управляются через virtualenv.

Каков рекомендуемый / самый простой способ параллельного запуска этих сценариев в AWS?

Я вижу следующие параметры:

  1. Пакет AWS: выглядит действительно сложно - мне нужно создать свой собственныйКонтейнер Docker, настраивающий 3 разных пользователей, отладить нелегко.
  2. AWS Lambda: немного проще в настройке, но мне все еще нужно свернуть свой сценарий в функцию Lambda.Отладка не кажется слишком простой.
  3. Раздражение при ручном раскручивании экземпляров EC2 - с точки зрения пользователя, это идеально - все, что мне нужно сделать, это просто создать файл jobs.sbatch, который загружает virtualenv и запускаетсценарий.Основным недостатком является то, что мне нужно установить и настроить slurm.

Каков рекомендуемый способ обработки этого рабочего процесса?

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Лямбда подойдет для вас, потому что вам не придется смотреть на масштабирование и настраивать все. Что касается отладки, вы можете легко сделать это, используя sls wsgi serve

1 голос
/ 27 июня 2019

Я думаю, вы можете использовать механизм публикации / подписки, используя очередь SQS, содержащую ключ объекта для работы.Тогда у вас может быть группа экземпляров EC2 или ECS, каждый из которых подписывается на очередь и выполняет одну операцию.С помощью очереди вы гарантируете, что каждый процесс работает с одним экземпляром проблемы.Я думаю, что можно создать группу автоматического масштабирования в ECS , и вы, вероятно, сможете изменить количество машин для настройки производительности / стоимости.

...