Python конвейер на AWS облаке - PullRequest
0 голосов
/ 01 мая 2020

У меня есть несколько python сценариев, которые должны выполняться последовательно в AWS Cloud, так каковы лучшие и самые простые варианты? Эти файлы сценариев являются доказательством концепции, поэтому они немного грязные, но должны выполняться в одночасье. Большая часть сценария завершается в течение 10 минут, но для нескольких из них может потребоваться до 1 часа работы на одном ядре.

У нас нет таких серверов, как Jenkins, airflow et c ... мы планируем использовать существующие aws услуги.

Пожалуйста, дайте мне знать, спасибо.

Ответы [ 2 ]

1 голос
/ 02 мая 2020

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

Однако хорошим вариантом является использование AWS Batch.

1 голос
/ 01 мая 2020

1) Экземпляр EC2 (с ручным управлением)

  • Загрузка сценариев в корзину S3 Использовать VP по умолчанию C
  • запуск Экземпляра EC2
  • Использование сеанса SSM Remote для входа в систему
  • Запуск AWS CLI (AWS S3 Syn c для загрузки с S3)
  • Запуск их вручную
  • остановите экземпляр, когда закончите.

Чтобы быть чистым, создайте файл SH (или основной файл .py), чтобы выполнить работу. Если вы хотите, чтобы он прекратил взимать с вас деньги впоследствии, добавьте команду, чтобы остановить экземпляр после завершения.

Наименьший объем работы

2) Если вы хотите запускать сценарии ежедневно
- Сценарий работы выше (включая изменение группы Autoscale в конце на go на одну коробку) - Создайте группу автоматического масштабирования EC2 и запустите ее по расписанию работы CRON.

Она запустится, выполнит работу, а затем выключится и прекратит зарядку.

3) Лямбда
Во многом как вариант 2, но AWS выполнит большую часть работы за вас.
Либо поместите все ваши скрипты в одну лямбду ... или поместите каждый скрипт в свою собственную лямбду и иметь мастер, который выполняет syn c вызов каждого сценария в нужном вам порядке.
У вас есть ежедневный триггер Cloudwatch и он работает

Я бы сказал, что если вы находятся в режиме PO C, вариант 1 является лучшим решением. Это, вероятно, ближе всего к тому, что вы уже делаете, где вы в настоящее время выполняете. Это то, что @jarmod рекомендовал уже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...