Utilizzare RequestSpotFleet con una CLI - AWS Esempi di codice SDK

Sono disponibili altri esempi AWS SDK nel repository AWS Doc SDK Examples. GitHub

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

Utilizzare RequestSpotFleet con una CLI

Gli esempi di codice seguenti mostrano come utilizzare RequestSpotFleet.

CLI
AWS CLI

Per richiedere una flotta Spot nella sottorete al prezzo più basso

Questo comando di esempio crea una richiesta di flotta Spot con due specifiche di lancio che differiscono solo in base alla sottorete. La flotta Spot avvia le istanze nella sottorete specificata al prezzo più basso. Se le istanze vengono avviate in un VPC predefinito, ricevono per impostazione predefinita un indirizzo IP pubblico. Se le istanze vengono avviate in un VPC non predefinito, non ricevono un indirizzo IP pubblico per impostazione predefinita.

Tieni presente che non puoi specificare sottoreti diverse dalla stessa zona di disponibilità in una richiesta di flotta Spot.

Comando:

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" } } ] }

Output:

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

Per richiedere una flotta Spot nella zona di disponibilità al prezzo più basso

Questo comando di esempio crea una richiesta di flotta Spot con due specifiche di lancio che differiscono solo in base alla zona di disponibilità. La flotta Spot avvia le istanze nella zona di disponibilità specificata al prezzo più basso. Se il tuo account supporta solo EC2 -VPC, Amazon EC2 avvia le istanze Spot nella sottorete predefinita della zona di disponibilità. Se il tuo account supporta EC2 -Classic, Amazon EC2 avvia le istanze in EC2 -Classic nella zona di disponibilità.

Comando:

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" } } ] }

Per avviare istanze Spot in una sottorete e assegnare loro indirizzi IP pubblici

Questo comando di esempio assegna indirizzi pubblici alle istanze avviate in un VPC non predefinito. Si noti che quando si specifica un'interfaccia di rete, è necessario includere l'ID di sottorete e l'ID del gruppo di sicurezza utilizzando l'interfaccia di rete.

Comando:

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" } } ] }

Per richiedere una flotta Spot utilizzando la strategia di allocazione diversificata

Questo comando di esempio crea una richiesta di flotta Spot che avvia 30 istanze utilizzando la strategia di allocazione diversificata. Le specifiche di lancio variano in base al tipo di istanza. Il parco istanze Spot distribuisce le istanze tra le specifiche di lancio, in modo che vi siano 10 istanze per ogni tipo.

Comando:

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" } ] }

Per ulteriori informazioni, consulta Spot Fleet Requests nella Amazon Elastic Compute Cloud User Guide.

PowerShell
Strumenti per PowerShell

Esempio 1: questo esempio crea una richiesta di flotta Spot nella zona di disponibilità con il prezzo più basso per il tipo di istanza specificato. Se il tuo account supporta solo EC2 -VPC, il parco istanze Spot avvia le istanze nella zona di disponibilità più economica con una sottorete predefinita. Se il tuo account supporta EC2 -Classic, il parco istanze Spot avvia le istanze in -Classic nella zona di disponibilità più economica. EC2 Tieni presente che il prezzo da pagare non supererà il prezzo Spot specificato per la richiesta.

$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
  • Per i dettagli sull'API, vedere RequestSpotFleetin AWS Strumenti per PowerShell Cmdlet Reference.