Esta abordagem híbrida Auto Scaling não parece estar disponível de imediato infelizmente.
No entanto, você pode conseguir contornar essa limitação da seguinte forma (não testado, apenas um design de sistema com o qual já estou fazendo malabarismos por um tempo):
Solução alternativa possível
Conforme destacado em Uso do Auto Scaling para lançar instâncias spot , o lance de preço spot é um parâmetro da Iniciar configuração em uso. Como você apontou, não há nenhuma configuração de inicialização híbrida disponível, mas deve ser sob demanda ou local, o que significa que o caso de uso requer duas configurações de inicialização diferentes.
Isso não parece ajudar imediatamente, porque Você pode anexar apenas uma configuração de ativação a um grupo de Auto Scaling de cada vez , com as seguintes restrições (parcialmente desatualizadas) (consulte Iniciar configuração ):
When you attach a new or updated launch configuration to your Auto
Scaling group, any new instances will be launched using the new
configuration parameters. Existing instances are not affected. When
Auto Scaling needs to scale down, it first terminates instances that
have an older launch configuration. [emphasis mine]
As partes enfatizadas são fundamentais, com a primeira cobrindo o requisito de manter as instâncias sob demanda em funcionamento após a mudança da respectiva configuração inicial de inicialização sob demanda para a configuração adicional de lançamento pontual, e a última não necessariamente sendo o caso mais devido às recentemente introduzidas Políticas de Rescisão do Auto Scaling (para um mudança não tem havido a fanfarra normalmente através de um post de blog AWS acompanhando), documentado em Instância Política de rescisão do seu grupo de escalonamento automático :
Before Auto Scaling selects an instance to terminate, it first
identifies the Availability Zone that has more instances than the
other Availability Zones used by the group. If all Availability Zones
have the same number of instances, it identifies a random Availability
Zone. Within the identified Availability Zone, Auto Scaling uses the
termination policy to select the instance for termination. [emphasis mine]
Conforme destacado em Como funciona sua política de rescisão , agora você pode especificar NewestInstance , se quiser que a última instância ativada seja encerrada , o que seria uma das instâncias spot lançadas mais recentemente:
Auto Scaling uses the instance launch time to identify the instance
that was launched last.
Obviamente, pode haver um pouco mais para isso, por exemplo você pode especificar qualquer uma das políticas como uma política independente ou pode listar várias políticas em uma lista ordenada , mas essa abordagem deve garantir que a carga de todas as instâncias seja fatorada no auto -scalar medições e disparadores ; uma ressalva permanece:
Advertência
Se o balanceador de carga encerrar uma das instâncias on demand por qualquer outro motivo (por exemplo, porque se tornou insalubre por si só), ela não seria substituída automaticamente por uma instância sob demanda. Então, você precisa monitorar e contabilizar esse evento separadamente, por exemplo, ativando temporariamente a configuração de ativação sob demanda novamente.
Boa sorte!