Utilizzo di prenotazioni della capacità con parchi istanze - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di prenotazioni della capacità con parchi istanze

Per avviare parchi istanze on demand con opzioni di prenotazione della capacità, allega autorizzazioni aggiuntive per il ruolo di servizio necessarie per utilizzare le opzioni di prenotazione della capacità. Poiché le opzioni di prenotazione della capacità devono essere utilizzate insieme alla strategia di allocazione on demand, è necessario includere anche le autorizzazioni necessarie per la strategia di allocazione nel ruolo di servizio e nella policy gestita. Per ulteriori informazioni, consulta Autorizzazioni della strategia di allocazione.

Amazon EMR supporta prenotazioni della capacità aperte e mirate. Negli argomenti seguenti vengono illustrate le configurazioni dei gruppi di istanze che è possibile utilizzare con l'operazione RunJobFlow o il comando create-cluster per avviare parchi istanze mediante prenotazioni della capacità on demand.

Utilizzo delle prenotazioni della capacità aperte in base al miglior tentativo

Se le istanze on demand del cluster corrispondono agli attributi delle prenotazioni di capacità aperta (tipo di istanza, piattaforma, tenancy e zona di disponibilità) disponibili nell'account, le prenotazioni di capacità vengono applicate automaticamente. Tuttavia, non è garantito che le prenotazioni di capacità verranno utilizzate. Per il provisioning del cluster, Amazon EMR valuta tutti i pool di istanze specificati nella richiesta di avvio e utilizza quello con il prezzo più basso che dispone di capacità sufficienti per avviare tutti i nodi principali richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Se le prenotazioni della capacità aperte disponibili non corrispondono al pool di istanze, rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon EMR effettua il provisioning dei nodi attività in pool di istanze, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino a quando non viene eseguito il provisioning di tutti i nodi attività. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente.

Di seguito sono riportati i casi d'uso della logica di allocazione della capacità di Amazon EMR per l'utilizzo delle prenotazioni della capacità aperte in base al miglior tentativo.

Esempio 1: il pool di istanze a prezzo più basso nella richiesta di avvio dispone di prenotazioni della capacità aperte disponibili

In questo caso, Amazon EMR avvia la capacità nel pool di istanze a prezzo più basso con istanze on demand. Le prenotazioni della capacità aperte disponibili in quel pool di istanze vengono utilizzate automaticamente.

Strategia on-demand lowest-price
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili 150 100 100
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata 100 - -
Prenotazioni della capacità aperte disponibili 50 100 100

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Esempio 2: il pool di istanze a prezzo più basso nella richiesta di avvio non dispone di prenotazioni della capacità aperte disponibili

In questo caso, Amazon EMR avvia la capacità nel pool di istanze a prezzo più basso con istanze on demand. Tuttavia, le prenotazioni della capacità aperte rimangono inutilizzate.

Strategia su richiesta lowest-price
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge

Prenotazioni della capacità aperte disponibili

- - 100
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata - - -
Prenotazioni della capacità aperte disponibili - - 100

Configurazione dei parchi istanze per utilizzare le prenotazioni della capacità aperte in base al miglior tentativo

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on demand lowest-price e CapacityReservationPreference per le opzioni di prenotazione di capacità su open. In alternativa, se lasci vuoto questo campo, Amazon EMR configura come impostazione predefinita la preferenza di prenotazione della capacità dell'istanza on demand su open.

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

È inoltre possibile utilizzare l'interfaccia CLI di Amazon EMR per creare un cluster basato sul parco istanze utilizzando prenotazioni della capacità aperte.

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}}'}

Dove,

  • open-ODCR-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Usa prima le prenotazioni della capacità aperte

Puoi scegliere di sovrascrivere la strategia di allocazione del prezzo più basso e assegnare priorità utilizzando le prenotazioni della capacità aperte disponibili prima durante il provisioning di un cluster Amazon EMR. In questo caso, Amazon EMR valuta tutti i pool di istanze con prenotazioni della capacità specificati nella richiesta di avvio e utilizza quello con il prezzo più basso che dispone di capacità sufficienti per avviare tutti i nodi principali richiesti. Se nessuno dei pool di istanze con prenotazioni della capacità dispone di capacità sufficiente per i nodi principali richiesti, Amazon EMR ritorna al caso sulla base del miglior tentativo descritto nell'argomento precedente. In altre parole, Amazon EMR valuta nuovamente tutti i pool di istanze specificati nella richiesta di avvio e utilizza quello con il prezzo più basso che dispone di capacità sufficiente per avviare tutti i nodi principali richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Se le prenotazioni della capacità aperte disponibili non corrispondono al pool di istanze, rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon EMR effettua il provisioning dei nodi attività in pool di istanze con prenotazioni della capacità, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino a quando non viene eseguito il provisioning di tutti i nodi attività. Amazon EMR utilizza prima le prenotazioni della capacità aperte disponibili per ogni pool di istanze nella zona di disponibilità selezionata e, solo se necessario, utilizza la strategia di prezzo più basso per eseguire il provisioning di eventuali nodi attività rimanenti.

Di seguito sono riportati i casi d'uso della logica di allocazione della capacità di Amazon EMR per l'utilizzo delle prenotazioni della capacità aperte per prime.

Esempio 1: il pool di istanze con prenotazioni della capacità aperte disponibili nella richiesta di avvio ha una capacità sufficiente per i nodi principali

In questo caso, Amazon EMR avvia la capacità nel pool di istanze con prenotazioni della capacità aperte disponibili indipendentemente dal prezzo del pool di istanze. Di conseguenza, le prenotazioni della capacità aperte vengono utilizzate quando possibile, fino a quando non viene eseguito il provisioning di tutti i nodi principali.

Strategia su richiesta lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili - - 150
Prezzo su richiesta $ $$ $$$
Istanze con provisioning - - 100
Prenotazione della capacità aperta utilizzata - - 100
Prenotazioni della capacità aperte disponibili - - 50

Esempio 2: il pool di istanze con prenotazioni della capacità aperte disponibili nella richiesta di avvio non dispone di capacità sufficiente per i nodi principali

In questo caso, Amazon EMR torna ad avviare nodi principali utilizzando una strategia di prezzo più basso in base al miglior tentativo per utilizzare le prenotazioni di capacità.

Strategia su richiesta lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità aperte disponibili 10 50 50
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazione della capacità aperta utilizzata 10 - -
Prenotazioni della capacità aperte disponibili - 50 50

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Configurazione dei parchi istanze per utilizzare prima le prenotazioni della capacità aperte

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on-demand su lowest-price e UsageStrategy per CapacityReservationOptions su use-capacity-reservations-first.

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

È inoltre possibile utilizzare l'interfaccia CLI Amazon EMR per creare un cluster basato sul parco istanze utilizzando prima prenotazioni della capacità.

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}}'}

Dove,

  • use-CR-first-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Usa prima le prenotazioni della capacità mirate

Quando si esegue il provisioning di un cluster Amazon EMR, è possibile scegliere di sostituire la strategia di allocazione a prezzo più basso e assegnare priorità utilizzando innanzitutto le prenotazioni della capacità mirate disponibili. In questo caso, Amazon EMR valuta tutti i pool di istanze con prenotazioni della capacità mirate specificate nella richiesta di avvio e seleziona quello con il prezzo più basso che dispone di capacità sufficiente per avviare tutti i nodi principali richiesti. Se nessuno dei pool di istanze con prenotazioni della capacità mirate dispone di capacità sufficiente per i nodi principali, Amazon EMR ritorna al caso sulla base del miglior tentativo descritto in precedenza. In altre parole, Amazon EMR valuta nuovamente tutti i pool di istanze specificati nella richiesta di avvio e seleziona quello con il prezzo più basso che dispone di capacità sufficiente per avviare tutti i nodi principali richiesti. Le prenotazioni della capacità aperte disponibili che corrispondono al pool di istanze vengono applicate automaticamente. Tuttavia, le prenotazioni della capacità mirate rimangono inutilizzate.

Una volta eseguito il provisioning dei nodi principali, la zona di disponibilità viene selezionata e risolta. Amazon EMR effettua il provisioning dei nodi attività in pool di istanze con prenotazioni della capacità mirate, a partire da quelli con il prezzo più basso, nella zona di disponibilità selezionata fino a quando non viene eseguito il provisioning di tutti i nodi attività. Amazon EMR tenta di utilizzare prima le prenotazioni della capacità mirate disponibili in ogni pool di istanze nella zona di disponibilità selezionata. Quindi, solo se necessario, Amazon EMR utilizza la strategia di prezzo più basso per effettuare il provisioning di eventuali nodi attività rimanenti.

Di seguito sono riportati i casi d'uso della logica di allocazione della capacità di Amazon EMR per l'utilizzo delle prenotazioni della capacità mirate per prime.

Esempio 1: il pool di istanze con prenotazioni della capacità mirate disponibili nella richiesta di avvio ha una capacità sufficiente per i nodi principali

In questo caso, Amazon EMR avvia la capacità nel pool di istanze con prenotazioni della capacità mirate disponibili indipendentemente dal prezzo del pool di istanze. Di conseguenza, le prenotazioni della capacità mirate vengono utilizzate quando possibile, fino a quando non viene eseguito il provisioning di tutti i nodi principali.

Strategia su richiesta lowest-price
Strategia di utilizzo use-capacity-reservations-first
Capacità richiesta 100
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità mirate disponibili - - 150
Prezzo su richiesta $ $$ $$$
Istanze con provisioning - - 100
Prenotazione della capacità mirata utilizzata - - 100
Prenotazioni della capacità mirate disponibili - - 50
Esempio 2: il pool di istanze con prenotazioni della capacità mirate disponibili nella richiesta di avvio non dispone di capacità sufficiente per i nodi principali
Strategia su richiesta lowest-price
Capacità richiesta 100
Strategia di utilizzo use-capacity-reservations-first
Tipo di istanza c5.xlarge m5.xlarge r5.xlarge
Prenotazioni della capacità mirate disponibili 10 50 50
Prezzo su richiesta $ $$ $$$
Istanze con provisioning 100 - -
Prenotazioni della capacità mirate utilizzate 10 - -
Prenotazioni della capacità mirate disponibili - 50 50

Dopo l'avvio del parco istanze, puoi eseguire describe-capacity-reservations per vedere quante prenotazioni di capacità sono rimaste inutilizzate.

Configurazione dei parchi istanze per utilizzare prima le prenotazioni della capacità mirate

Quando utilizzi l'operazione RunJobFlow per creare un cluster basato sul parco istanze, imposta la strategia di allocazione on demand su lowest-price, UsageStrategy per CapacityReservationOptions su use-capacity-reservations-first e CapacityReservationResourceGroupArn per CapacityReservationOptions su <your resource group ARN>. Per ulteriori informazioni, consulta Lavora con le prenotazioni di capacità nella Guida per l'utente di Amazon EC2.

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

Dove arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup viene sostituito con l'ARN del gruppo di risorse.

È inoltre possibile utilizzare la CLI Amazon EMR per creare un cluster basato sul parco istanze utilizzando prima prenotazioni della capacità mirate.

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}}'}

Dove,

  • targeted-CR-cluster viene sostituito con il nome del cluster che utilizza le prenotazioni della capacità mirate.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

  • arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup viene sostituito con l'ARN del gruppo di risorse.

Come evitare l'utilizzo delle prenotazioni della capacità aperte disponibili

Se desideri evitare di utilizzare una qualsiasi delle prenotazioni della capacità aperte durante l'avvio di un cluster Amazon EMR, imposta la strategia di allocazione on demand su lowest-price e CapacityReservationPreference per CapacityReservationOptions su none. In caso contrario, Amazon EMR imposta come impostazione predefinita la preferenza di prenotazione della capacità dell'istanza on demand su open e prova a utilizzare le prenotazioni della capacità aperte disponibili sulla base della migliore ipotesi.

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

È inoltre possibile utilizzare l'interfaccia CLI di Amazon EMR per creare un cluster basato sul parco istanze senza utilizzare prenotazioni della capacità aperte.

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}}'}

Dove,

  • none-CR-cluster viene sostituito con il nome del cluster che non utilizza le prenotazioni della capacità aperte.

  • subnet-22XXXX01 viene sostituito con l'ID della sottorete.

Scenari per l'utilizzo delle prenotazioni della capacità

È possibile utilizzare le prenotazioni della capacità nei seguenti scenari.

Scenario 1: Rotazione di un cluster a esecuzione prolungata utilizzando le prenotazioni della capacità

Quando si ruota un cluster a esecuzione prolungata, è possibile che siano richiesti requisiti rigorosi per i tipi di istanza e le zone di disponibilità per le nuove istanze di cui si esegue il provisioning. Con le prenotazioni della capacità, è possibile utilizzare la garanzia della capacità per completare la rotazione del cluster senza interruzioni.

Rotazione del cluster utilizzando prenotazioni della capacità disponibili
Scenario 2: Provisioning di cluster di breve durata successivi utilizzando le prenotazioni della capacità

È possibile utilizzare le prenotazioni della capacità anche per eseguire il provisioning di un gruppo di cluster successivi e di breve durata per singoli carichi di lavoro in modo che quando si chiude un cluster, il cluster successivo possa utilizzare le prenotazioni della capacità. È possibile utilizzare le prenotazioni della capacità mirate per assicurarsi che solo i cluster previsti utilizzino le prenotazioni della capacità.

Provisioning di un cluster di breve durata che utilizza prenotazioni della capacità disponibili