Uso de reservas de capacidade com frotas de instância no Amazon EMR - 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á.

Uso de reservas de capacidade com frotas de instância no Amazon EMR

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 obter mais informações, consulte Permissões da estratégia de alocação.

O Amazon EMR oferece suporte a 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, o Amazon EMR avalia todos os grupos de instâncias especificados na solicitação de inicializaçã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. O Amazon EMR provisiona nós de tarefa em grupos de instâncias, começando pelos de menor preço, na zona de disponibilidade selecionada, até que todos os nós de tarefa sejam provisionados. As reservas de capacidade aberta disponíveis que correspondem aos grupos de instâncias são aplicadas automaticamente.

Veja estes casos de uso da lógica de alocação de capacidade do Amazon EMR para usar reservas de capacidade aberta 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, o Amazon EMR inicia capacidade no grupo 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, o Amazon EMR inicia capacidade no grupo 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, o Amazon EMR padronizará a preferência de reserva de capacidade da instância sob demanda como open.

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

Também é possível usar a CLI do Amazon EMR 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 usar primeiro as reservas de capacidade aberta disponíveis ao provisionar um cluster do Amazon EMR. Nesse caso, o Amazon EMR avalia todos os grupos de instâncias com reservas de capacidade especificadas na solicitação de inicialização e usa aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós centrais solicitados. Se nenhum dos grupos de instâncias com reservas de capacidade tiver capacidade suficiente para os nós centrais solicitados, o Amazon EMR retornará para o caso de melhor esforço descrito no tópico anterior. Ou seja, o Amazon EMR reavalia todos os grupos de instâncias especificados na solicitação de inicialização e usa aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós centrais 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. O Amazon EMR provisiona nós de tarefa em grupos de instâncias com reservas de capacidade, começando pelos de menor preço, na zona de disponibilidade selecionada, até que todos os nós de tarefa sejam provisionados. O Amazon EMR usa primeiro as reservas de capacidade aberta disponíveis em cada grupo de instâncias na zona de disponibilidade selecionada e, somente se necessário, usa a estratégia de menor preço para provisionar os nós de tarefa restantes.

Veja estes casos de uso da lógica de alocação de capacidade do Amazon EMR para usar primeiro 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, o Amazon EMR inicia a capacidade no grupo de instâncias com reservas de capacidade aberta disponíveis, independentemente do preço do grupo 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, o Amazon EMR retorna para iniciar os nós centrais usando a estratégia de menor preço com base no 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" } } }

Também é possível usar a CLI do Amazon EMR 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 cluster do Amazon EMR, você pode optar por substituir a estratégia de alocação de menor preço e priorizar usar primeiro as reservas de capacidade direcionada disponíveis. Nesse caso, o Amazon EMR avalia todos os grupos de instâncias com reservas de capacidade direcionadas especificadas na solicitação de inicialização e escolhe aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós centrais solicitados. Se nenhum dos grupos de instâncias com reservas de capacidade direcionada tiver capacidade suficiente para os nós centrais, o Amazon EMR retornará ao caso de melhor esforço descrito anteriormente. Ou seja, o Amazon EMR reavalia todos os grupos de instâncias especificados na solicitação de inicialização e seleciona aquele com o menor preço que tenha capacidade suficiente para iniciar todos os nós centrais 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. O Amazon EMR provisiona nós de tarefa em grupos de instâncias com reservas de capacidade direcionadas, começando pelos de menor preço, na zona de disponibilidade selecionada, até que todos os nós de tarefa sejam provisionados. O Amazon EMR tenta primeiro usar as reservas de capacidade direcionada disponíveis em cada grupo de instâncias na zona de disponibilidade selecionada. Então, somente se necessário, o Amazon EMR usa a estratégia de menor preço para provisionar os nós de tarefa restantes.

Veja estes casos de uso da lógica de alocação de capacidade do Amazon EMR para usar primeiro reservas de capacidade direcionada.

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, o Amazon EMR inicia a capacidade no grupo de instâncias com reservas de capacidade direcionada disponíveis, independentemente do preço do grupo 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 ARN do grupo de recursos.

Também é possível usar a CLI do Amazon EMR para criar um cluster baseado em frota de instâncias usando reservas de capacidade direcionada.

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.

  • Substitui-se arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup pelo ARN do grupo de recursos.

Evitar usar reservas de capacidade aberta disponíveis

Para evitar o uso inesperado de qualquer uma de suas reservas de capacidade abertas ao iniciar um cluster do Amazon EMR, defina a estratégia de alocação sob demanda como lowest-price e CapacityReservationPreference para CapacityReservationOptions como none. Caso contrário, o Amazon EMR definirá open como padrão a preferência de reserva de capacidade da instância sob demanda e tentará usar as reservas de capacidade abertas disponíveis com base no melhor esforço.

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

Também é possível usar a CLI do Amazon EMR para criar um cluster baseado em frota de instâncias sem usar reservas 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