Автомасштабирующие рабочие в Digital Ocean

У меня есть 3 веб-сервера. DB, Web и Worker. Работник просто обрабатывает сторонние процессы в течение всего дня.

Как только очередь превышает 100 000 заданий, я хочу иметь второй рабочий экземпляр, и я немного борюсь с правильным мышлением о том, как это сделать. (и если очередь превышает 300 000, мне нужно 3 рабочих, и дальше).

  • Я беру свой Worker и делаю снимок.
  • Через Digital-Ocean:: API Я создам новый экземпляр, основанный на этом изображении.
  • Как только экземпляр загружается, ему необходимо обновить код из Git -Repository
  • Мне нужно сообщить серверу базы данных, что ему разрешено получать соединения с этого экземпляра IP

  • как только очередь окажется ниже 20.000, я могу убить мой экземпляр.

Это правильный способ делать или есть лучшие способы, как это сделать? Я что-то пропустил?

Дополнительный вопрос:

В DB у меня только mysql и redis. нет рубина или чего-то еще. поэтому нет никаких рельсов для запуска. Если мой Worker решает, чтобы создать другого рабочего, новый должен иметь доступ к mysql. Кажется, что невозможно создать некоторый доступ с удаленного компьютера, и мне кажется, что мне нужно создать доступ с сервера db.

mysql> show grants;
+-----------------------------------------------------------------------------------------+
| Grants for [email protected]                                                         |
+-----------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'rails'@'162.243.10.147' IDENTIFIED BY PASSWORD <secret> |
| GRANT ALL PRIVILEGES ON `followrado`.* TO 'rails'@'162.243.10.147'                      |
+-----------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> CREATE USER 'rails'@'162.243.243.127' IDENTIFIED BY 'swag';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation

Ответ 1

Digital Ocean, Linode... есть классические vps и имеют только "ручную автомасштабирование".

ваши идеи бедны, вам нужны облака.