Utilizar RequestSpotInstances con una CLI
Los siguientes ejemplos de código muestran cómo utilizar RequestSpotInstances.
- CLI
-
- AWS CLI
-
Para solicitar instancias de spot
En este ejemplo de comando, se crea una solicitud de instancia de spot única para cinco instancias en la zona de disponibilidad especificada. Si su cuenta admite EC2-VPC únicamente, Amazon EC2 lanza las instancias en la subred predeterminada de la zona de disponibilidad especificada. Si su cuenta admite EC2-Classic, Amazon EC2 lanza las instancias en EC2-Classic en la zona de disponibilidad.
Comando:
aws ec2 request-spot-instances --spot-price"0.03"--instance-count5--type"one-time"--launch-specificationfile://specification.jsonSpecification.json:
{ "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2a" }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } }Salida:
{ "SpotInstanceRequests": [ { "Status": { "UpdateTime": "2014-03-25T20:54:21.000Z", "Code": "pending-evaluation", "Message": "Your Spot request has been submitted for review, and is pending evaluation." }, "ProductDescription": "Linux/UNIX", "SpotInstanceRequestId": "sir-df6f405d", "State": "open", "LaunchSpecification": { "Placement": { "AvailabilityZone": "us-west-2a" }, "ImageId": "ami-1a2b3c4d", "KeyName": "my-key-pair", "SecurityGroups": [ { "GroupName": "my-security-group", "GroupId": "sg-1a2b3c4d" } ], "Monitoring": { "Enabled": false }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" }, "InstanceType": "m3.medium" }, "Type": "one-time", "CreateTime": "2014-03-25T20:54:20.000Z", "SpotPrice": "0.050000" }, ... ] }En este ejemplo de comando, se crea una solicitud de instancia de spot única para cinco instancias en la subred especificada. Amazon EC2 inicia las instancias en la subred especificada. Si la VPC es una VPC no predeterminada, las instancias no reciben una dirección IP pública de forma predeterminada.
Comando:
aws ec2 request-spot-instances --spot-price"0.050"--instance-count5--type"one-time"--launch-specificationfile://specification.jsonSpecification.json:
{ "ImageId": "ami-1a2b3c4d", "SecurityGroupIds": [ "sg-1a2b3c4d" ], "InstanceType": "m3.medium", "SubnetId": "subnet-1a2b3c4d", "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" } }Salida:
{ "SpotInstanceRequests": [ { "Status": { "UpdateTime": "2014-03-25T22:21:58.000Z", "Code": "pending-evaluation", "Message": "Your Spot request has been submitted for review, and is pending evaluation." }, "ProductDescription": "Linux/UNIX", "SpotInstanceRequestId": "sir-df6f405d", "State": "open", "LaunchSpecification": { "Placement": { "AvailabilityZone": "us-west-2a" } "ImageId": "ami-1a2b3c4d" "SecurityGroups": [ { "GroupName": "my-security-group", "GroupID": "sg-1a2b3c4d" } ] "SubnetId": "subnet-1a2b3c4d", "Monitoring": { "Enabled": false }, "IamInstanceProfile": { "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role" }, "InstanceType": "m3.medium", }, "Type": "one-time", "CreateTime": "2014-03-25T22:21:58.000Z", "SpotPrice": "0.050000" }, ... ] }En este ejemplo de comando, se asigna una dirección IP pública a instancias de spot que se lanzan en una VPC no predeterminada. Tenga en cuenta que, si especifica una interfaz de red, debe incluir el ID de subred y el ID de grupo de seguridad mediante la interfaz de red.
Comando:
aws ec2 request-spot-instances --spot-price"0.050"--instance-count1--type"one-time"--launch-specificationfile://specification.jsonSpecification.json:
{ "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::123456789012:instance-profile/my-iam-role" } }-
Para obtener información sobre la API, consulte RequestSpotInstances
en la Referencia de comandos de la AWS CLI.
-
- PowerShell
-
- Herramientas para PowerShell V4
-
Ejemplo 1: En este ejemplo se solicita una instancia de spot única en la subred especificada. Tenga en cuenta que el grupo de seguridad debe crearse para la VPC que contiene la subred especificada y debe especificarse mediante un ID usando la interfaz de red. Si especifica una interfaz de red, debe incluir el ID de subred mediante la interfaz de red.
$n = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification $n.DeviceIndex = 0 $n.SubnetId = "subnet-12345678" $n.Groups.Add("sg-12345678") Request-EC2SpotInstance -InstanceCount 1 -SpotPrice 0.050 -Type one-time ` -IamInstanceProfile_Arn arn:aws:iam::123456789012:instance-profile/my-iam-role ` -LaunchSpecification_ImageId ami-12345678 ` -LaunchSpecification_InstanceType m3.medium ` -LaunchSpecification_NetworkInterface $nSalida:
ActualBlockHourlyPrice : AvailabilityZoneGroup : BlockDurationMinutes : 0 CreateTime : 12/26/2015 7:44:10 AM Fault : InstanceId : LaunchedAvailabilityZone : LaunchGroup : LaunchSpecification : Amazon.EC2.Model.LaunchSpecification ProductDescription : Linux/UNIX SpotInstanceRequestId : sir-12345678 SpotPrice : 0.050000 State : open Status : Amazon.EC2.Model.SpotInstanceStatus Tags : {} Type : one-time-
Para obtener información sobre la API, consulte RequestSpotInstances en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V4).
-
- Herramientas para PowerShell V5
-
Ejemplo 1: En este ejemplo se solicita una instancia de spot única en la subred especificada. Tenga en cuenta que el grupo de seguridad debe crearse para la VPC que contiene la subred especificada y debe especificarse mediante un ID usando la interfaz de red. Si especifica una interfaz de red, debe incluir el ID de subred mediante la interfaz de red.
$n = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification $n.DeviceIndex = 0 $n.SubnetId = "subnet-12345678" $n.Groups.Add("sg-12345678") Request-EC2SpotInstance -InstanceCount 1 -SpotPrice 0.050 -Type one-time ` -IamInstanceProfile_Arn arn:aws:iam::123456789012:instance-profile/my-iam-role ` -LaunchSpecification_ImageId ami-12345678 ` -LaunchSpecification_InstanceType m3.medium ` -LaunchSpecification_NetworkInterface $nSalida:
ActualBlockHourlyPrice : AvailabilityZoneGroup : BlockDurationMinutes : 0 CreateTime : 12/26/2015 7:44:10 AM Fault : InstanceId : LaunchedAvailabilityZone : LaunchGroup : LaunchSpecification : Amazon.EC2.Model.LaunchSpecification ProductDescription : Linux/UNIX SpotInstanceRequestId : sir-12345678 SpotPrice : 0.050000 State : open Status : Amazon.EC2.Model.SpotInstanceStatus Tags : {} Type : one-time-
Para obtener información sobre la API, consulte RequestSpotInstances en la Referencia de cmdlets de Herramientas de AWS para PowerShell (V5).
-
Para obtener una lista completa de las guías para desarrolladores de AWS SDK y ejemplos de código, consulte Creación de recursos de Amazon EC2 mediante una AWS SDK. En este tema también se incluye información sobre cómo comenzar a utilizar el SDK y detalles sobre sus versiones anteriores.