Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisez les réservations de capacité avec les flottes d'instances dans Amazon EMR
Pour lancer des flottes d' On-Demand instances avec des options de réservation de capacité, associez des autorisations de rôle de service supplémentaires requises pour utiliser les options de réservation de capacité. Étant donné que les options de réservation de capacité doivent être utilisées conjointement avec la stratégie d' On-Demand allocation, vous devez également inclure les autorisations requises pour la stratégie d'allocation dans votre rôle de service et votre politique gérée. Pour de plus amples informations, veuillez consulter Autorisations de la stratégie d'allocation.
Amazon EMR prend en charge les réservations de capacité ouvertes et ciblées. Les rubriques suivantes présentent les configurations de flottes d'instances que vous pouvez utiliser avec l'RunJobFlowaction ou la create-cluster commande pour lancer des flottes d'instances à l'aide des réservations de On-Demand capacité.
Utilisez les réservations de capacité ouverte au mieux
Si les On-Demand instances du cluster correspondent aux attributs des réservations de capacité ouverte (type d'instance, plateforme, location et zone de disponibilité) disponibles sur votre compte, les réservations de capacité sont appliquées automatiquement. Cependant, il n'est pas garanti que vos réservations de capacité seront utilisées. Pour le provisionnement du cluster, Amazon EMR évalue tous les pools d'instances spécifiés dans la demande de lancement et utilise celui dont le prix le plus bas possède une capacité suffisante pour lancer tous les nœuds principaux demandés. Les réserves de capacité ouvertes disponibles qui correspondent au groupe d'instances sont appliquées automatiquement. Si les réserves de capacité ouvertes disponibles ne correspondent pas au groupe d'instances, elles restent inutilisées.
Une fois les nœuds principaux alloués, la zone de disponibilité est sélectionnée et fixée. Amazon EMR approvisionne les nœuds de tâches dans des pools d'instances, en commençant par les nœuds les moins chers, dans la zone de disponibilité sélectionnée jusqu'à ce que tous les nœuds de tâches soient provisionnés. Les réservations de capacité ouverte disponibles qui correspondent aux pools d'instances sont appliquées automatiquement.
Vous trouverez ci-dessous des exemples d'utilisation de la logique d'allocation de capacité Amazon EMR pour utiliser au mieux les réservations de capacité ouverte.
Exemple 1 : le pool d' Lowest-price instances figurant dans la demande de lancement contient des réservations de capacité ouverte disponibles
Dans ce cas, Amazon EMR lance de la capacité dans le pool d'instances le moins cher avec Instances. On-Demand Vos réservations de capacité ouverte disponibles dans ce groupe d'instances sont utilisées automatiquement.
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Capacité demandée | 100 | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
| Réserves de capacité ouvertes disponibles | 150 | 100 | 100 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | 100 | - | - |
|---|---|---|---|
| Réserves de capacité ouvertes utilisées | 100 | - | - |
| Réserves de capacité ouvertes disponibles | 50 | 100 | 100 |
Une fois le parc d'instances lancé, vous pouvez exécuter describe-capacity-reservations pour voir combien de réserves de capacité inutilisées restent.
Exemple 2 : le pool d' Lowest-price instances indiqué dans la demande de lancement ne contient pas de réservations de capacité ouverte disponibles
Dans ce cas, Amazon EMR lance de la capacité dans le pool d'instances le moins cher avec Instances. On-Demand Cependant, vos réservations de capacité ouverte restent inutilisées.
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Capacité demandée | 100 | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
|
Réserves de capacité ouvertes disponibles |
- | - | 100 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | 100 | - | - |
|---|---|---|---|
| Réserves de capacité ouvertes utilisées | - | - | - |
| Réserves de capacité ouvertes disponibles | - | - | 100 |
Configurer les parcs d'instances pour utiliser au mieux les réserves de capacité ouverte
Lorsque vous utilisez l'RunJobFlowaction pour créer un cluster basé sur un parc d'instances, définissez la stratégie d' On-Demand allocation sur lowest-price et CapacityReservationPreference pour les options de réservation de capacité. open Sinon, si vous laissez ce champ vide, Amazon EMR définit par défaut la préférence de réservation de capacité de l' On-Demand instance sur. open
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "open" } } }
Vous pouvez également utiliser la CLI Amazon EMR pour créer un cluster basé sur un parc d'instances à l'aide de réservations de capacité ouverte.
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}}'}
Où,
-
open-ODCR-clusterest remplacé par le nom du cluster utilisant des réserves de capacité ouvertes. -
subnet-22XXXX01est remplacé par l'ID du sous-réseau.
Utilisez d'abord les réservations de capacité ouverte
Vous pouvez choisir d'annuler la stratégie d'allocation du prix le plus bas et de prioriser l'utilisation des réservations de capacité ouverte disponibles en premier lors de la mise en service d'un cluster Amazon EMR. Dans ce cas, Amazon EMR évalue tous les pools d'instances dont les réservations de capacité sont spécifiées dans la demande de lancement et utilise celui dont le prix le plus bas possède une capacité suffisante pour lancer tous les nœuds principaux demandés. Si aucun des pools d'instances avec des réservations de capacité ne dispose d'une capacité suffisante pour les nœuds principaux demandés, Amazon EMR revient au scénario de « meilleur effort » décrit dans la rubrique précédente. C'est-à-dire qu'Amazon EMR réévalue tous les pools d'instances spécifiés dans la demande de lancement et utilise celui dont le prix le plus bas possède une capacité suffisante pour lancer tous les nœuds principaux demandés. Les réserves de capacité ouvertes disponibles qui correspondent au groupe d'instances sont appliquées automatiquement. Si les réserves de capacité ouvertes disponibles ne correspondent pas au groupe d'instances, elles restent inutilisées.
Une fois les nœuds principaux alloués, la zone de disponibilité est sélectionnée et fixée. Amazon EMR approvisionne les nœuds de tâches dans des pools d'instances avec des réservations de capacité, en commençant par les nœuds les moins chers, dans la zone de disponibilité sélectionnée jusqu'à ce que tous les nœuds de tâches soient approvisionnés. Amazon EMR utilise d'abord les réservations de capacité ouverte disponibles sur chaque groupe d'instances de la zone de disponibilité sélectionnée, et uniquement si nécessaire, utilise la stratégie du prix le plus bas pour approvisionner les nœuds de tâches restants.
Vous trouverez ci-dessous des exemples d'utilisation de la logique d'allocation de capacité Amazon EMR pour utiliser d'abord les réservations de capacité ouverte.
Exemple 1 : le groupe d'instances avec des réserves de capacité ouvertes disponibles dans la demande de lancement dispose d'une capacité suffisante pour les nœuds principaux
Dans ce cas, Amazon EMR lance la capacité dans le groupe d'instances avec les réservations de capacité ouverte disponibles, quel que soit le prix du groupe d'instances. Par conséquent, vos réservations de capacité ouverte sont utilisées dans la mesure du possible, jusqu'à ce que tous les nœuds principaux soient approvisionnés.
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Capacité demandée | 100 | ||
| Stratégie d'utilisation | use-capacity-reservations-first | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
| Réserves de capacité ouvertes disponibles | - | - | 150 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | - | - | 100 |
|---|---|---|---|
| Réserves de capacité ouvertes utilisées | - | - | 100 |
| Réserves de capacité ouvertes disponibles | - | - | 50 |
Exemple 2 : le groupe d'instances avec des réserves de capacité ouvertes disponibles dans la demande de lancement ne dispose pas d'une capacité suffisante pour les nœuds principaux
Dans ce cas, Amazon EMR se contente de lancer des nœuds principaux en utilisant la stratégie du prix le plus bas tout en s'efforçant d'utiliser les réservations de capacité.
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Capacité demandée | 100 | ||
| Stratégie d'utilisation | use-capacity-reservations-first | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
| Réserves de capacité ouvertes disponibles | 10 | 50 | 50 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | 100 | - | - |
|---|---|---|---|
| Réserves de capacité ouvertes utilisées | 10 | - | - |
| Réservations de capacité ouverte disponibles | - | 50 | 50 |
Une fois le parc d'instances lancé, vous pouvez exécuter describe-capacity-reservations pour voir combien de réserves de capacité inutilisées restent.
Configurer les parcs d'instances pour utiliser d'abord les réserves de capacité ouvertes
Lorsque vous utilisez l'RunJobFlowaction pour créer un cluster basé sur un parc d'instances, définissez la stratégie On-Demand d'allocation sur lowest-price et UsageStrategy pourCapacityReservationOptions. use-capacity-reservations-first
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first" } } }
Vous pouvez également utiliser la CLI Amazon EMR pour créer un cluster basé sur un parc d'instances en utilisant d'abord les réservations de 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}}'}
Où,
-
use-CR-first-clusterest remplacé par le nom du cluster utilisant des réserves de capacité ouvertes. -
subnet-22XXXX01est remplacé par l'ID du sous-réseau.
Utilisez d'abord des réservations de capacité ciblées
Lorsque vous mettez en service un cluster Amazon EMR, vous pouvez choisir d'annuler la stratégie d'allocation du prix le plus bas et de prioriser l'utilisation des réservations de capacité ciblées disponibles en premier. Dans ce cas, Amazon EMR évalue tous les pools d'instances avec des réservations de capacité ciblées spécifiées dans la demande de lancement et choisit celle dont le prix le plus bas possède une capacité suffisante pour lancer tous les nœuds principaux demandés. Si aucun des pools d'instances avec des réservations de capacité ciblées ne dispose d'une capacité suffisante pour les nœuds principaux, Amazon EMR revient au scénario de meilleur effort décrit précédemment. C'est-à-dire qu'Amazon EMR réévalue tous les pools d'instances spécifiés dans la demande de lancement et sélectionne celui dont le prix le plus bas possède une capacité suffisante pour lancer tous les nœuds principaux demandés. Les réservations de capacité ouverte disponibles qui correspondent au groupe d'instances sont appliquées automatiquement. Cependant, les réservations de capacité ciblées restent inutilisées.
Une fois les nœuds principaux alloués, la zone de disponibilité est sélectionnée et fixée. Amazon EMR approvisionne les nœuds de tâches dans des pools d'instances avec des réservations de capacité ciblées, en commençant par les nœuds les moins chers, dans la zone de disponibilité sélectionnée jusqu'à ce que tous les nœuds de tâches soient approvisionnés. Amazon EMR essaie d'abord d'utiliser les réservations de capacité ciblées disponibles sur chaque groupe d'instances de la zone de disponibilité sélectionnée. Ensuite, uniquement si nécessaire, Amazon EMR utilise la stratégie du prix le plus bas pour approvisionner les nœuds de tâches restants.
Vous trouverez ci-dessous des exemples d'utilisation de la logique d'allocation de capacité Amazon EMR pour utiliser d'abord des réservations de capacité ciblées.
Exemple 1 : le groupe d'instances pour lequel des réserves de capacité ciblées sont disponibles dans la demande de lancement dispose d'une capacité suffisante pour les nœuds principaux
Dans ce cas, Amazon EMR lance de la capacité dans le groupe d'instances avec des réservations de capacité ciblées disponibles, quel que soit le prix du groupe d'instances. Par conséquent, vos réservations de capacité ciblées sont utilisées dans la mesure du possible jusqu'à ce que tous les nœuds principaux soient approvisionnés.
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Stratégie d'utilisation | use-capacity-reservations-first | ||
| Capacité demandée | 100 | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
| Réserves de capacité ciblées disponibles | - | - | 150 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | - | - | 100 |
|---|---|---|---|
| Réservation de capacité ciblée utilisée | - | - | 100 |
| Réserves de capacité ciblées disponibles | - | - | 50 |
Exemple Exemple 2 : le groupe d'instances pour lequel des réservations de capacité ciblées sont disponibles dans la demande de lancement ne dispose pas d'une capacité suffisante pour les nœuds principaux
| On-Demand Stratégie | lowest-price (prix le plus bas) | ||
| Capacité demandée | 100 | ||
| Stratégie d'utilisation | use-capacity-reservations-first | ||
| Type d'instance | c5.xlarge | m5.xlarge | r5.xlarge |
| Réserves de capacité ciblées disponibles | 10 | 50 | 50 |
| On-Demand Prix | $ | $$ | $$$ |
| Instances allouées | 100 | - | - |
|---|---|---|---|
| Réserves de capacité ciblées utilisées | 10 | - | - |
| Réserves de capacité ciblées disponibles | - | 50 | 50 |
Une fois le parc d'instances lancé, vous pouvez exécuter describe-capacity-reservations pour voir combien de réserves de capacité inutilisées restent.
Configurer les parcs d'instances pour utiliser d'abord les réserves de capacité ciblées
Lorsque vous utilisez cette RunJobFlow action pour créer un cluster basé sur un parc d'instances, définissez la stratégie d' On-Demand allocation sur lowest-priceuse-capacity-reservations-first, UsageStrategy CapacityReservationOptions pour et CapacityReservationResourceGroupArn pourCapacityReservationOptions. <your resource group
ARN> Pour plus d'informations, consultez la section Travailler avec les réservations de capacité dans le guide de l'utilisateur Amazon EC2.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup" } } }
Où arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroup est remplacé par l'ARN de votre groupe de ressources.
Vous pouvez également utiliser l'interface de ligne de commande Amazon EMR pour créer un cluster basé sur un parc d'instances à l'aide de réservations de capacité ciblées.
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}}'}
Où,
-
targeted-CR-clusterest remplacé par le nom de votre cluster à l'aide de réserves de capacité ciblées. -
subnet-22XXXX01est remplacé par l'ID du sous-réseau. -
arn:aws:resource-groups:sa-east-1:123456789012:group/MyCRGroupest remplacé par l'ARN de votre groupe de ressources.
Évitez d'utiliser les réservations de capacité libre disponibles
Exemple
Si vous souhaitez éviter d'utiliser de manière inattendue l'une de vos réservations de capacité ouverte lors du lancement d'un cluster Amazon EMR, définissez la stratégie On-Demand d'allocation pour lowest-price et CapacityReservationPreference pourCapacityReservationOptions. none Dans le cas contraire, Amazon EMR définit par défaut la préférence de réservation de capacité de l' On-Demand instance sur open et essaie d'utiliser les réservations de capacité ouverte disponibles dans la mesure du possible.
"LaunchSpecifications": {"OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } } }
Vous pouvez également utiliser la CLI Amazon EMR pour créer un cluster basé sur un parc d'instances sans utiliser de réservations de capacité ouverte.
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}}'}
Où,
-
none-CR-clusterest remplacé par le nom de votre cluster qui n'utilise aucune réserve de capacité ouverte. -
subnet-22XXXX01est remplacé par l'ID du sous-réseau.
Scénarios d'utilisation des réservations de capacité
Vous pouvez bénéficier de l'utilisation des réservations de capacité dans les scénarios suivants.
Scénario 1 : rotation d'un cluster de longue durée à l'aide de réservations de capacité
Lors de la rotation d'un cluster de longue durée, vous pouvez avoir des exigences strictes concernant les types d'instances et les zones de disponibilité pour les nouvelles instances que vous mettez en service. Avec les réservations de capacité, vous pouvez utiliser l'assurance de capacité pour effectuer la rotation du cluster sans interruption.
Scénario 2 : provisionner des clusters de courte durée successifs à l'aide de réservations de capacité
Vous pouvez également utiliser les réservations de capacité pour provisionner un groupe de clusters successifs de courte durée pour des charges de travail individuelles, de sorte que lorsque vous mettez fin à un cluster, le cluster suivant puisse utiliser les réservations de capacité. Vous pouvez utiliser des réservations de capacité ciblées pour vous assurer que seuls les clusters prévus utilisent les réservations de capacité.