После некоторых поисков я обнаружил, что есть два общепринятых способа управления AS API или AS в целом для рабочих мест:
Один из способов заключается в манипулировании здоровья сервера непосредственно из сам работник. Это то, что делает довольно много сайтов, и это эффективно, когда ваш работник не обнаруживает больше рабочих мест или избыточности в системе, он отмечает, что сервер работает как нездоровый. Таким образом, API AS приходит и автоматически убирает его через некоторое время.
Таким образом, с помощью этого метода вы должны иметь политику масштабирования, основанную на размере очереди SQS, в течение определенного периода времени (например, каждые 5 минут сообщений SQS, содержащих более 100 дополнительных серверов, каждые 10 минут сообщений SQS 500 двойных сетей на 50%). Уменьшение масштаба будет осуществляться с помощью кода вместо активной политики.
Этот метод будет работать с нулевыми кластерами, чтобы вы могли сбрасывать свой кластер до тех пор, пока он не используется, что делает его довольно рентабельным.
Преимущества:
- Простота установки
- Использование функций API AWS
- Вероятно, самый быстрый в установке
- Использование AWS управляемого API для управления размером кластера для вас,
Недостатки:
- Трудно управлять без использования полного AWS API, т. Е. При создании нового сервера вы не можете получить его экземпляр обратно без выполнения полной команды API возврата всех экземпляров экземпляров. Есть и другие случаи, с которыми AWS AS API мешает вам и делает жизнь немного сложнее, если вы хотите элемент самоконтроля над вашим кланом.
- Опираясь на Amazon, чтобы узнать, что лучше для вашего кошелька. Вы полагаетесь на API Amazon для правильной масштабирования, это преимущество для многих, но для кого-то невыгодно.
- Работник должен содержать код вашего пула серверов, означающий, что рабочий не является общим и не может сразу быть перемещен в другой кластер без какого-либо изменения конфигурации.
Имея это в виду, есть второй вариант - DIY. Вы используете экземпляр экземпляра EC2 и API-интерфейс Demand Instance API, чтобы создать свой собственный AS API, основанный на ваших пользовательских правилах. Это довольно просто объяснить:
- У вас есть CLI сценарий, который при запуске начинается, скажем, 10 серверов
- У вас есть cronjob, что при обнаружении утоления определенных условиях падения серверов или взлетов больше
Преимущества:
- простая и чистая, чтобы управлять ваш конец
- Можно сделать общие рабочие
- Пул сервера может начать управлять множеством кластеров
- Вы можете сделать правила и что не совсем сложно получить цифры из метрик на AWS и использовать их со сравнением и диапазонами времени, чтобы понять, должны ли вещи меняться.
Недостатки:
- Трудно получить мульти-регион (не так уж и плохо для SQS, так как SQS является один регионом)
- Трудно иметь дело с ошибками в ресурсном потенциале региона и объемом работы
- Вы должны полагайтесь на свое время безотказной работы серверов и свой собственный код, чтобы гарантировать, что cronjob работает как следует, и предоставляет серверы по мере необходимости и разбивает их, когда это необходимо.
Так что, похоже, битва более удобна для конечного пользователя. Я лично обдумываю двух еще и создал небольшой самодостаточный серверный пул, который мог бы работать для меня, но в то же время у меня возникает соблазн попробовать и заставить это работать над собственным API AWS.
Надеется, что это помогает людям,
EDIT: Обратите внимание, ни с одним из этих методов, вы по-прежнему требуете функций на вашей стороне, чтобы предсказать, как вы должны предложить цену, как таковые вам нужно будет назвать историю ставка API на вашем (тип EC2) и вычислить, как делать ставки.
Другое Изменить: Еще один способ автоматического обнаружения избыточности в системе - проверка пустой метрики ответов для вашей очереди SQS. Это количество раз, когда ваши сотрудники пинговали очередь и не получали ответа. Это довольно эффективно, если вы используете эксклюзивную блокировку в своем приложении на время работы.
Теоретически, не следует ли это работать, если вы пишете сценарий, который заканчивает все задания чистым способом, а затем помещает его в/etc/rc0.d? Я использую AS только для экземпляров веб-сервера, где такие проблемы не имеют большого значения, поэтому я не знаю точно. –
Интересно, так что ваше высказывание я могу остановить AWS от закрытия, добавив rc, что даже возможно, я должен проверить, что – Sammaye
Хотя в принципе это немного жесткое исправление, если оно действительно работает, возможно, мне лучше просто управлять своим масштабированием для рабочих мест? Как вы говорите, вы обычно используете его только для экземпляров веб-сервера – Sammaye