К сожалению, этот гибридный подход к автоматическому масштабированию , по-видимому, не доступен из коробки.
Тем не менее, вы можете обойти это ограничение следующим образом (непроверенный, только системный дизайн, который я некоторое время жонглировал):
Потенциальный обходной путь
Как указано в разделе Использование автоматического масштабирования для запуска спотовых экземпляров , спотовая цена является параметром используемой конфигурации запуска . Как вы указали, гибридная конфигурация запуска недоступна, скорее она должна быть либо по требованию, либо на месте, что означает, что для варианта использования требуются две разные конфигурации запуска.
Это, кажется, не помогает сразу, потому что Вы можете присоединить только одну конфигурацию запуска к группе автоматического масштабирования за один раз со следующими (частично устаревшими) ограничениями (см. Настройка запуска ):
Когда вы присоединяете новую или обновленную конфигурацию запуска к вашей группе автоматического масштабирования, все новые экземпляры будут запускаться с использованием новых параметров конфигурации. Существующие экземпляры не затрагиваются . Когда автоматическое масштабирование необходимо уменьшить, оно сначала завершает экземпляры, которые имеют более старую конфигурацию запуска . [Акцент мой]
Тем не менее, выделенные части являются ключевыми, поскольку первая охватывает требование поддерживать экземпляры по требованию после перехода от соответствующей начальной конфигурации запуска по требованию к дополнительной конфигурации точечного запуска, и последняя больше не обязательно имеет место из-за недавно введенные Политики прекращения автоматического масштабирования (для изменений обычно не было фанфары через сопровождающее сообщение в блоге AWS), задокументированные в Политике прекращения использования экземпляров для вашей группы автоматического масштабирования :
Перед автоматическим масштабированием выбирает экземпляр для завершения, он сначала идентифицирует зону доступности, в которой больше экземпляров, чем в других зонах доступности, используемых группой. Если все зоны доступности имеют одинаковое количество экземпляров, это определяет случайную зону доступности. В пределах указанной зоны доступности автоматическое масштабирование использует политику завершения для выбора экземпляра для завершения . [Акцент мой]
Как описано в разделе Как работает ваша политика завершения , теперь вы можете указать NewestInstance , если вы хотите, чтобы последний запущенный экземпляр был завершен , что будет одним из недавно запущенных спотовых экземпляров:
Автоматическое масштабирование использует время запуска экземпляра, чтобы идентифицировать экземпляр, который был запущен последним.
Очевидно, что это может быть немного больше, например, вы можете либо указать любую из политик как отдельную политику, либо вы можете перечислить несколько политик в упорядоченном списке , но этот подход должен обеспечить загрузку всех экземпляров, учитываемых в автоматическое масштабирование измерений и триггеров ; хотя остается одна оговорка:
Предостережение
Если балансировщик нагрузки завершает работу одного из экземпляров по требованию по любой другой причине (например, потому что он сам по себе стал вредным для здоровья), он не будет автоматически заменен экземпляром по требованию. Поэтому вам необходимо отслеживать и учитывать это событие отдельно, например, снова временно активируя конфигурацию запуска по требованию.
Удачи!