View a markdown version of this page

Tutorial: configurar o CE2 Fleet para iniciar instâncias em vários tipos de reserva de capacidade usando um grupo de recursos de reserva de capacidade. - Amazon Elastic Compute Cloud

Tutorial: configurar o CE2 Fleet para iniciar instâncias em vários tipos de reserva de capacidade usando um grupo de recursos de reserva de capacidade.

Este tutorial explica todas as etapas para configurar um EC2 Fleet que inicie instâncias em vários tipos de reserva de capacidade: reservas de capacidade sob demanda (ODCRs), blocos de capacidade para ML e reservas de capacidade interruptíveis, usando um único grupo de recursos de reserva de capacidade.

Você aprenderá a criar um grupo de recursos de reserva de capacidade que contém diferentes tipos de reserva de capacidade, a configurar o EC2 Fleet para priorizar os tipos de reserva de capacidade em uma ordem específica e, opcionalmente, reverter à capacidade sob demanda quando a capacidade reservada for insuficiente para atingir a meta pretendida.

Considerações

  • Somente as solicitações do EC2 Fleet do tipo instant são compatíveis com o uso de ReservedCapacityOptions.

  • Especifique explicitamente quais são os tipos de reserva de capacidade a serem utilizados na lista ReservationTypes. O EC2 Fleet inicia instâncias somente para os tipos de reserva de capacidade especificados.

  • ReservedCapacityOptions e OnDemandOptions.CapacityReservationOptions são mutuamente exclusivos. Não é possível usar ambos na mesma solicitação do EC2 Fleet.

Este tutorial pressupõe que você já tenha as seguintes reservas de capacidade em sua conta:

  • Uma ODCR (cr-1234567890abcdef1) para p5.48xlarge em us-east-1a

  • Uma ODCR (cr-abcdef1234567890a) para p4d.48xlarge em us-east-1b

  • Um bloco de capacidade (cr-0123456789abcdef0) para p5.48xlarge na us-east-1a

  • Uma reserva de capacidade interruptível (cr-9876543210fedcba9) para p5.48xlarge na us-east-1a, compartilhada com você por outra conta da sua organização

Verificar permissões

Antes de criar um EC2 Fleet, verifique se você tem um perfil do IAM com as permissões necessárias. Para obter mais informações, consulte Pré-requisitos da Frota do EC2.

Etapa 1: criar um grupo de recursos de reserva de capacidade

Crie um grupo de recursos de reserva de capacidade para conter as reservas de capacidade que serão utilizadas pelo EC2 Fleet. Configure o grupo para que aceite reservas de capacidade de qualquer tipo de instância e tipo de reserva de capacidade, o que permite que o grupo mantenha uma combinação de tipos de reserva de capacidade. Para obter instruções detalhadas, consulte Grupos de reserva de capacidade.

nota

Ao criar o grupo, não especifique os parâmetros instance-type ou reservation-type na configuração AWS::EC2::CapacityReservationPool. A omissão desses parâmetros permite que o grupo aceite reservas de capacidade de qualquer tipo de instância e tipo de reserva de capacidade.

Etapa 2: adicionar reservas de capacidade ao grupo

Adicione suas reservas de capacidade ao grupo de recursos de reserva de capacidade. Você pode adicionar qualquer combinação de ODCRs, blocos de capacidade para ML, reservas de capacidade interruptíveis e blocos de capacidade de UltraServer. Para este tutorial, adicione as quatro reservas de capacidade listadas no início. Para obter instruções detalhadas, consulte Grupos de reserva de capacidade.

Etapa 3: criar um modelo de execução

Use o comando create-launch-template para criar um modelo de inicialização que tenha como destino o grupo de recursos de reserva de capacidade. Ao usar ReservedCapacityOptions em sua configuração do EC2 Fleet, você não precisa definir um MarketType no modelo de inicialização. O EC2 Fleet define isso automaticamente para cada tipo de reserva de capacidade.

aws ec2 create-launch-template \ --launch-template-name my-cr-resource-group-template \ --launch-template-data \ '{"ImageId": "ami-0123456789example", "CapacityReservationSpecification": {"CapacityReservationTarget": {"CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"} } }'

Etapa 4: Criar uma Frota EC2

Crie um EC2 Fleet que utilize vários tipos de reserva de capacidade no grupo de recursos de reserva de capacidade. A configuração principal é ReservedCapacityOptions, que especifica o seguinte:

  • ReservationTypes: uma lista ordenada dos tipos de reserva de capacidade a serem utilizados. O EC2 Fleet processa os tipos nessa ordem. Os valores válidos são on-demand-capacity-reservation, capacity-block e interruptible-capacity-reservation.

  • AllocationStrategy: como os tipos de instância são priorizados em cada tipo de reserva de capacidade. Defina como prioritized para seguir a ordem de substituição de tipo de instância.

  • ReservedCapacityFallbackOptions: configure MarketTypes como ["on-demand"] para iniciar instâncias sob demanda quando a capacidade reservada não for suficiente. Se você não especificar opções alternativas, o EC2 Fleet não reverterá a nenhum outro tipo do mercado após os tipos de reserva de capacidade especificados se esgotarem.

Crie um arquivo chamado config.json com o conteúdo a seguir. No exemplo a seguir, substitua os identificadores de recursos pelos seus identificadores de recursos.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-cr-resource-group-template", "Version": "1" }, "Overrides": [ { "InstanceType": "p5.48xlarge", "AvailabilityZone": "us-east-1a", "Priority": 1 }, { "InstanceType": "p4d.48xlarge", "AvailabilityZone": "us-east-1b", "Priority": 2 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 100, "DefaultTargetCapacityType": "reserved-capacity" }, "ReservedCapacityOptions": { "ReservationTypes": ["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation"], "ReservedCapacityFallbackOptions": { "MarketTypes": ["on-demand"] }, "AllocationStrategy": "prioritized" }, "Type": "instant" }

Use o comando create-fleet para iniciar a frota:

aws ec2 create-fleet --cli-input-json file://config.json

Para obter mais informações, consulte Criar uma Frota do EC2..

Como o EC2 Fleet resolve reservas de capacidade

Com base na configuração anterior, o EC2 Fleet tenta iniciar as instâncias na seguinte ordem:

  1. ODCRs: primeiro as reservas de p5.48xlarge (o tipo de instância de maior prioridade) e depois as reservas de p4d.48xlarge. Dentro de cada tipo de instância, se existirem várias ODCRs, uma delas será selecionada aleatoriamente.

  2. Blocos de capacidade: se não houver mais capacidade disponível em nenhuma ODCR, o EC2 Fleet utilizará os blocos de capacidade. Primeiro as reservas de p5.48xlarge e depois de p4d.48xlarge, selecionadas aleatoriamente em cada tipo de instância.

  3. Reservas de capacidade interruptíveis: se não houver mais nenhuma capacidade disponível em nenhum bloco de capacidade, o EC2 Fleet utilizará as reservas de capacidade interruptíveis. Primeiro as reservas de p5.48xlarge e depois de p4d.48xlarge, selecionadas aleatoriamente em cada tipo de instância.

  4. Reversão a sob demanda: se a capacidade reservada não for suficiente para atingir a meta de 100 instâncias, a capacidade restante será iniciada como instâncias sob demanda. O EC2 Fleet inicia essas instâncias sob demanda de acordo com a estratégia de alocação especificada em OnDemandOptions.

nota

O EC2 Fleet resolve primeiro o tipo de reserva de capacidade e, em seguida, o tipo de instância dentro de cada tipo de reserva de capacidade. Cada tipo de reserva de capacidade é totalmente esgotado antes que o EC2 Fleet passe para o próximo tipo da lista ordenada.

(Opcional) Etapa 5: verificar as propriedades da instância

Use o comando describe-instances para verificar qual foi o tipo de Reserva de Capacidade consumido por cada instância. As instâncias iniciadas pela frota exibem as seguintes propriedades.

Propriedade Valor da reserva de capacidade sob demanda Valor do bloco de capacidade Valor da reserva de capacidade interruptível Valor da capacidade sob demanda
instance-lifecycle null capacity-block interruptible-capacity-reservation null
capacity-reservation-id ID da reserva de capacidade consumida ID da reserva de capacidade consumida ID da reserva de capacidade consumida Não está presente
capacity-reservation-specification ARN do grupo ARN do grupo ARN do grupo Não está presente

Você pode filtrar instâncias por grupo de recursos de reserva de capacidade usando o seguinte comando:

aws ec2 describe-instances \ --filters "Name=capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn,Values=arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"

Fazer a limpeza.

Para parar de incorrer em cobranças, encerre as instâncias quando elas não forem mais necessárias. Observe que as instâncias iniciadas em blocos de capacidade são automaticamente encerradas quando a reserva do bloco de capacidade termina. As instâncias executadas em reservas de capacidade interrompíveis serão encerradas automaticamente se o proprietário da capacidade a reclamar.