Gerenciar interrupções de instâncias spot
A melhor maneira de lidar com interrupções de instâncias spot e minimizar o impacto na performance ou disponibilidade é arquitetar a aplicação para ser tolerante a falhas. Para fazer isso, você pode aproveitar as recomendações de rebalanceamento de instâncias do EC2 e avisos de interrupção de instâncias spot.
Uma recomendação de rebalanceamento de instâncias do EC2 é um sinal que notifica você quando uma instância spot está em alto risco de interrupção. O sinal oferece a oportunidade de gerenciar proativamente a instância spot antes do aviso de interrupção de dois minutos. Você pode decidir rebalancear sua workload para instâncias spot novas ou existentes que não tenham alto risco de interrupção. Facilitamos o uso desse sinal fornecendo o recurso de rebalanceamento de capacidade em grupos do EC2 Auto Scaling. Para obter mais informações, consulte Rebalanceamento de capacidade do Amazon EC2 Auto Scaling.
Um aviso de interrupção de instância spot é um aviso emitido dois minutos antes de o Amazon EC2 interromper uma instância spot. Se a workload tiver “flexibilidade de tempo”, você poderá configurar as instâncias spot para serem interrompidas ou hibernadas, em vez de serem terminadas, quando forem interrompidas. O Amazon EC2 interrompe ou hiberna automaticamente as instâncias spot em caso de interrupção e as retoma automaticamente quando tivermos capacidade disponível.
Você pode usar a recomendação de rebalanceamento de instância do EC2 e/ou o aviso de interrupção de instância spot para arquitetar a workload tendo em mente a tolerância a falhas. Dessa forma, você poderá capturar notificações e salvar o estado de um trabalho no armazenamento (por exemplo, Amazon S3, Amazon EFS ou Amazon FSx), manter arquivos de log da instância (ou transmiti-las continuamente para uma abordagem mais tolerante a falhas), drenar conexões de um balanceador de carga etc.
Alguns serviços da AWS e de terceiros já lidam com interrupções spot para que você diminua o impacto na aplicação. Por exemplo, o Amazon EKS executando grupos de nós gerenciados com instâncias spot inicia automaticamente nós substitutos do Kubernetes quando uma recomendação de rebalanceamento ou avisos de interrupção são entregues a um nó existente.