Развертывание экземпляров ботов в AWS - PullRequest
0 голосов
/ 28 апреля 2018

У меня нет опыта развертывания AWS или ботов для производства, поэтому я ищу несколько советов по передовому опыту.

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

Что мне нужно:

  • Возможность легко развернуть бот / кодовую базу.
  • Несколько экземпляров, чтобы я мог развернуть новый экземпляр для каждого пользователя.
  • Удобство доступа к журналам и обновлениям.
  • Отчет об использовании.
  • Возможность привязки к интерфейсу для пользователей.

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

Текущий рабочий процесс для развертывания нового бота:

  1. Создание экземпляра Cloud9 EC2
  2. Установить зависимости
  3. Git клон из репозитория
  4. Редактирование конфигурации с помощью пользовательских ключей доступа
  5. Запуск бота с консоли
  6. Оставить запущенным в фоновом режиме

Пока это было очень легко, но я просто не знаю, практично ли это. Цени любой совет!

1 Ответ

0 голосов
/ 29 апреля 2018

Учитывая, что бот должен постоянно работать (то есть его нельзя просто запустить по требованию в течение пары минут, что исключает AWS Lambda), и что каждый пользователь нуждается в своем собственном, я бы дал AWS ECS попытка.

Ваша первоначальная настройка будет выглядеть примерно так:

  1. Сначала создайте образ Docker для запуска вашего бота и загрузите его в ECR или Docker Hub .
  2. Настройка ECS. Я рекомендую использовать AWS Fargate , чтобы вам не приходилось управлять экземплярами VPC и EC2 только для запуска ваших контейнеров. Вам нужно создать определение задачи , используя образ вашего бота Docker.
  3. Запускать новые задачи по мере необходимости, используя определение задачи. Это можно сделать через API-интерфейс AWS, AWS SDK, в консоли AWS и т. Д.

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

Вы также сможете настроить ведение журнала и мониторинг / тревогу с помощью CloudWatch и для ваших задач ECS.

Отчет об использовании зависит от того, что именно вы хотите сообщить. Вы можете получать все, что вам нужно, из событий / метрик CloudWatch или отправлять данные из ваших контейнеров в какое-либо решение для хранения данных (RDS, DynamoDB, S3 и т. Д.).

Привязка внешнего интерфейса к ботам зависит от того, как они настроены. Например, если у них есть REST-серверы, которые прослушивают определенный порт, вы сможете подключиться к нему, если они работают на ECS.

...