Мне нужно распределить большое количество задач по нескольким серверам. Нужно ли мне увеличивать количество VPS и добавлять еще больше? Что-то более масштабируемое? - PullRequest
0 голосов
/ 31 октября 2018

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

Работа в основном заключается в том, что основной сервер отправляет кучу команд другим серверам, которые включают HTTP-запрос и что делать с результатами, затем другие серверы выполняют выборки, манипулируют данными и сохраняют их в центральная база данных.

Это работает сейчас, но рабочая нагрузка увеличивается, и мне нужно скоро развернуть другой VPS, и конфигурация немного раздражает.

Есть ли лучший способ сделать это? Автоматизированный способ создания большего количества серверов по мере необходимости, который не сложно понять? Создание новых VPS легко и занимает много времени.

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Если ваши http запросы и время обработки сведены к минимуму (менее 15 минут), AWS Lambda - отличный вариант. Необходима конфигурация инфраструктуры ZERO / автомасштабирования, и очень просто запустить и запустить код. Вам просто нужно загрузить свой код на одном из множества языков, а затем добавить триггер, который запускает вашу функцию.

Другой вариант - использовать AWS Batch для распределения заданий по масштабируемому числу экземпляров. Вы должны заполнить очередь пакетных заданий запросами, которые вы хотите сделать для своих экземпляров. Пакетное выполнение затем запускает «задание», передавая команду запуска в контейнер, который запускается на автоматически масштабируемом количестве экземпляров на основе вашего определения задания.

Настройка пакетной среды требует очень минимальной конфигурации (установка максимальных / минимальных значений конфигурации для процессора, памяти и т. Д.), Но для этого требуется, чтобы ваше приложение сохранялось в ECR как образ докера. Как только ваша пакетная среда настроена должным образом, вам потребуется совсем немного конфигурации и обслуживания.

0 голосов
/ 31 октября 2018

В AWS вы можете отделить рабочую нагрузку с помощью очереди SQS. Само по себе это может показаться не очень полезным, но вы также можете создать группу автоматического масштабирования EC2, которая масштабируется в соответствии с увеличением или уменьшением количества сообщений, ожидающих в очереди SQS. Это позволит вам при необходимости увеличить количество экземпляров EC2, а также прекратить их, когда это не так, чтобы сократить расходы. Для получения дополнительной информации вы можете посмотреть здесь: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-using-sqs-queue.html

...