Use Capacity Blocks para cargas de trabalho de aprendizado de máquina - Amazon EC2 Auto Scaling

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Use Capacity Blocks para cargas de trabalho de aprendizado de máquina

Capacity Blocks ajudam você a reservar GPU instâncias muito procuradas em uma data futura para suportar suas cargas de trabalho de aprendizado de máquina (ML) de curta duração.

Para uma visão geral do Capacity Blocks e como eles funcionam, veja Capacity Blocks para ML no Guia do EC2 usuário da Amazon.

Para começar a usar Capacity Blocks, você cria uma reserva de capacidade em uma zona de disponibilidade específica. Capacity Blocks são entregues como reservas targeted de capacidade em uma única zona de disponibilidade. Ao criar seu modelo de execução, especifique o ID de reserva e o tipo de instância do Capacity Block. Em seguida, atualize seu grupo de Auto Scaling para usar o modelo de lançamento que você criou e a zona de disponibilidade do Capacity Block. Quando sua reserva de bloco de capacidade começar, use a escalabilidade programada para iniciar o mesmo número de instâncias que sua reserva de bloco de capacidade.

Importante

Capacity Blocks só estão disponíveis para determinados tipos de EC2 instância da Amazon Regiões da AWS e. Para obter mais informações, consulte Pré-requisitos no Guia do usuário da Amazon EC2.

Diretrizes operacionais

As diretrizes operacionais básicas a seguir devem ser seguidas por você ao usar um bloco de capacidade com um grupo do Auto Scaling.

  • Reduza a escala horizontalmente do seu grupo do Auto Scaling até zero mais de 30 minutos antes do horário de término da reserva do bloco de capacidade. A Amazon EC2 encerrará todas as instâncias que ainda estiverem em execução 30 minutos antes do horário final do Bloco de Capacidade.

  • Recomendamos que você use a escalabilidade programada para expandir (adicionar instâncias) e aumentar a escala (remover instâncias) nos horários de reserva apropriados. Para obter mais informações, consulte Escalabilidade programada para Amazon EC2 Auto Scaling.

  • Adicione ganchos do ciclo de vida conforme necessário para realizar um desligamento suave do seu aplicativo dentro das instâncias durante a redução da escala horizontalmente. Deixe tempo suficiente para que a ação do ciclo de vida seja concluída antes que a Amazon EC2 comece a encerrar forçosamente suas instâncias 30 minutos antes do horário de término da reserva do Capacity Block. Para obter mais informações, consulte Ganchos do ciclo de vida do Amazon EC2 Auto Scaling.

  • Certifique-se de que o grupo do Auto Scaling aponte para a versão correta do modelo de execução durante toda a duração da reserva. Recomendamos apontar para uma versão específica do modelo de execução em vez da versão $Default ou $Latest.

nota

Se você deixar uma instância do Bloco de Capacidade em execução até o final da reserva e a Amazon a EC2 recuperar, as atividades de escalabilidade do seu grupo de Auto Scaling indicarão que ela foi "taken out of service in response to an EC2 health check that indicated it had been terminated or stopped“, mesmo que tenha sido recuperada propositalmente no final do Bloco de Capacidade. Da mesma forma, o Amazon EC2 Auto Scaling tentará substituir a instância da mesma forma que faz com qualquer instância que falhe em uma verificação de saúde. Para obter mais informações, consulte Verificações de integridade para instâncias em um grupo do Auto Scaling.

Especificar um bloco de capacidade em seu modelo de execução

Para criar um modelo de lançamento que tenha como alvo um bloco de capacidade específico para seu grupo de Auto Scaling, use um dos seguintes métodos:

Console
Para especificar um bloco de execução no seu modelo de execução (console)
  1. Abra o EC2 console da Amazon em https://console.aws.amazon.com/ec2/.

  2. Na barra de navegação superior, selecione Região da AWS onde você criou seu Bloco de Capacidade.

  3. No painel de navegação, escolha Instances e, em seguida, Launch Templates.

  4. Escolha Criar modelo de lançamento e crie o modelo de lançamento. Inclua o ID da Amazon Machine Image (AMI), o tipo de instância e quaisquer outras configurações do modelo de execução, conforme necessário.

  5. Amplie a seção Detalhes avançados para ver as configurações avançadas.

  6. Para a Opção de compra, escolha Blocos de capacidade.

  7. Em Reserva de Capacidade, escolha Destino por ID e, em seguida, em Reserva de Capacidade - Destino por ID, escolha o ID de Reserva de Capacidade de um bloco de capacidade existente.

  8. Quando terminar, selecione Criar modelo de execução.

    Para obter ajuda na criação de um grupo de Auto Scaling com um modelo de lançamento, consulte. Criar um grupo do Auto Scaling usando um modelo de execução

AWS CLI
Para especificar um bloco de capacidade em seu modelo de execução (AWS CLI)

Use o create-launch-templatecomando a seguir para criar um modelo de lançamento que especifica uma ID de reserva existente do Bloco de Capacidade. Substitua cada user input placeholder com suas próprias informações.

aws ec2 create-launch-template --launch-template-name my-template-for-capacity-block \ --version-description AutoScalingVersion1 --region us-east-2 \ --launch-template-data file://config.json
dica

Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.

Conteúdo de config.json.

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "p4d.24xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

O seguinte é um exemplo de saída.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Você pode usar o describe-launch-template-versionscomando a seguir para verificar o ID de reserva do Capacity Block associado ao modelo de lançamento.

aws ec2 describe-launch-template-versions --launch-template-names my-template-for-capacity-block \ --region us-east-2

A seguir está um exemplo de saída de um modelo de execução que especifica uma reserva de bloco de capacidade.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "VersionNumber": 1, "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "p5.48xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } } } ] }

Limitações

  • Suporte para Capacity Blocks só está disponível se seu grupo de Auto Scaling tiver uma configuração compatível. Não há suporte para grupos de instâncias mistas e pools aquecidos.

  • Você só pode atingir um Bloco de Capacidade por vez.