Aceleração do provisionamento de capacidade de clusters do Amazon ECS com provedores de capacidade no Amazon EC2
Os clientes que executam o Amazon ECS no Amazon EC2 podem aproveitar o Ajuste de escala automático de clusters (CAS) do Amazon ECS para gerenciar o ajuste de escala de grupos do Amazon EC2 Auto Scaling (ASG). Com o CAS, você pode configurar o Amazon ECS para escalar o ASG automaticamente e se concentrar apenas na execução das tarefas. O Amazon ECS garantirá que o ASG aumente e reduza a escala horizontalmente conforme necessário, sem necessidade de intervenção adicional. Os provedores de capacidade do Amazon ECS são usados para gerenciar a infraestrutura do cluster ao garantir que haja instâncias de contêiner suficientes para atender às demandas da aplicação. Para saber como o CAS do Amazon ECS funciona, consulte Deep Dive on Amazon ECS Cluster Auto Scaling
Como o CAS depende de uma integração baseada no CloudWatch com o ASG para ajustar a capacidade de clusters, ele tem latência inerente associada à publicação das métricas do CloudWatch, ao tempo que a métrica CapacityProviderReservation
demora para acionar os alarmes do CloudWatch (nos pontos alto e baixo) e ao tempo que uma instância do Amazon EC2 inicializada recentemente demora para aquecer. Você tomar as seguintes medidas para tornar o CAS mais responsivo para implantações mais rápidas:
Tamanhos do ajuste de escala para as etapas do provedor de capacidade
Os provedores de capacidade do Amazon ECS eventualmente aumentarão ou reduzirão as instâncias de contêiner para atender às demandas da aplicação. Por padrão, o número mínimo de instâncias que o Amazon ECS iniciará está definido como um. Isso poderá adicionar mais tempo às implantações, se forem necessárias diversas instâncias para a atribuição das tarefas pendentes. É possível aumentar minimumScalingStepSize
usando a API do Amazon ECS para elevar o número mínimo de instâncias em que o Amazon ECS aumenta ou reduz a escala horizontalmente ao mesmo tempo. Um maximumScalingStepSize
muito baixo pode limitar quantas instâncias de contêiner terão aumento ou redução da escala horizontalmente por vez, o que pode atrasar as implantações.
nota
No momento, essa configuração está disponível somente usando a API CreateCapacityProvider
ou UpdateCapacityProvider
.
Período de aquecimento da instância
O período de aquecimento da instância corresponde ao período após o qual uma instância do Amazon EC2 iniciada recentemente pode contribuir para as métricas do CloudWatch relacionadas ao grupo do Auto Scaling. Depois que o período de aquecimento especificado expirar, a instância será contabilizada nas métricas agregadas do ASG, e o CAS continuará com sua próxima iteração de cálculos para estimar o número de instâncias necessárias.
O valor padrão para instanceWarmupPeriod
é de 300 segundos, e você pode configurar para um valor mais baixo usando a API CreateCapacityProvider
ou UpdateCapacityProvider
para obter um ajuste de escala mais responsivo.
Capacidade não utilizada
Se o provedor de capacidade não tiver instâncias de contêiner disponíveis para a atribuição de tarefas, ele precisará aumentar (aumentar a escala horizontalmente) a capacidade do cluster ao iniciar instâncias do Amazon EC2 rapidamente e aguardar a inicialização antes de iniciar os contêineres nelas. Isso pode reduzir significativamente a taxa de inicialização de tarefas. Você tem duas opções disponíveis para lidar com isso.
Nesse caso, ter a capacidade não utilizada do Amazon EC2 já iniciada e pronta para executar tarefas aumentará a taxa efetiva de inicialização de tarefas. É possível usar a configuração Target
Capacity
para indicar que deseja manter a capacidade não utilizada em seus clusters. Por exemplo, ao definir a Target Capacity
como 80%, você indica que o cluster precisa de 20% de capacidade não utilizada disponível em todos os momentos. Essa capacidade não utilizada pode permitir que qualquer tarefa independente seja iniciada imediatamente, garantindo que a inicialização de tarefas não sofra o controle de utilização. A desvantagem desta abordagem é o potencial aumento dos custos de manutenção da capacidade não utilizada do cluster.
Uma abordagem alternativa que pode ser considerada é adicionar reserva de capacidade ao seu serviço e não ao provedor de capacidade. Isso significa que, em vez de reduzir a configuração Target
Capacity
para iniciar a capacidade não utilizada, é possível aumentar o número de réplicas em seu serviço ao modificar a métrica de ajuste de escala de rastreamento de destino ou os limites de ajuste de escala em etapas do ajuste de escala automático do serviço. Observe que essa abordagem será útil somente para workloads com picos, mas não terá efeito ao implantar novos serviços e escalar de zero a determinado número de tarefas pela primeira vez. Para obter mais informações sobre políticas de escalabilidade relacionadas, consulte Target Tracking Scaling Policies ou Step Scaling Policies