Usar reservas de capacidade com a frotas de instância - Amazon EMR

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á.

Usar reservas de capacidade com a frotas de instância

Para iniciar frotas de instâncias sob demanda com opções de reserva de capacidade, anexe outras permissões de perfil de serviço que são necessárias para usar as opções de reserva de capacidade. Como as opções de reserva de capacidade devem ser usadas junto com a estratégia de alocação sob demanda, também é necessário incluir as permissões necessárias para a estratégia de alocação em no perfil de serviço e na política gerenciada. Para ter mais informações, consulte Permissões da estratégia de alocação.

A Amazon EMR oferece suporte para reservas de capacidade abertas e direcionadas. Os tópicos a seguir mostram as configurações de frotas de instâncias que você pode usar com a ação RunJobFlow ou o comando create-cluster para iniciar frotas de instâncias usando reservas de capacidade sob demanda.

Usar reservas de capacidade aberta com base no melhor esforço

Se as instâncias sob demanda do cluster corresponderem aos atributos das reservas de capacidade aberta (tipo de instância, plataforma, locação e zona de disponibilidade) disponíveis na conta, as reservas de capacidade serão aplicadas automaticamente. No entanto, o uso das reservas de capacidade não é garantido. Para provisionar o cluster, a Amazon EMR avalia todos os pools de instâncias especificados na solicitação de execução e usa aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós principais solicitados. As reservas de capacidade aberta disponíveis que correspondem ao grupo de instâncias são aplicadas automaticamente. Se as reservas de capacidade aberta disponíveis não corresponderem ao grupos de instâncias, elas permanecerão inutilizadas.

Depois que os nós centrais são provisionados, a zona de disponibilidade é selecionada e corrigida. A Amazon EMR provisiona os nós de tarefas em grupos de instâncias, começando primeiro com os de menor preço, na zona de disponibilidade selecionada, até que todos os nós de tarefas sejam provisionados. As reservas de capacidade aberta disponíveis que correspondem aos grupos de instâncias são aplicadas automaticamente.

A seguir estão os casos de uso da lógica de alocação de EMR capacidade da Amazon para usar reservas de capacidade abertas com base no melhor esforço.

Exemplo 1: o grupo de instâncias de menor preço na solicitação de inicialização tem reservas de capacidade abertas disponíveis

Nesse caso, a Amazon EMR lança capacidade no pool de instâncias de menor preço com instâncias sob demanda. Suas reservas de capacidade aberta disponíveis nesse grupo de instâncias são usadas automaticamente.

Estratégia sob demanda preço mais baixo
Capacidade solicitada 100
Tipo de instância c5.xlarge m5.xlarge r5.xlarge
Reservas de capacidade aberta disponíveis 150 100 100
Preço sob demanda $ $$ $$$
Instâncias provisionadas 100 - -
Reserva de capacidade aberta utilizada 100 - -
Reservas de capacidade aberta disponíveis 50 100 100

Depois que a frota de instâncias for iniciada, você poderá executar describe-capacity-reservations para ver quantas reservas de capacidade não utilizadas restam.

Exemplo 2: o grupo de instâncias de menor preço na solicitação de execução não tem reservas de capacidade abertas disponíveis

Nesse caso, a Amazon EMR lança capacidade no pool de instâncias de menor preço com instâncias sob demanda. No entanto, suas reservas de capacidade aberta permanecem inutilizadas.

Estratégia sob demanda preço mais baixo
Capacidade solicitada 100
Tipo de instância c5.xlarge m5.xlarge r5.xlarge

Reservas de capacidade aberta disponíveis

- - 100
Preço sob demanda $ $$ $$$
Instâncias provisionadas 100 - -
Reserva de capacidade aberta utilizada - - -
Reservas de capacidade aberta disponíveis - - 100

Configurar frotas de instâncias para usar reservas de capacidade aberta com base no melhor esforço

Ao usar a ação RunJobFlow para criar um cluster baseado em frota de instâncias, defina a estratégia de alocação sob demanda para lowest-price e CapacityReservationPreference para as opções de reservas de capacidade como open. Como alternativa, se você deixar esse campo em branco, a Amazon EMR padronizará a preferência de reserva de capacidade da instância sob demanda para. open

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "open" } } }

Você também pode usar a Amazon EMR CLI para criar um cluster baseado em frota de instâncias usando reservas de capacidade aberta.

aws emr create-cluster \ --name 'open-ODCR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=open}}'}

Onde,

  • Substitui-se open-ODCR-cluster pelo nome do cluster usando reservas de capacidade abertas.

  • Substitui-se subnet-22XXXX01 pelo ID da sub-rede.

Usar primeiro as reservas de capacidade aberta

Você pode optar por substituir a estratégia de alocação de menor preço e priorizar o uso das reservas de capacidade aberta disponíveis primeiro ao provisionar um cluster da Amazon. EMR Nesse caso, a Amazon EMR avalia todos os pools de instâncias com reservas de capacidade especificadas na solicitação de lançamento e usa aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós principais solicitados. Se nenhum dos pools de instâncias com reservas de capacidade tiver capacidade suficiente para os nós principais solicitados, a EMR Amazon recorre ao caso de melhor esforço descrito no tópico anterior. Ou seja, a Amazon EMR reavalia todos os pools de instâncias especificados na solicitação de lançamento e usa aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós principais solicitados. As reservas de capacidade aberta disponíveis que correspondem ao grupo de instâncias são aplicadas automaticamente. Se as reservas de capacidade aberta disponíveis não corresponderem ao grupos de instâncias, elas permanecerão inutilizadas.

Depois que os nós centrais são provisionados, a zona de disponibilidade é selecionada e corrigida. A Amazon EMR provisiona os nós de tarefas em grupos de instâncias com reservas de capacidade, começando primeiro com os de menor preço, na zona de disponibilidade selecionada, até que todos os nós da tarefa sejam provisionados. A Amazon EMR usa primeiro as reservas de capacidade aberta disponíveis em cada pool de instâncias na zona de disponibilidade selecionada e, somente se necessário, usa a estratégia de menor preço para provisionar quaisquer nós de tarefas restantes.

A seguir estão os casos de uso da lógica de alocação de EMR capacidade da Amazon para usar primeiro as reservas de capacidade aberta.

Exemplo 1: o grupo de instâncias com reservas de capacidade aberta disponíveis na solicitação de inicialização tem capacidade suficiente para os nós centrais

Nesse caso, a Amazon EMR lança capacidade no pool de instâncias com reservas de capacidade aberta disponíveis, independentemente do preço do pool de instâncias. Como resultado, as reservas de capacidade aberta são usadas sempre que possível, até que todos os nós centrais sejam provisionados.

Estratégia sob demanda preço mais baixo
Capacidade solicitada 100
Estratégia de uso use-capacity-reservations-first
Tipo de instância c5.xlarge m5.xlarge r5.xlarge
Reservas de capacidade aberta disponíveis - - 150
Preço sob demanda $ $$ $$$
Instâncias provisionadas - - 100
Reserva de capacidade aberta utilizada - - 100
Reservas de capacidade aberta disponíveis - - 50

Exemplo 2: o grupo de instâncias com reservas de capacidade aberta disponíveis na solicitação de inicialização não tem capacidade suficiente para os nós centrais

Nesse caso, a Amazon volta EMR a lançar nós principais usando a estratégia de menor preço com o melhor esforço para usar as reservas de capacidade.

Estratégia sob demanda preço mais baixo
Capacidade solicitada 100
Estratégia de uso use-capacity-reservations-first
Tipo de instância c5.xlarge m5.xlarge r5.xlarge
Reservas de capacidade aberta disponíveis 10 50 50
Preço sob demanda $ $$ $$$
Instâncias provisionadas 100 - -
Reserva de capacidade aberta utilizada 10 - -
Reservas de capacidade aberta disponíveis - 50 50

Depois que a frota de instâncias for iniciada, você poderá executar describe-capacity-reservations para ver quantas reservas de capacidade não utilizadas restam.

Configurar frotas de instâncias para usar primeiro reservas de capacidade aberta

Ao usar a ação RunJobFlow para criar um cluster baseado em frota de instâncias, defina a estratégia de alocação sob demanda para lowest-price e UsageStrategy para CapacityReservationOptions como use-capacity-reservations-first.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } } }

Você também pode usar a Amazon EMR CLI para criar um cluster baseado em frota de instâncias usando primeiro as reservas de capacidade.

aws emr create-cluster \ --name 'use-CR-first-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first}}'}

Onde,

  • Substitui-se use-CR-first-cluster pelo nome do cluster usando reservas de capacidade abertas.

  • Substitui-se subnet-22XXXX01 pelo ID da sub-rede.

Usar primeiro as reservas de capacidade direcionadas

Ao provisionar um EMR cluster da Amazon, você pode optar por ignorar a estratégia de alocação de menor preço e priorizar primeiro o uso das reservas de capacidade direcionada disponíveis. Nesse caso, a Amazon EMR avalia todos os pools de instâncias com reservas de capacidade específicas especificadas na solicitação de lançamento e escolhe aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós principais solicitados. Se nenhum dos pools de instâncias com reservas de capacidade direcionadas tiver capacidade suficiente para os nós principais, a EMR Amazon recorre ao caso de melhor esforço descrito anteriormente. Ou seja, a Amazon EMR reavalia todos os pools de instâncias especificados na solicitação de execução e seleciona aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós principais solicitados. As reservas de capacidade aberta disponíveis que correspondem ao grupo de instâncias são aplicadas automaticamente. No entanto, as reservas de capacidade direcionadas permanecem inutilizadas.

Depois que os nós centrais são provisionados, a zona de disponibilidade é selecionada e corrigida. A Amazon EMR provisiona os nós de tarefas em grupos de instâncias com reservas de capacidade direcionadas, começando primeiro com os de menor preço, na zona de disponibilidade selecionada, até que todos os nós da tarefa sejam provisionados. A Amazon EMR tenta primeiro usar as reservas de capacidade direcionada disponíveis em cada pool de instâncias na zona de disponibilidade selecionada. Então, somente se necessário, a Amazon EMR usa a estratégia de menor preço para provisionar quaisquer nós de tarefas restantes.

A seguir estão os casos de uso da lógica de alocação de EMR capacidade da Amazon para usar primeiro as reservas de capacidade direcionadas.

Exemplo 1: O grupo de instâncias com reservas de capacidade direcionada disponíveis na solicitação de inicialização tem capacidade suficiente para os nós centrais

Nesse caso, a Amazon EMR lança capacidade no pool de instâncias com reservas de capacidade direcionadas disponíveis, independentemente do preço do pool de instâncias. Como resultado, as reservas de capacidade direcionada são usadas sempre que possível, até que todos os nós centrais sejam provisionados.

Estratégia sob demanda preço mais baixo
Estratégia de uso use-capacity-reservations-first
Capacidade solicitada 100
Tipo de instância c5.xlarge m5.xlarge r5.xlarge
Reservas de capacidade direcionada disponíveis - - 150
Preço sob demanda $ $$ $$$
Instâncias provisionadas - - 100
Reserva de capacidade direcionada utilizada - - 100
Reservas de capacidade direcionada disponíveis - - 50
exemplo Exemplo 2: o grupo de instâncias com reservas de capacidade direcionada disponíveis na solicitação de inicialização não tem capacidade suficiente para os nós centrais
Estratégia sob demanda preço mais baixo
Capacidade solicitada 100
Estratégia de uso use-capacity-reservations-first
Tipo de instância c5.xlarge m5.xlarge r5.xlarge
Reservas de capacidade direcionada disponíveis 10 50 50
Preço sob demanda $ $$ $$$
Instâncias provisionadas 100 - -
Reservas de capacidade direcionada utilizadas 10 - -
Reservas de capacidade direcionada disponíveis - 50 50

Depois que a frota de instâncias for iniciada, você poderá executar describe-capacity-reservations para ver quantas reservas de capacidade não utilizadas restam.

Configurar frotas de instâncias para usar primeiro reservas de capacidade direcionada

Ao usar a ação RunJobFlow para criar um cluster baseado em frota de instâncias, defina a estratégia de alocação sob demanda como lowest-price, UsageStrategy de CapacityReservationOptions como use-capacity-reservations-first e CapacityReservationResourceGroupArn de CapacityReservationOptions como <your resource group ARN>. Para obter mais informações, consulte Trabalhar com reservas de capacidade no Guia EC2 do usuário da Amazon.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } } }

Onde arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup é substituído pelo seu grupo de recursosARN.

Você também pode usar a Amazon EMR CLI para criar um cluster baseado em frota de instâncias usando reservas de capacidade direcionadas.

aws emr create-cluster \ --name 'targeted-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,\ InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={UsageStrategy=use-capacity-reservations-first,CapacityReservationResourceGroupArn=arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup}}'}

Onde,

  • Substitui-se targeted-CR-cluster pelo nome do cluster usando reservas de capacidade direcionadas.

  • Substitui-se subnet-22XXXX01 pelo ID da sub-rede.

  • arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroupé substituído pelo seu grupo de recursosARN.

Evitar usar reservas de capacidade aberta disponíveis

Se você quiser evitar o uso inesperado de qualquer uma de suas reservas de capacidade aberta ao lançar um EMR cluster da Amazon, defina a estratégia de alocação sob demanda para e paralowest-price. CapacityReservationPreference CapacityReservationOptions none Caso contrário, a Amazon EMR padronizará a preferência de reserva de capacidade da instância sob demanda open e tentará usar as reservas de capacidade aberta disponíveis com base no melhor esforço.

"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } } }

Você também pode usar a Amazon EMR CLI para criar um cluster baseado em frota de instâncias sem usar nenhuma reserva de capacidade aberta.

aws emr create-cluster \ --name 'none-CR-cluster' \ --release-label emr-5.30.0 \ --service-role EMR_DefaultRole \ --ec2-attributes SubnetId=subnet-22XXXX01,InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=c4.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=100,InstanceTypeConfigs=['{InstanceType=c5.xlarge},{InstanceType=m5.xlarge},{InstanceType=r5.xlarge}'],\ LaunchSpecifications={OnDemandSpecification='{AllocationStrategy=lowest-price,CapacityReservationOptions={CapacityReservationPreference=none}}'}

Onde,

  • Substitui-se none-CR-cluster pelo nome do cluster que não está usando reservas de capacidade abertas.

  • Substitui-se subnet-22XXXX01 pelo ID da sub-rede.

Cenários para o uso de reservas de capacidade

Você pode se beneficiar do uso de reservas de capacidade nos cenários a seguir.

Cenário 1: alternar um cluster de execução prolongada usando reservas de capacidade

Ao alternar um cluster de execução prolongada, você poderá ter requisitos rígidos sobre os tipos de instância e as zonas de disponibilidade das novas instâncias provisionadas. Com as reservas de capacidade, você pode usar a garantia de capacidade para concluir a alternância do cluster sem interrupções.

Alternância de clusters usando reservas de capacidade disponíveis
Cenário 2: provisionar clusters sucessivos de curta duração usando reservas de capacidade

Também é possível usar reservas de capacidade para provisionar um grupo de clusters sucessivos e de curta duração para workloads individuais, de forma que, ao encerrar um cluster, o próximo cluster possa usar as reservas de capacidade. Você pode usar reservas de capacidade direcionadas para garantir que apenas os clusters pretendidos usem as reservas de capacidade.

Provisionamento de cluster de curta duração que utiliza reservas de capacidade disponíveis