Utilisation RequestSpotFleet avec un AWS SDK ou une CLI - Amazon Elastic Compute Cloud

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.

Utilisation RequestSpotFleet avec un AWS SDK ou une CLI

Les exemples de code suivants montrent comment utiliserRequestSpotFleet.

CLI
AWS CLI

Pour demander une flotte Spot dans le sous-réseau au prix le plus bas

Cet exemple de commande crée une demande de flotte Spot avec deux spécifications de lancement qui ne diffèrent que selon le sous-réseau. La flotte Spot lance les instances dans le sous-réseau spécifié au prix le plus bas. Si les instances sont lancées dans un VPC par défaut, elles reçoivent une adresse IP publique par défaut. Si les instances sont lancées sur un VPC personnalisé, elles ne reçoivent pas d'adresse IP publique par défaut.

Notez que vous ne pouvez pas spécifier différents sous-réseaux provenant de la même zone de disponibilité dans une demande de flotte Spot.

Commande :

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json :

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "SubnetId": "subnet-1a2b3c4d, subnet-3c4d5e6f", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

Sortie :

{ "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

Pour demander une flotte Spot dans la zone de disponibilité au prix le plus bas

Cet exemple de commande crée une demande de flotte Spot avec deux spécifications de lancement qui ne diffèrent que selon la zone de disponibilité. La flotte Spot lance les instances dans la zone de disponibilité spécifiée au prix le plus bas. Si votre compte prend uniquement en charge l'EC2-VPC, Amazon EC2 lance les instances Spot dans le sous-réseau par défaut de la zone de disponibilité. Si votre compte prend en charge EC2-Classic, Amazon EC2 lance les instances dans EC2-Classic dans la zone de disponibilité.

Commande :

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json :

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupId": "sg-1a2b3c4d" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a, us-west-2b" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } } ] }

Pour lancer des instances Spot dans un sous-réseau et leur attribuer des adresses IP publiques

Cet exemple de commande attribue des adresses publiques aux instances lancées dans un VPC autre que celui par défaut. Notez que lorsque vous spécifiez une interface réseau, vous devez inclure l'ID du sous-réseau et l'ID du groupe de sécurité à l'aide de l'interface réseau.

Commande :

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json :

{ "SpotPrice": "0.04", "TargetCapacity": 2, "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "InstanceType": "m3.medium", "NetworkInterfaces": [ { "DeviceIndex": 0, "SubnetId": "subnet-1a2b3c4d", "Groups": [ "sg-1a2b3c4d" ], "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "arn:aws:iam::880185128111:instance-profile/my-iam-role" } } ] }

Pour demander une flotte Spot en utilisant la stratégie d'allocation diversifiée

Cet exemple de commande crée une demande de flotte Spot qui lance 30 instances en utilisant la stratégie d'allocation diversifiée. Les spécifications de lancement varient selon le type d'instance. La flotte Spot répartit les instances selon les spécifications de lancement, de sorte qu'il existe 10 instances de chaque type.

Commande :

aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Config.json :

{ "SpotPrice": "0.70", "TargetCapacity": 30, "AllocationStrategy": "diversified", "IamFleetRole": "arn:aws:iam::123456789012:role/my-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-1a2b3c4d", "InstanceType": "c4.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "m3.2xlarge", "SubnetId": "subnet-1a2b3c4d" }, { "ImageId": "ami-1a2b3c4d", "InstanceType": "r3.2xlarge", "SubnetId": "subnet-1a2b3c4d" } ] }

Pour plus d'informations, consultez la section Spot Fleet Requests dans le guide de l'utilisateur d'Amazon Elastic Compute Cloud.

  • Pour plus de détails sur l'API, reportez-vous RequestSpotFleetà la section Référence des AWS CLI commandes.

PowerShell
Outils pour PowerShell

Exemple 1 : Cet exemple crée une demande de parc Spot dans la zone de disponibilité avec le prix le plus bas pour le type d'instance spécifié. Si votre compte prend uniquement en charge l'EC2-VPC, le parc Spot lance les instances dans la zone de disponibilité la moins chère dotée d'un sous-réseau par défaut. Si votre compte prend en charge EC2-Classic, le parc Spot lance les instances dans EC2-Classic dans la zone de disponibilité la moins chère. Notez que le prix que vous payez ne dépassera pas le prix spot spécifié pour la demande.

$sg = New-Object Amazon.EC2.Model.GroupIdentifier $sg.GroupId = "sg-12345678" $lc = New-Object Amazon.EC2.Model.SpotFleetLaunchSpecification $lc.ImageId = "ami-12345678" $lc.InstanceType = "m3.medium" $lc.SecurityGroups.Add($sg) Request-EC2SpotFleet -SpotFleetRequestConfig_SpotPrice 0.04 ` -SpotFleetRequestConfig_TargetCapacity 2 ` -SpotFleetRequestConfig_IamFleetRole arn:aws:iam::123456789012:role/my-spot-fleet-role ` -SpotFleetRequestConfig_LaunchSpecification $lc
  • Pour plus de détails sur l'API, reportez-vous RequestSpotFleetà la section Référence des AWS Tools for PowerShell applets de commande.

Pour obtenir la liste complète des guides de développement du AWS SDK et des exemples de code, consultezCréation de ressources Amazon EC2 à l'aide d'un SDK AWS. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes de SDK.