Exemplo de configurações da CLI para frotas do EC2
Você pode definir a configuração da frota do EC2 em um arquivo JSON e, em seguida, referenciar esse arquivo com o comando create-fleet da AWS CLI para criar a frota, da seguinte maneira:
aws ec2 create-fleet --cli-input-json file://
file_name.json
Os exemplos a seguir ilustram as configurações de inicialização para vários casos de uso de frotas do EC2. Para obter mais informações sobre os parâmetros de configuração, consulte create-fleet na Referência de comandos da AWS CLI.
Exemplos
- Exemplo 1: Executar Instâncias spot como a opção de compra padrão
- Exemplo 2: Executar Instâncias on-demand como a opção de compra padrão
- Exemplo 3: Executar Instâncias on-demand como a capacidade principal
- Exemplo 4: Iniciar Instâncias sob demanda usando várias Reservas de Capacidade
- Exemplo 5: Iniciar Instâncias sob demanda usando Reservas de Capacidade quando a capacidade total de destino for maior que o número de Reservas de Capacidade não utilizadas
- Exemplo 6: Iniciar Instâncias sob demanda usando Reservas de Capacidade direcionadas
- Exemplo 7: Configurar o rebalanceamento de capacidade para executar a Instâncias spot de substituição
- Exemplo 8: iniciar instâncias spot em uma frota otimizada para capacidade
- Exemplo 9: iniciar instâncias spot em uma frota otimizada para capacidade com prioridades
- Exemplo 10: iniciar instâncias spot em uma frota otimizada para preço-capacidade
- Exemplo 11: configurar a seleção de tipo de instância baseada em atributos
Para obter mais exemplos da CLI para frotas do tipo instant
, consulte Configurar um EC2 Fleet do tipo instant.
Exemplo 1: Executar Instâncias spot como a opção de compra padrão
O exemplo a seguir especifica os parâmetros mínimos necessários em uma Frota do EC2: um modelo de execução, a capacidade de destino e a opção de compra padrão. O modelo de execução é identificado pelo ID do seu modelo de execução e o número da versão. A capacidade de destino da frota é de 2 instâncias, e a opção de compra padrão é spot
. Isso faz com que a frota execute duas Instâncias spot.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" } }
Exemplo 2: Executar Instâncias on-demand como a opção de compra padrão
O exemplo a seguir especifica os parâmetros mínimos necessários em uma Frota do EC2: um modelo de execução, a capacidade de destino e a opção de compra padrão. O modelo de execução é identificado pelo ID do seu modelo de execução e o número da versão. A capacidade de destino da frota é de 2 instâncias, e a opção de compra padrão é on-demand
. Isso faz com que a frota execute duas Instâncias on-demand.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "on-demand" } }
Exemplo 3: Executar Instâncias on-demand como a capacidade principal
O exemplo a seguir especifica a capacidade total de destino de duas instâncias para a frota e uma capacidade de destino de uma instância sob demanda. A opção de compra padrão é spot
. A frota executa uma instância sob demanda, conforme especificado, mas precisa executar mais uma instância para atender à capacidade total desejada. A opção de compra para a diferença é calculada como TotalTargetCapacity
– OnDemandTargetCapacity
= DefaultTargetCapacityType
, o que resulta na frota executando uma instância spot.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" } } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 2, "OnDemandTargetCapacity": 1, "DefaultTargetCapacityType": "spot" } }
Exemplo 4: Iniciar Instâncias sob demanda usando várias Reservas de Capacidade
É possível configurar uma frota para usar Reservas de capacidade sob demanda primeiro ao iniciar Instâncias on-demand definindo a estratégia de uso para Reservas de capacidade como use-capacity-reservations-first
. Este exemplo demonstra como a frota seleciona as Reservas de Capacidade a serem usadas quando há mais Reservas de Capacidade do que o necessário para atender à capacidade de destino.
Neste exemplo, a configuração da frota é a seguinte:
-
Capacidade de destino: 12 Instâncias sob demanda
-
Total de Reservas de Capacidade não utilizadas: 15 (mais do que a capacidade de destino da frota de 12 Instâncias sob demanda)
-
Número de grupos de Reservas de capacidade: 3 (
m5.large
,m4.xlarge
em4.2xlarge
) -
Número de Reservas de Capacidade por grupo: 5
-
Estratégia de alocação sob demanda:
lowest-price
(Quando há várias Reservas de Capacidade não utilizadas em vários grupos de instâncias, a frota determina os grupos nos quais as Instâncias sob demanda serão iniciadas com base na estratégia de alocação sob demanda.)Observe que você também pode usar a estratégia de alocação
prioritized
em vez da estratégia de alocaçãolowest-price
.
Reservas de capacidade
A conta tem as 15 Reservas de Capacidade não utilizadas a seguir em 3 grupos diferentes. O número de Reservas de capacidade em cada grupo é indicado por AvailableInstanceCount
.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }
Configuração da frota
A configuração de frota a seguir mostra somente as configurações pertinentes a este exemplo. A capacidade de destino total é de 12 e o tipo de capacidade de destino padrão é on-demand
. A estratégia de alocação sob demanda é lowest-price
. A estratégia de uso para Reservas de Capacidade é use-capacity-reservations-first
.
Neste exemplo, o preço da instância sob demanda é:
-
m5.large
– 0,096 USD por hora -
m4.xlarge
– 0,20 USD por hora -
m4.2xlarge
– 0,40 USD por hora
nota
O tipo da frota deve ser do tipo instant
. Outros tipos de frota não são compatíveis com use-capacity-reservations-first
.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-abc1234567example", "Version": "1" }, "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 12, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }
Depois de criar a frota instant
usando a configuração anterior, as 12 instâncias a seguir serão executadas para atender à capacidade de destino:
-
5
m5.large
Instâncias sob demanda emus-east-1a
–m5.large
emus-east-1a
é o preço mais baixo, e há 5 Reservas de Capacidadem5.large
disponíveis não utilizadas -
5
m4.xlarge
Instâncias sob demanda emm4.xlarge
–us-east-1a
em us-east-1a é o próximo preço mais baixo, e há 5 Reservas de Capacidadem4.xlarge
não utilizadas disponíveis -
2 Instâncias sob demanda
m4.2xlarge
em us-east-1a –m4.2xlarge
emus-east-1a
é o terceiro preço mais baixo, e existem 5 Reservas de Capacidadem4.2xlarge
não utilizadas disponíveis, das quais somente 2 são necessárias para atender à capacidade de destino
Depois que a frota for lançada, você poderá executar describe-capacity-reservations para ver quantas Reservas de capacidade não utilizadas restam. Neste exemplo, você deve ver a resposta a seguir, que mostra que todas as Reservas de Capacidade m5.large
e m4.xlarge
foram usadas, com 3 Reservas de Capacidade m4.2xlarge
restantes não utilizadas.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 3 }
Exemplo 5: Iniciar Instâncias sob demanda usando Reservas de Capacidade quando a capacidade total de destino for maior que o número de Reservas de Capacidade não utilizadas
É possível configurar uma frota para usar Reservas de capacidade sob demanda primeiro ao iniciar Instâncias on-demand definindo a estratégia de uso para Reservas de capacidade como use-capacity-reservations-first
. Este exemplo demonstra como a frota seleciona os grupos de instâncias nos quais iniciar Instâncias sob demanda quando a capacidade total de destino excede o número de Reservas de Capacidade não utilizadas disponíveis.
Neste exemplo, a configuração da frota é a seguinte:
-
Capacidade de destino: 16 Instâncias sob demanda
-
Total de Reservas de Capacidade não utilizadas: 15 (menor que a capacidade de destino da frota de 16 Instâncias sob demanda)
-
Número de grupos de Reservas de capacidade: 3 (
m5.large
,m4.xlarge
em4.2xlarge
) -
Número de Reservas de Capacidade por grupo: 5
-
Estratégia de alocação sob demanda:
lowest-price
(Quando o número de Reservas de Capacidade não utilizadas for menor que a capacidade de destino sob demanda, a frota determina os grupos nos quais iniciar a capacidade sob demanda restante com base na estratégia de alocação sob demanda.)Observe que você também pode usar a estratégia de alocação
prioritized
em vez da estratégia de alocaçãolowest-price
.
Reservas de capacidade
A conta tem as 15 Reservas de Capacidade não utilizadas a seguir em 3 grupos diferentes. O número de Reservas de capacidade em cada grupo é indicado por AvailableInstanceCount
.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 5, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount":5, "InstanceMatchCriteria": "open", "State": "active" }
Configuração da frota
A configuração de frota a seguir mostra somente as configurações pertinentes a este exemplo. A capacidade de destino total é de 16 e o tipo de capacidade de destino padrão é on-demand
. A estratégia de alocação sob demanda é lowest-price
. A estratégia de uso para Reservas de Capacidade é use-capacity-reservations-first
.
Neste exemplo, o preço da instância sob demanda é:
-
m5.large – 0,096 USD por hora
-
m4.xlarge – 0,20 USD por hora
-
m4.2xlarge – 0,40 USD por hora
nota
O tipo da frota deve ser instant
. Outros tipos de frota não são compatíveis com use-capacity-reservations-first
.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-0e8c754449b27161c", "Version": "1" }, "Overrides": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 }, { "InstanceType": "m4.2xlarge", "AvailabilityZone": "us-east-1a", "WeightedCapacity": 1 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 16, "DefaultTargetCapacityType": "on-demand" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant", }
Depois de criar a frota instant
usando a configuração anterior, as 16 instâncias a seguir serão executadas para atender à capacidade de destino:
-
6 Instâncias sob demanda
m5.large
emus-east-1a
–m5.large
emus-east-1a
é o preço mais baixo, e há 5 Reservas de Capacidadem5.large
disponíveis não utilizadas As Reservas de Capacidade são usadas primeiro para iniciar 5 Instâncias sob demanda. Depois das Reservas de Capacidadem4.xlarge
em4.2xlarge
restantes serem usadas, para atender à capacidade de destino, uma instância sob demanda adicional é iniciada, de acordo com a estratégia de alocação sob demanda, que élowest-price
neste exemplo. -
5
m4.xlarge
Instâncias sob demanda emus-east-1a
–m4.xlarge
emus-east-1a
é o próximo preço mais baixo, e há 5 Reservas de Capacidadem4.xlarge
disponíveis não utilizadas -
5
m4.2xlarge
Instâncias sob demanda emus-east-1a
–m4.2xlarge
emus-east-1a
é o terceiro preço mais baixo, e há 5 Reservas de Capacidadem4.2xlarge
disponíveis não utilizadas
Depois que a frota for lançada, você poderá executar describe-capacity-reservations para ver quantas Reservas de capacidade não utilizadas restam. Neste exemplo, você deve ver a resposta a seguir, que mostra que todas as Reservas de capacidade foram usadas em todos os grupos.
{ "CapacityReservationId": "cr-111", "InstanceType": "m5.large", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "m4.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-333", "InstanceType": "m4.2xlarge", "AvailableInstanceCount": 0 }
Exemplo 6: Iniciar Instâncias sob demanda usando Reservas de Capacidade direcionadas
É possível configurar uma frota para usar Reservas de Capacidade targeted
sob demanda primeiro ao iniciar Instâncias sob demanda definindo a estratégia de uso para Reservas de Capacidade como use-capacity-reservations-first
. Este exemplo demonstra como iniciar Instâncias sob demanda nas Reservas de Capacidade targeted
, com os atributos das Reservas de Capacidade sendo os mesmos, exceto para suas Zonas de Disponibilidade (us-east-1a
e us-east-1b
). Ele também demonstra como a frota seleciona os grupos de instâncias nos quais iniciar Instâncias sob demanda quando a capacidade total de destino excede o número de Reservas de Capacidade não utilizadas disponíveis.
Neste exemplo, a configuração da frota é a seguinte:
-
Capacidade de destino: 10 Instâncias sob demanda
-
Total de Reservas de Capacidade
targeted
não utilizadas: 6 (menor que a capacidade de destino sob demanda da frota de 10 Instâncias sob demanda) -
Número de grupos de Reservas de capacidade: 2 (
us-east-1a
eus-east-1b
) -
Número de Reservas de Capacidade por grupo: 3
-
Estratégia de alocação sob demanda:
lowest-price
(Quando o número de Reservas de Capacidade não utilizadas for menor que a capacidade de destino sob demanda, a frota determina os grupos nos quais iniciar a capacidade sob demanda restante com base na estratégia de alocação sob demanda.)Observe que você também pode usar a estratégia de alocação
prioritized
em vez da estratégia de alocaçãolowest-price
.
Para obter uma demonstração dos procedimentos que você deve executar para realizar este exemplo, consulte Tutorial: configurar o EC2 Fleet para executar instâncias sob demanda usando reservas de capacidade direcionadas.
Reservas de capacidade
A conta tem as 6 Reservas de Capacidade não utilizadas a seguir em 2 grupos diferentes. Neste exemplo, os grupos diferem de acordo com suas Zonas de disponibilidade. O número de Reservas de capacidade em cada grupo é indicado por AvailableInstanceCount
.
{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1b", "AvailableInstanceCount": 3, "InstanceMatchCriteria": "open", "State": "active" }
Configuração da frota
A configuração de frota a seguir mostra somente as configurações pertinentes a este exemplo. A capacidade de destino total é de 10 e o tipo de capacidade de destino padrão é on-demand
. A estratégia de alocação sob demanda é lowest-price
. A estratégia de uso para Reservas de Capacidade é use-capacity-reservations-first
.
Neste exemplo, o preço da instância sob demanda para c5.xlarge
em us-east-1
é 0,17 USD por hora.
nota
O tipo da frota deve ser instant
. Outros tipos de frota não são compatíveis com use-capacity-reservations-first
.
{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "
my-launch-template
", "Version": "1" }, "Overrides": [ { "InstanceType": "c5.xlarge
", "AvailabilityZone": "us-east-1a
" }, { "InstanceType": "c5.xlarge
", "AvailabilityZone": "us-east-1b
" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity":10
, "DefaultTargetCapacityType": "on-demand
" }, "OnDemandOptions": { "AllocationStrategy": "lowest-price
", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } }, "Type": "instant" }
Depois de criar a frota instant
usando a configuração anterior, as 10 instâncias a seguir serão iniciadas para atender à capacidade de destino:
-
As Reservas de Capacidade são usadas primeiro para iniciar 6 Instâncias sob demanda da seguinte maneira:
-
3 Instâncias sob demanda são iniciadas nas 3
c5.xlarge
Reservas de Capacidadetargeted
nous-east-1a
-
3 Instâncias sob demanda são iniciadas nas 3
c5.xlarge
Reservas de Capacidadetargeted
nous-east-1b
-
-
Para atender à capacidade de destino, 4 Instâncias sob demanda adicionais são iniciadas na capacidade sob demanda regular de acordo com a estratégia de alocação sob demanda, que é
lowest-price
neste exemplo. No entanto, como os grupos têm o mesmo preço (porque o preço é por região e não por zona de disponibilidade), a frota inicia as 4 Instâncias sob demanda restantes em qualquer um dos grupos.
Depois que a frota for lançada, você poderá executar describe-capacity-reservations para ver quantas Reservas de capacidade não utilizadas restam. Neste exemplo, você deve ver a resposta a seguir, que mostra que todas as Reservas de capacidade foram usadas em todos os grupos.
{ "CapacityReservationId": "cr-111", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 } { "CapacityReservationId": "cr-222", "InstanceType": "c5.xlarge", "AvailableInstanceCount": 0 }
Exemplo 7: Configurar o rebalanceamento de capacidade para executar a Instâncias spot de substituição
O exemplo a seguir configura a EC2 Fleet para executar uma Instância spot de substituição quando o Amazon EC2 emite uma recomendação de rebalanceamento para uma Instância spot na frota. Para configurar a substituição automática da Instâncias spot, para ReplacementStrategy
, especifique launch-before-terminate
. Para configurar o tempo de espera entre o lançamento das novas instâncias spot substitutas até a exclusão automática das instâncias spot antigas, para termination-delay
, especifique um valor em segundos. Para ter mais informações, consulte Opções de configuração.
nota
Recomendamos só usar launch-before-terminate
se você puder prever quanto tempo os procedimentos de desligamento da instância levarão, de modo que as instâncias antigas só sejam terminadas após a conclusão desses procedimentos. Você é cobrado por todas as instâncias enquanto elas estão sendo executadas.
A eficácia da estratégia de rebalanceamento de capacidade depende do número de grupos de capacidade spot especificados na solicitação de Frota do EC2. Recomendamos que você configure a frota com um conjunto diversificado de tipos de instância e zonas de disponibilidade e para AllocationStrategy
especifique capacity-optimized
. Para obter mais informações sobre o que você deve considerar ao configurar uma Frota do EC2 para rebalanceamento de capacidade, consulte Use o rebalanceamento de capacidade na frota do EC2 e na frota spot para substituir instâncias spot em risco.
{ "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "LaunchTemplate", "Version": "1" }, "Overrides": [ { "InstanceType": "c3.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c4.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } }, { "InstanceType": "c5.large", "WeightedCapacity": 1, "Placement": { "AvailabilityZone": "us-east-1a" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 5, "DefaultTargetCapacityType": "spot" }, "SpotOptions": { "AllocationStrategy": "capacity-optimized", "MaintenanceStrategies": { "CapacityRebalance": { "ReplacementStrategy": "launch-before-terminate", "TerminationDelay": "720" } } } }
Exemplo 8: iniciar instâncias spot em uma frota otimizada para capacidade
O exemplo a seguir demonstra como configurar uma EC2 Fleet com uma estratégia de alocação spot que otimiza a capacidade. Para otimizar a capacidade, você deve definir AllocationStrategy
como capacity-optimized
.
No exemplo a seguir, as três especificações de lançamento especificam três grupos de capacidade spot. A capacidade pretendida é de 50 Instâncias spot. A EC2 Fleet tenta iniciar 50 instâncias spot no grupo de capacidade spot com a capacidade ideal para o número de instâncias em execução.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized", }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" } }
Exemplo 9: iniciar instâncias spot em uma frota otimizada para capacidade com prioridades
O exemplo a seguir demonstra como configurar uma EC2 Fleet com uma estratégia de alocação spot que otimiza a capacidade enquanto usa a prioridade com base no melhor esforço.
Ao usar a estratégia de alocação capacity-optimized-prioritized
, você pode usar o parâmetro Priority
para especificar as prioridades dos grupos de capacidade spot, em que quanto menor o número, maior a prioridade. Você também pode definir a mesma prioridade para vários grupos de capacidade spot se você favorecê-los igualmente. Se você não definir uma prioridade para um grupo, ele será considerado o último em termos de prioridade.
Para priorizar grupos de capacidade spot, você deve definir AllocationStrategy
como capacity-optimized-prioritized
. A EC2 Fleet otimizará a capacidade primeiro, mas se empenhará em honrar as prioridades (por exemplo, se honrar as prioridades não afetará significativamente a capacidade da EC2 Fleet de provisionar a capacidade ideal). Essa é uma boa opção para workloads em que a possibilidade de interrupção deve ser minimizada e a preferência por determinados tipos de instância for importante.
No exemplo a seguir, as três especificações de lançamento especificam três grupos de capacidade spot. Cada grupo é priorizado, onde quanto menor o número, maior a prioridade. A capacidade pretendida é de 50 Instâncias spot. A EC2 Fleet tenta executar 50 instâncias Spot no grupo de capacidade spot com a maior prioridade com base no melhor esforço, mas otimiza a capacidade em primeiro lugar.
{ "SpotOptions": { "AllocationStrategy": "capacity-optimized-prioritized" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Priority": 1, "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Priority": 2, "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Priority": 3, "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "DefaultTargetCapacityType": "spot" }
Exemplo 10: iniciar instâncias spot em uma frota otimizada para preço-capacidade
O exemplo a seguir demonstra como configurar uma Frota EC2 com uma estratégia de alocação spot que otimize tanto para capacidade quanto por menor preço. Para otimizar para capacidade e levar em consideração o preço, você deve definir a AllocationStrategy
de spot como price-capacity-optimized
.
No exemplo a seguir, as três especificações de lançamento especificam três grupos de capacidade spot. A capacidade pretendida é de 50 Instâncias spot. A frota do EC2 tenta iniciar 50 instâncias spot no grupo de capacidade spot com a capacidade ideal para o número de instâncias que estão sendo iniciadas e, ao mesmo tempo, escolher o grupo com menor preço.
{ "SpotOptions": { "AllocationStrategy": "price-capacity-optimized", "MinTargetCapacity": 2, "SingleInstanceType": true }, "OnDemandOptions": { "AllocationStrategy": "lowest-price" }, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template", "Version": "1" }, "Overrides": [ { "InstanceType": "r4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2a" }, }, { "InstanceType": "m4.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" }, }, { "InstanceType": "c5.2xlarge", "Placement": { "AvailabilityZone": "us-west-2b" } } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 50, "OnDemandTargetCapacity":0, "SpotTargetCapacity":50, "DefaultTargetCapacityType": "spot" }, "Type": "instant" }
Exemplo 11: configurar a seleção de tipo de instância baseada em atributos
O exemplo a seguir demonstra como configurar uma Frota do EC2 para usar a seleção de tipo de instância baseada em atributos para identificar tipos de instância. Para especificar os atributos de instância necessários, especifique os atributos na estrutura InstanceRequirements
.
No exemplo a seguir, dois atributos de instância são especificados:
-
VCpuCount
: é especificado um mínimo de 2 vCPUs. Como nenhum máximo é especificado, não há limite máximo. -
MemoryMiB
: é especificado um mínimo de 4 MiB de memória. Como nenhum máximo é especificado, não há limite máximo.
Qualquer tipo de instância que tenha 2 ou mais vCPUs e 4 MiB ou mais de memória será identificado. Porém, a estratégia proteção de preços e de alocação pode excluir alguns tipos de instância quando a Frota do EC2 provisiona a frota.
Para obter uma lista e descrições de todos os atributos que você pode especificar, consulte InstanceRequirements na Amazon EC2 API Reference (Referência de API do Amazon EC2).
{ "SpotOptions": { "AllocationStrategy": "
price-capacity-optimized
" }, "LaunchTemplateConfigs": [{ "LaunchTemplateSpecification": { "LaunchTemplateName": "my-launch-template
", "Version": "" }, "Overrides": [{ "InstanceRequirements": { "VCpuCount": { "Min":
1
2
}, "MemoryMiB": { "Min":4
} } }] }], "TargetCapacitySpecification": { "TotalTargetCapacity":20
, "DefaultTargetCapacityType": "spot
" }, "Type": "instant
" }