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 Blocksajudam você a reservar instâncias de GPU muito procuradas em uma data futura para suportar suas cargas de trabalho de aprendizado de máquina (ML) de curta duração.

Para obter uma visão geral Capacity Blocks e como eles funcionam, consulte Capacity BlocksML no Guia do usuário do Amazon EC2.

Para começar a usarCapacity Blocks, você cria uma reserva de capacidade em uma zona de disponibilidade específica. Capacity Blockssã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 Blockssó estão disponíveis para determinados tipos de instância do Amazon EC2 e. Regiões da AWS Para obter mais informações, consulte Pré-requisitos no Guia do usuário do 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. O 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 ter mais informações, consulte Escalabilidade programada para o 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 o Amazon EC2 comece a encerrar forçosamente suas instâncias 30 minutos antes do horário de término da reserva do bloco de capacidade. Para ter 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 o Amazon EC2 recuperá-la, 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 ter 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 console do Amazon EC2 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 Imagem de máquina da Amazon (AMI), o tipo de instância e quaisquer outras configurações 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 espaço reservado para entrada do usuário por 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

  • O suporte para só Capacity Blocks 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.

  • Para obter os pré-requisitos e recomendações para o uso de instâncias P5, consulte Comece a usar instâncias P5 no Guia do usuário do Amazon EC2.

  • O Amazon EKS oferece suporte Capacity Blocks ao uso de cargas de trabalho de aprendizado de máquina (ML) de curta duração em clusters do Amazon EKS. Para obter mais informações, consulte Capacity BlocksML no Guia do usuário do Amazon EKS.

  • Você pode usar Capacity Blocks com tipos de instância e regiões compatíveis. No entanto, as reservas de capacidade sob demanda oferecem flexibilidade para reservar capacidade para outros tipos de instâncias e regiões. Para obter um tutorial que mostra como usar a opção de reserva de capacidade sob demanda, consulteReserve capacidade em zonas de disponibilidade específicas com reservas de capacidade .