

# Spot Instances
<a name="using-spot-instances"></a>

Una instancia de spot es una instancia que utiliza la capacidad sobrante de EC2 que está disponible por un precio inferior con respecto al precio bajo demanda. Dado que las instancias de spot permiten solicitar instancias de EC2 no utilizadas con grandes descuentos, es posible reducir considerablemente los costos de Amazon EC2. El precio por hora de una instancia de spot se denomina precio de spot. Amazon EC2 establece el precio de spot de cada tipo de instancia en cada zona de disponibilidad, y este fluctúa en función de la oferta y la demanda a largo plazo de las instancias de spot. La instancia de spot se ejecuta siempre que haya capacidad disponible.

Las instancias de spot son una opción económica si es flexible con respecto a cuándo es necesario ejecutar las aplicaciones y si las aplicaciones se pueden interrumpir. Por ejemplo, las instancias de spot son adecuadas para análisis de datos, trabajos por lotes, procesamiento en segundo plano y tareas opcionales. Para obtener más información, consulte [Precios de instancias de spot de Amazon EC2](https://aws.amazon.com/ec2/spot/).

Para comparar las distintas opciones de compra de instancias de EC2, consulte [Opciones de facturación y compra de Amazon EC2](instance-purchasing-options.md).

## Conceptos
<a name="spot-features"></a>

Antes de comenzar con las instancias de spot, familiarícese con los siguientes conceptos:
+ *Grupo de capacidad de spot*: un conjunto de instancias de EC2 no utilizadas con el mismo tipo de instancia (por ejemplo: `m5.large`) y zona de disponibilidad.
+ *Precio de spot*: el precio actual de una instancia de spot por hora.
+ *Solicitud de instancia de Spot*: Solicita una instancia de spot. Cuando hay capacidad disponible, Amazon EC2 satisface su solicitud. Una solicitud de instancia de *spot es única* o *persistente*. Amazon EC2 vuelve a enviar de forma automática una solicitud de instancia de spot persistente en cuanto se interrumpe la instancia de spot asociada a la solicitud.
+ *Recomendación de reequilibrio de instancias de EC2*: Amazon EC2 emite una señal de recomendación de reequilibrio de instancia para notificarle que la instancia de spot tiene un riesgo elevado de interrupción. Esta señal brinda la oportunidad de reequilibrar proactivamente sus cargas de trabajo entre las instancias de spot existentes o nuevas sin tener que esperar el aviso de interrupción de la instancia de spot con dos minutos de anticipación.
+ *Interrupción de instancia de spot*: Amazon EC2 termina, detiene o hiberna la instancia de spot cuando Amazon EC2 necesita de nuevo la capacidad. Amazon EC2 envía un aviso de interrupción de la instancia de spot, que otorga a la instancia una advertencia dos minutos antes de que se interrumpa.

## Diferencias clave entre las instancias de spot y las instancias bajo demanda
<a name="key-differences-spot-on-demand"></a>

En la siguiente tabla, se muestran las principales diferencias entre las instancias de spot y las [instancias bajo demanda](ec2-on-demand-instances.md).


|  | Spot Instances | On-Demand Instances | 
| --- | --- | --- | 
|  Hora de inicialización  |  Solo se pueden iniciar inmediatamente si la solicitud de instancia de spot está activa y hay capacidad disponible.  |  Solo se pueden iniciar inmediatamente si se realiza una solicitud de inicialización manual y hay capacidad disponible.  | 
|  Capacidad disponible  |  Si no hay capacidad disponible, la solicitud de instancia de spot sigue realizando la solicitud de inicialización de manera automática hasta que se disponga de capacidad.  |  Si no hay capacidad disponible al realizar una solicitud de inicialización, recibirá un error de capacidad insuficiente (ICE).  | 
|  Precio por hora  |  El precio por hora de las instancias de spot varía en función del suministro y la demanda a largo plazo.  |  El precio por hora de las instancias bajo demanda es estático.  | 
| Recomendación de reequilibrio | La señal que emite Amazon EC2 para una instancia de spot en ejecución cuando la instancia tiene un riesgo elevado de interrupción. | Determine cuándo se interrumpe una instancia a petición (se detiene, se hiberna o se termina). | 
|  Interrupción de instancias  |  Puede detener e iniciar una instancia de spot con respaldo de Amazon EBS. Además, Amazon EC2 puede [interrumpir](spot-interruptions.md) una instancia de spot individual si la capacidad ya no está disponible.   |  Determine cuándo se interrumpe una instancia a petición (se detiene, se hiberna o se termina).  | 

## Precios y ahorro
<a name="spot-pricing"></a>

Las instancias de spot se cobran según el precio de spot, establecido por Amazon EC2. Este precio se ajusta gradualmente en función de la oferta y la demanda a largo plazo de las instancias de spot. Las instancias de spot se ejecutan hasta que las termina, hasta que no haya capacidad disponible o hasta que su grupo de Amazon EC2 Auto Scaling las termine durante la [reducción horizontal](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in).

Si usted o Amazon EC2 interrumpe una instancia de spot en ejecución, se le cobrará por los segundos utilizados o por la hora completa, o no se le aplicará ningún cargo, en función del sistema operativo que utilice y de quién interrumpió la instancia de spot. Para obtener más información, consulte [Facturación de las instancias de spot interrumpidas](billing-for-interrupted-spot-instances.md).

Savings Plans no cubre las instancias de spot. Si cuenta con un Savings Plans, este no ofrece ahorros adicionales a los que ya obtiene al utilizar las instancias de spot. Además, los gastos en las instancias de spot no se aplican a los compromisos de los Savings Plans para computación.

### Ver precios
<a name="spot-pricing-view-prices"></a>

Para ver el precio actual más bajo de spot (actualizado cada cinco minutos) por Región de AWS y tipo de instancia, consulte la página [Precios de instancias de spot de Amazon EC2](https://aws.amazon.com/ec2/spot/pricing/).

Para ver el historial de precios de spot de los últimos tres meses, utilice la consola de Amazon EC2 o el comando [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html). Para obtener más información, consulte [Visualización del historial de precios de instancias de spot](using-spot-instances-history.md).

De forma independiente, asignamos zonas de disponibilidad a códigos para cada Cuenta de AWS. Por ese motivo, puede obtener diferentes resultados para el mismo código de zona de disponibilidad (por ejemplo, `us-west-2a`) entre diferentes cuentas.

### Ver el ahorro
<a name="spot-pricing-view-savings"></a>

Puede ver los ahorros obtenidos mediante el uso de instancias de spot para una sola [flota de spot](Fleets.md) o para todas las instancias de spot. Puede ver el ahorro conseguido durante la última hora o los últimos tres días y el precio medio por hora de CPU virtual y por hora de memoria (GiB). El ahorro es una estimación y podría diferir del ahorro real porque no incluye los ajustes en la facturación en función del uso. Para obtener más información acerca de la visualización de información sobre el ahorro, consulte [Ahorro en la compra de instancias de spot](spot-savings.md).

### Ver facturación
<a name="spot-pricing-view-billing"></a>

Su factura proporciona detalles sobre el uso del servicio. Para obtener más información, consulte [Ver su factura](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html) en la *Guía del usuario de AWS Billing*.

# Prácticas recomendadas para el spot de Amazon EC2
<a name="spot-best-practices"></a>

Amazon EC2 proporciona acceso a la capacidad de computación de EC2 de reserva en la Nube de AWS mediante instancias de spot con un ahorro de hasta el 90 % en comparación con los precios bajo demanda. La única diferencia entre instancias bajo demanda e instancias de spot es que Amazon EC2 puede interrumpir las instancias de spot con dos minutos de notificación si Amazon EC2 necesita de nuevo la capacidad. Para garantizar la mejor experiencia con las instancias de spot, es importante comprender y aplicar las mejores prácticas para su uso.

Se recomienda el uso de instancias de spot para aplicaciones sin estado, tolerantes a fallos y flexibles. Por ejemplo, las instancias de spot funciona bien para big data, cargas de trabajo en contenedores, CI/CD, servidores web sin estado, informática de alto rendimiento (HPC) y cargas de trabajo de representación.

Mientras se ejecutan, las instancias de spot son exactamente iguales que las instancias bajo demanda. Sin embargo, las instancias de spot no garantizan que pueda mantener las instancias en ejecución el tiempo suficiente para finalizar sus cargas de trabajo. Las instancias de spot tampoco garantizan que pueda obtener disponibilidad inmediata de las instancias que está buscando, ni que siempre pueda obtener la capacidad agregada que solicitó. Además, las interrupciones y la capacidad de las instancias de spot pueden cambiar con el paso del tiempo porque la disponibilidad de instancias de spot varía según la oferta y la demanda, y el rendimiento pasado no es garantía de resultados futuros.

Las instancias de spot no son adecuadas para cargas de trabajo que no sean flexibles, con estado, sin tolerancia a errores o estrechamente acopladas entre nodos de instancia. No se recomienda utilizar instancias de spot para las cargas de trabajo que no sean tolerantes a periodos ocasionales en los que la capacidad de destino en su totalidad no esté completamente disponible. Si bien seguir las prácticas recomendadas de spot para ser flexible en cuanto a los tipos de instancias y las zonas de disponibilidad es la mejor opción para obtener una alta disponibilidad, no hay garantías de que la capacidad esté disponible, ya que el aumento de la demanda de instancias bajo demanda puede interrumpir las cargas de trabajo en las instancias de spot.

Es de suma importancia que no se utilicen instancias de spot para estas cargas de trabajo ni que se intente realizar una conmutación por error a instancias bajo demanda para controlar las interrupciones o los periodos de falta de disponibilidad. La conmutación por error de instancias bajo demanda puede provocar interrupciones inadvertidas en el resto de las instancias de spot. Además, si se interrumpen las instancias de spot de una combinación de una instancia y una zona de disponibilidad, puede resultar difícil conseguir instancias bajo demanda con la misma combinación.

Con independencia de si es un usuario de instancias de spot con experiencia o no conoce este tipo de instancias, si está experimentando problemas con interrupciones o disponibilidad de instancias de spot, le aconsejamos que siga estas prácticas recomendadas para tener la mejor experiencia con el servicio de instancias de spot.

**Topics**
+ [Preparar instancias individuales para interrupciones](#prep-instances-for-interruptions)
+ [Sea flexible con respecto a los tipos de instancia y las zonas de disponibilidad](#be-instance-type-flexible)
+ [Uso de la selección del tipo de instancia basada en atributos](#use-attribute-based-instance-type-selection)
+ [Uso de las puntuaciones de ubicación de spot para identificar las regiones y zonas de disponibilidad óptimas](#use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones)
+ [Uso de grupos de escalado automático de EC2 o flota de EC2 para administrar la capacidad agrupada](#use-sf-asg-for-aggregate-capacity)
+ [Utilice la estrategia de asignación optimizada para capacidad y precio](#use-capacity-optimized-allocation-strategy)
+ [Utilice servicios integrados de AWS para administrar sus instancias de spot](#use-integrated-aws-services)
+ [¿Cuál es el mejor método de solicitud de spot que se puede utilizar?](#which-spot-request-method-to-use)

## Preparar instancias individuales para interrupciones
<a name="prep-instances-for-interruptions"></a>

La mejor manera de gestionar las interrupciones de instancias de spot correctamente es diseñar su aplicación para que sea tolerante a errores. Para lograrlo, puede aprovechar las recomendaciones de reequilibrio de instancia de EC2 y los avisos de interrupción de instancias de spot.

Una recomendación de reequilibrio de instancia de EC2 es una señal que notifica cuando una instancia de spot corre un riesgo elevado de interrupción. La señal brinda la oportunidad de administrar la instancia de spot de forma proactiva antes del aviso de interrupción de instancia de spot de dos minutos de anticipación. Puede decidir reequilibrar su carga de trabajo con instancias de spot nuevos o existentes que no tengan un riesgo elevado de interrupción. Hemos facilitado el uso de esta señal mediante la característica de reequilibrio de capacidad en los grupos de escalado automático y flota de EC2. 

Un aviso de interrupción de instancia de spot es una advertencia que se emite dos minutos antes de que Amazon EC2 interrumpa una instancia de spot. Si su carga de trabajo acepta “cambios de programación”, puede configurar sus instancias de spot para que se detengan o hibernen, en lugar de terminarlas, cuando se interrumpan. Amazon EC2 detiene o hiberna automáticamente sus instancias de spot en caso de interrupción y las reanuda también de manera automática cuando hay capacidad disponible.

Se recomienda crear una regla en [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/index.html) que capture las recomendaciones de reequilibrio y las notificaciones de interrupción y, a continuación, active un punto de control para el progreso de la carga de trabajo o gestione correctamente la interrupción. Para obtener más información, consulte [Monitorear las señales de recomendación de reequilibrio](rebalance-recommendations.md#monitor-rebalance-recommendations). Para obtener un ejemplo detallado que le explica cómo crear y utilizar reglas de eventos, consulte [Aprovechamiento de los avisos de interrupción de instancias de spot de Amazon EC2](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/).

Para obtener más información, consulte [Recomendación de reequilibrio de instancias de EC2](rebalance-recommendations.md) y [Interrupciones de instancias de spot](spot-interruptions.md).

## Sea flexible con respecto a los tipos de instancia y las zonas de disponibilidad
<a name="be-instance-type-flexible"></a>

Un grupo de capacidad de spot es un conjunto de instancias de EC2 que no se utilizan con el mismo tipo de instancia (por ejemplo, `m5.large`) y zona de disponibilidad (por ejemplo: us-east-1a). Debe ser flexible en cuanto a los tipos de instancia que solicita y las zonas de disponibilidad en las que puede implementar la carga de trabajo. Esto le da a las instancias de spot una mejor oportunidad de encontrar y asignar la cantidad necesaria de capacidad de cómputo. Por ejemplo, no pida solo `c5.large` si estaría dispuesto a usar larges de las familias c4, m5 y m4.

En función de sus necesidades concretas, puede evaluar con qué tipos de instancia puede ser flexible para cumplir sus requisitos informáticos. Si una carga de trabajo se puede escalar verticalmente, debe incluir tipos de instancia más grandes (más vCPU y memoria) en sus solicitudes. Si solo puede escalar horizontalmente, debe incluir tipos de instancias de generación anterior, ya que tienen menos demanda de los clientes bajo demanda.

Una buena regla general es ser flexible con al menos 10 tipos de instancias para cada carga de trabajo. Además, asegúrese de que todas las zonas de disponibilidad estén configuradas para su uso en la VPC y seleccionadas para su carga de trabajo.

## Uso de la selección del tipo de instancia basada en atributos
<a name="use-attribute-based-instance-type-selection"></a>

Con la selección del tipo de instancia basada en atributos, puede especificar los atributos de la instancia, como las vCPU, la memoria y el almacenamiento, para la carga de trabajo que desee ejecutar. El escalado automático de EC2 o la Flota de EC2 identificarán e iniciarán automáticamente las instancias que coincidan con los atributos especificados. Esto elimina el esfuerzo necesario para seleccionar manualmente tipos de instancias específicos, lo que requiere un conocimiento profundo de la oferta de cada tipo de instancia.

Además, la selección del tipo de instancia basada en atributos le permite utilizar automáticamente los tipos de instancias recién lanzados a medida que estén disponibles. Esto garantiza un acceso sin problemas a una gama cada vez más amplia de capacidades de instancias de spot.

La selección del tipo de instancia basada en atributos es ideal para cargas de trabajo y marcos de trabajo que pueden ser flexibles sobre los tipos de instancias en los que se ejecutan, tales como la computación de alto rendimiento (HPC) y cargas de trabajo de macrodatos.

Para obtener más información, consulte [Crear un grupo de instancias mixto mediante la selección del tipo de instancia basada en atributos](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) en la *Guía del usuario de Amazon EC2 Auto Scaling* y [Especifique atributos para la selección del tipo de instancia para la flota de EC2 o flota de spot](ec2-fleet-attribute-based-instance-type-selection.md) en esta guía.

## Uso de las puntuaciones de ubicación de spot para identificar las regiones y zonas de disponibilidad óptimas
<a name="use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones"></a>

Las instancias de spot son capacidad de EC2 no utilizada y esta capacidad fluctúa en función de la oferta y la demanda de EC2. Como resultado, es posible que no siempre obtenga la capacidad de spot exacta que necesita en una ubicación específica y en un momento específico. Para mitigar esta imprevisibilidad, puede utilizar la característica de puntuación de ubicación de spot. Esta característica ofrece recomendaciones para las regiones o zonas de disponibilidad que tienen más probabilidades de tener suficiente capacidad para satisfacer sus necesidades de capacidad de spot sin necesidad de que primero tenga que iniciar instancias de spot en esas ubicaciones.

La puntuación de ubicación de spot se utiliza mejor para las cargas de trabajo que pueden ser flexibles en cuanto a los tipos de instancias y la región o zona de disponibilidad que pueden utilizar. Lo único que tiene que hacer es especificar la capacidad de spot que necesita, los requisitos de tipo de instancia y si desea recibir recomendaciones para las regiones o las zonas de disponibilidad. A cambio, recibirá una puntuación del 1 al 10 por cada región o zona de disponibilidad, lo que indica la probabilidad de aprovisionar correctamente la capacidad de spot solicitada en esa ubicación. Una puntuación de 10 indica que es probable que la solicitud de spot tenga éxito.

Es importante tener en cuenta que la puntuación de ubicación de spot es una recomendación puntual, ya que la capacidad puede variar con el tiempo. No garantiza la capacidad disponible ni predice el riesgo de interrupción.

Puede utilizar la característica de puntuación de ubicación de spot en la consola de Amazon EC2, en AWS CLI, o en un SDK. Para obtener más información, consulte [Puntuación de ubicación de spot](spot-placement-score.md). 

## Uso de grupos de escalado automático de EC2 o flota de EC2 para administrar la capacidad agrupada
<a name="use-sf-asg-for-aggregate-capacity"></a>

Las instancias de spot le permiten pensar en términos de capacidad agrupada, en unidades que incluyen vCPU, memoria, almacenamiento o rendimiento de red, en lugar de pensar en términos de instancias individuales. Los grupos de escalado automático y flota de EC2 le permiten iniciar y mantener una capacidad objetivo, así como solicitar automáticamente recursos para reemplazar cualquier recurso que sufra una interrupción o terminación manual. Cuando configura un grupo de escalado automático o una flota de EC2, solo tiene que especificar los tipos de instancia y la capacidad objetivo en función de las necesidades de la aplicación. Para obtener más información, consulte [Grupos de escalado automático](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html) en la *Guía del usuario de Amazon EC2 Auto Scaling* y [Crear una flota de EC2](create-ec2-fleet.md) en esta guía del usuario.

## Utilice la estrategia de asignación optimizada para capacidad y precio
<a name="use-capacity-optimized-allocation-strategy"></a>

Las estrategias de asignación en grupos de Auto Scaling ayudan a aprovisionar la capacidad de destino sin necesidad de buscar manualmente los grupos de capacidad de spot con capacidad sobrante. Recomendamos utilizar la estrategia `price-capacity-optimized` porque aprovisiona automáticamente instancias de los grupos de capacidad de spot más disponibles que también tienen el precio más bajo posible. También puede usar la estrategia de asignación `price-capacity-optimized` en flota de EC2. Debido a que la capacidad de la instancia de spot proviene de grupos con capacidad óptima, esto disminuye la posibilidad de que se reclamen las instancias de spot. Para obtener más información, consulte [Estrategias de asignación para múltiples tipos de instancias](https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html) en la *Guía del usuario de Amazon EC2 Auto Scaling* y [Cuando las cargas de trabajo tienen un alto costo de interrupción](ec2-fleet-allocation-strategy.md#ec2-fleet-strategy-capacity-optimized) en esta guía del usuario.

## Utilice servicios integrados de AWS para administrar sus instancias de spot
<a name="use-integrated-aws-services"></a>

Otros servicios de AWS se integran con instancias de spot para reducir los costos informáticos generales sin necesidad de administrar las instancias o flotas individuales. Recomendamos que se plantee utilizar las siguientes soluciones para las cargas de trabajo aplicables: Amazon EMR, Amazon Elastic Container Service, AWS Batch, Amazon Elastic Kubernetes Service, Amazon SageMaker AI, AWS Elastic Beanstalk y Amazon GameLift Servers. Para obtener más información sobre las prácticas recomendadas de instancias de spot con estos servicios, consulte el [sitio web de Amazon EC2 instancias de spot Workshops](https://ec2spotworkshops.com/).

## ¿Cuál es el mejor método de solicitud de spot que se puede utilizar?
<a name="which-spot-request-method-to-use"></a>

Use la siguiente tabla para determinar qué API debe utilizar al solicitar instancias de spot.


****  

| API | ¿Cuándo se debe utilizar? | Caso de uso | ¿Debo utilizar esta API? | 
| --- | --- | --- | --- | 
|  [CreateAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Cree un grupo de Auto Scaling que administre el ciclo de vida de las instancias a la vez que mantiene el número de instancias deseado. Admite escalado horizontal (agregar más instancias) entre los límites mínimo y máximo especificados.  | Sí | 
| [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Cree una flota de instancias bajo demanda e instancias de spot en una única solicitud, con varias especificaciones de inicialización que varían por tipo de instancia, AMI, zona de disponibilidad o subred. La estrategia de asignación de instancias de spot se establece de manera predeterminada como `lowest-price` por unidad, pero se puede cambiar a `price-capacity-optimized`, `capacity-optimized` o `diversified`.  |  Sí, en modo `instant` si no necesita escalado automático  | 
| [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Lance un número especificado de instancias utilizando una AMI y un tipo de instancia.  |  No, porque RunInstances no permite tipos de instancias mixtos en una sola solicitud  | 
| [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  NO UTILIZAR. RequestSpotFleet es una API heredada sin inversión planificada.   | No | 
| [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  NO UTILIZAR. RequestSpotInstances es una API heredada sin inversión planificada.   | No | 

# Cómo funcionan las instancias de spot
<a name="how-spot-instances-work"></a>

Para iniciar una instancia de spot, puede crear una *Solicitud de instancia de Spot*, o Amazon EC2 crea una solicitud de instancia de spot en su nombre. La instancia de spot se inicia cuando se cumple la solicitud de instancia de spot.

Puede iniciar una instancia de spot usando varios servicios diferentes. Para obtener más información, consulte [Introducción a las instancias de spot de Amazon EC2](https://aws.amazon.com/ec2/spot/getting-started/). En esta guía del usuario, describimos las siguientes formas de iniciar una instancia de spot usando EC2:
+ Puede crear una solicitud de instancia de spot mediante el [asistente de inicialización de instancias](ec2-launch-instance-wizard.md) en la consola de Amazon EC2 o el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html). Para obtener más información, consulte [Administración de instancias de spot](using-spot-instances-request.md).
+ Puede crear una flota de EC2, en la que especifique la cantidad deseada de instancias de spot. Amazon EC2 crea una solicitud de instancia de spot en su nombre para cada instancia de spot especificada en la flota de EC2. Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md).
+ Puede crear una solicitud de flota de spot en la que especifique la cantidad deseada de instancias de spot. Amazon EC2 crea una solicitud de instancia de spot en su nombre para cada instancia de spot especificada en la solicitud de flota de spot. Para obtener más información, consulte [Crear una flota de spot](create-spot-fleet.md).

La instancia de spot se inicia si hay capacidad disponible. La instancia de spot se ejecuta hasta que la detenga o la termine, o hasta que Amazon EC2 la interrumpa (lo que se conoce como una *interrupción de instancia de spot*). Amazon EC2 puede detener, terminar o hibernar una instancia de spot cuando la interrumpe.

Cuando utilice instancias de spot, debe estar preparado para las interrupciones. Amazon EC2 puede interrumpir su instancia de spot si la demanda de instancias de spot aumenta, si la oferta de instancias de spot disminuye. Cuando Amazon EC2 interrumpe una instancia de spot, proporciona un aviso de interrupción de instancia de spot, que envía a la instancia una advertencia dos minutos antes de que Amazon EC2 la interrumpa. No puede habilitar la protección contra terminación para instancias de spot. Para obtener más información, consulte [Interrupciones de instancias de spot](spot-interruptions.md).

**Topics**
+ [Estados de las solicitudes de instancia de spot](#creating-spot-request-status)
+ [iniciar instancias de spot en un grupo de inicialización](#spot-launch-group)
+ [iniciar instancias de spot en un grupo de zona de disponibilidad](#spot-az-group)
+ [iniciar instancias de spot en una VPC](#concepts-spot-instances-vpcs)
+ [Inicialización de instancias de rendimiento ampliable](#burstable-spot-instances)
+ [Inicialización en hardware de un solo inquilino](#spot-instance-tenancy)

## Estados de las solicitudes de instancia de spot
<a name="creating-spot-request-status"></a>

Una solicitud de instancia de spot puede tener uno de los siguientes estados:
+ `open`: la solicitud aún debe completarse.
+ `active`: la solicitud se ha completado y tiene una instancia de spot asociada.
+ `failed`: la solicitud tiene uno o varios parámetros incorrectos.
+ `closed`: la instancia de spot se ha interrumpido o terminado.
+ `disabled`: ha detenido la instancia de spot.
+ `cancelled`: ha cancelado la solicitud o la solicitud ha caducado.

La siguiente ilustración representa las transiciones entre los distintos estados de una solicitud. Tenga en cuenta que las transiciones dependen de si el tipo de solicitud es de una única vez o persistente.

![\[Estados de las solicitudes de instancias de spot.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/spot_request_states.png)


Una solicitud de instancia por única vez permanece activa hasta que Amazon EC2 inicia la instancia de spot, la solicitud caduca o el usuario la cancela. Si no hay capacidad disponible, la instancia de spot se termina y la solicitud de instancia de spot se cierra.

Una solicitud de instancia de spot persistente permanece activa hasta que caduca o hasta que el usuario la cancela, incluso si se cumple la solicitud. Si no hay capacidad disponible, la instancia de spot se interrumpe. Una vez interrumpida la instancia, cuando vuelve a disponer de capacidad, la instancia de spot se inicia si se había detenido o se reanuda si estaba hibernando. Puede detener una instancia de spot e iniciarla de nuevo si la capacidad está disponible. Si se termina la instancia de spot (con independencia de si la instancia de spot está en un estado detenido o en ejecución), la solicitud de instancia de spot se abre de nuevo y Amazon EC2 inicia una nueva instancia de spot. Para obtener más información, consulte [Detener una instancia de spot](using-spot-instances-request.md#stopping-a-spot-instance), [Iniciar una instancia de spot](using-spot-instances-request.md#starting-a-spot-instance) y [Terminar una instancia de spot](using-spot-instances-request.md#terminating-a-spot-instance).

Puede realizar el seguimiento del estado de las solicitudes de instancia de spot, así como del estado de las instancias de spot iniciadas, a través del estado. Para obtener más información, consulte [Obtención del estado de una solicitud de instancia de spot](spot-request-status.md).

## iniciar instancias de spot en un grupo de inicialización
<a name="spot-launch-group"></a>

Especifique un grupo de inicialización en la solicitud de instancia de spot para indicar a Amazon EC2 que lance un conjunto de instancias de spot solo si puede iniciarlas todas. Además, si el servicio de spot debe terminar una de las instancias de un grupo de inicialización, debe terminarlas todas. No obstante, si usted es el que termina una o más de las instancias en un grupo de inicialización, Amazon EC2 no termina el resto de las instancias del grupo de inicialización.

Si bien esta opción puede resultar útil, agregar esta limitación puede reducir las posibilidades de que se cumpla la solicitud de instancia de spot y aumentar las posibilidades de que se terminen las instancias de spot. Por ejemplo, el grupo de inicialización incluye instancias de múltiples zonas de disponibilidad. Si la capacidad de una de estas zonas de disponibilidad se reduce y ya no está disponible, entonces Amazon EC2 termina todas las instancias del grupo de inicialización.

Si crea otra solicitud de instancia de spot realizada correctamente que especifica el mismo grupo de inicialización (existente) que una solicitud anterior realizada correctamente, las instancias nuevas se agregarán al grupo de inicialización. Posteriormente, si se termina una instancia de este grupo de inicialización, se terminan todas las instancias del grupo, incluidas las instancias iniciadas en la primera y segunda solicitud.

## iniciar instancias de spot en un grupo de zona de disponibilidad
<a name="spot-az-group"></a>

Especifique un grupo de zona de disponibilidad en su solicitud de instancia de spot para indicar a Amazon EC2 que debe iniciar un conjunto de instancias de spot en la misma zona de disponibilidad. Amazon EC2 no necesita interrumpir todas las instancias de un grupo de zona de disponibilidad al mismo tiempo. Si Amazon EC2 debe interrumpir una de las instancias de un grupo de zona de disponibilidad, las demás siguen ejecutándose.

Si bien esta opción puede resultar útil, agregar esta limitación puede reducir las probabilidades de que se cumpla su solicitud de instancia de spot.

Si especifica un grupo de zona de disponibilidad, pero no una zona de disponibilidad en la solicitud de instancia de spot, el resultado dependerá de la red especificada.

**VPC predeterminada**  
Amazon EC2 usa la zona de disponibilidad para la subred especificada. Si no especifica una subred, selecciona una zona de disponibilidad y su subred predeterminada, pero no necesariamente la zona más barata. Si eliminó la subred predeterminada para una zona de disponibilidad, entonces deberá especificar una subred diferente.

**VPC no predeterminada**  
Amazon EC2 usa la zona de disponibilidad para la subred especificada.

## iniciar instancias de spot en una VPC
<a name="concepts-spot-instances-vpcs"></a>

La subred de las instancias de spot se especifica de la misma forma que una subred para las instancias bajo demanda.
+ [VPC predeterminada] Si desea que la instancia de spot se lance en una zona de disponibilidad de bajo precio específica, debe especificar la subred correspondiente en la solicitud de instancia de spot. Si no especifica una subred, Amazon EC2 selecciona una automáticamente y la zona de disponibilidad de esta subred podría no tener el precio de spot más bajo.
+ [VPC no predeterminada] Debe especificar la subred para la instancia de spot.

## Inicialización de instancias de rendimiento ampliable
<a name="burstable-spot-instances"></a>

Los tipos de instancias T son [instancias de rendimiento ampliables](burstable-performance-instances.md). Si inicia instancias de spot mediante un tipo de instancias de rendimiento ampliable y si piensa utilizar instancias de spot de rendimiento ampliable inmediatamente y durante un corto periodo de tiempo, sin tiempo de inactividad para acumular créditos de CPU, le recomendamos que las lance en [modo estándar](burstable-performance-instances-standard-mode.md) para evitar pagar costos más elevados. Si inicia instancias de spot de rendimiento ampliable en [modo ilimitado](burstable-performance-instances-unlimited-mode.md) y amplía el uso de la CPU inmediatamente, gastará créditos sobrantes para el rendimiento ampliable. Si utiliza la instancia durante un periodo corto de tiempo, la instancia no tiene tiempo de acumular créditos de CPU para compensar los créditos sobrantes y se le cobrarán dichos créditos sobrantes al terminar la instancia.

El modo ilimitado resulta adecuado para instancias de spot de rendimiento ampliable solo si la instancia se ejecuta el tiempo suficiente para acumular créditos de CPU para el rendimiento ampliable. De lo contrario, al tener que pagar los créditos sobrantes, las instancias de spot con rendimiento ampliable serán más caras que otras instancias. Para obtener más información, consulte [Cuando utilizar el modo ilimitado en lugar del modo de CPU fija](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode).

Las instancias T2, cuando se configuran en [modo estándar](burstable-performance-instances-standard-mode.md), obtienen [créditos de inicialización](burstable-performance-instances-standard-mode-concepts.md#launch-credits). Las instancias T2 son las únicas instancias de rendimiento ampliables que obtienen créditos de inicialización. Los créditos de inicialización tienen como objetivo ofrecer una experiencia de inicialización inicial productiva para instancias T2 proporcionando recursos de computación suficientes para configurar la instancia. No se permiten inicializaciones repetidas de instancias T2 para acceder a nuevos créditos de inicialización. Si necesita una CPU sostenida, puede ganar créditos (mediante un periodo de reposo), utilizar el [modo ilimitado](burstable-performance-instances-unlimited-mode.md) para las instancias de spot T2 o utilizar un tipo de instancia con CPU dedicada.

## Inicialización en hardware de un solo inquilino
<a name="spot-instance-tenancy"></a>

Puede ejecutar una instancia de spot en hardware de inquilino único. Las instancias de spot dedicadas están aisladas físicamente de las instancias que pertenecen a otras cuentas de AWS. Para obtener más información, consulte [Instancias dedicadas de Amazon EC2](dedicated-instance.md) e [Instancias dedicadas de Amazon EC2](https://aws.amazon.com/ec2/pricing/dedicated-instances/).

Para ejecutar una instancia de spot dedicada, realice una de las siguientes operaciones:
+ Cuando cree la solicitud de instancia de spot, especifique una tenencia `dedicated`. Para obtener más información, consulte [Administración de instancias de spot](using-spot-instances-request.md).
+ Solicite una instancia dedicada en una VPC con una tenencia de instancia `dedicated`. Para obtener más información, consulte [Iniciar instancias dedicadas en una VPC con una tenencia predeterminada](dedicatedinstancesintovpc.md). No puede solicitar una instancia de spot con una tenencia `default` si la solicitó en una VPC con una tenencia de instancia `dedicated`.

Todas las familias de instancias admiten instancias de spot dedicadas excepto instancias T. Para cada familia de instancias admitidas, solo la instancia o metal de mayor tamaño admite instancias de spot dedicadas.

# Visualización del historial de precios de instancias de spot
<a name="using-spot-instances-history"></a>

Amazon EC2 define los precios de las instancias de spot y estos se ajustan gradualmente en función de las tendencias a largo plazo de la oferta y la demanda de capacidad de este tipo de instancia.

Cuando su solicitud se haya completado, sus instancias de spot se inician al precio de spot, sin exceder el precio bajo demanda. Puede ver el historial del precio de spot para los últimos 90 días, filtrando por tipo de instancia, sistema operativo y zona de disponibilidad.

Para conocer los precios *actuales* de las instancias de spot, consulte [Precios de instancias de spot de Amazon EC2](https://aws.amazon.com/ec2/spot/pricing/).

------
#### [ Console ]

**Visualización del historial de precios de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests (Solicitudes de spot)**.

1. Elija **Historial de precios**. 

1. En **Graph (Gráfico)**, seleccione para comparar el historial de precios por **Availability Zones (Zonas de disponibilidad)** o por **Instance Types (Tipos de instancia)**.
   + Si elige **Zonas de disponibilidad**, entonces elija el **Tipo de instancia**, el sistema operativo (**Plataforma** y el **Intervalo de fechas** cuyo historial de precios desea ver.
   + Si elige **Tipos de instancias**, entonces elija hasta cinco **Tipos de instancias**, la **Zona de disponibilidad**, el sistema operativo (**Plataforma** y el **Intervalo de fechas** cuyo historial de precios desea ver.

   La siguiente captura de pantalla muestra una comparación de precios para diferentes tipos de instancias.  
![\[Herramienta Historial de precios de instancias de spot en la consola de Amazon EC2.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/spot-instance-pricing-history.png)

1. Coloque (o mueva) el puntero sobre el gráfico para mostrar los precios a horas específicas en el rango de fechas seleccionado. Los precios se muestran en los bloques de información sobre el gráfico. El precio mostrado en la fila superior muestra el precio en una fecha específica. El precio mostrado en la segunda fila muestra el precio medio en el intervalo de fechas seleccionado.

1. Para mostrar el precio por vCPU, active **Display normalized prices (Mostrar precios normalizados)**. Para mostrar el precio del tipo de instancia, desactive **Display normalized prices (Mostrar precios normalizados)**.

------
#### [ AWS CLI ]

**Visualización del historial de precios de spot**  
Utilice el siguiente comando [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html).

```
aws ec2 describe-spot-price-history \
    --instance-types c6i.xlarge \
    --product-descriptions "Linux/UNIX" \
    --start-time 2025-04-01T00:00:00 \
    --end-time 2025-04-02T00:00:0
```

------
#### [ PowerShell ]

**Visualización del historial de precios de spot**  
Utilice el cmdlet [Get-EC2SpotPriceHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotPriceHistory.html).

```
Get-EC2SpotPriceHistory `
    -InstanceType c6i.xlarge `
    -ProductDescription "Linux/UNIX" `
    -UtcStartTime 2025-04-01T00:00:00 `
    -UtcEndTime 2025-04-02T00:00:0
```

------

# Ahorro en la compra de instancias de spot
<a name="spot-savings"></a>

Puede ver la información sobre el uso y el ahorro de las instancias de spot en el nivel de cada flota o de todas las instancias de spot en ejecución. En el nivel de cada flota, la información sobre el uso y el ahorro incluye todas las instancias iniciadas y terminadas por la flota. Puede ver esta información de la última hora o de los últimos tres días.

En la siguiente captura de pantalla de la sección **Savings** (Ahorros), se muestra la información del uso y el ahorro de spot de una flota de spot.

![\[La sección Savings (Ahorros) en la página Detalles de la flota de spot.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/spot-savings.png)


Puede ver la siguiente información de uso y de ahorro:
+ **“Spot instances”** (instancias de spot): La cantidad de instancias puntuales iniciadas y terminadas por la flota de spot. Al ver el resumen del ahorro, el número representa todas las instancias de spot en ejecución.
+ **vCPU-hours (Horas de CPU virtual)** –: número de horas de la CPU virtual utilizadas en todas las instancias de spot en el período de tiempo seleccionado.
+ **Mem(GiB)-hours (Horas de memoria (GiB))**:– número de horas de GiB utilizadas en todas las instancias de spot en el período de tiempo seleccionado.
+ **On-Demand total (Total bajo demanda)**:– cantidad total pagada por el período de tiempo seleccionado si estas instancias se hubieran iniciado como instancias bajo demanda.
+ **Spot total (Total de spot)**:– cantidad total a pagar por el período de tiempo seleccionado.
+ **Savings (Ahorro)**:– porcentaje de ahorro al no pagar un precio bajo demanda.
+ **Average cost per vCPU-hour (Costo medio por hora de CPU virtual)**:– costo medio por hora del uso de la CPU virtual en todas las instancias de spot durante el período de tiempo seleccionado y calculado del siguiente modo: **Average cost per vCPU-hour (Costo medio por hora de CPU virtual)** = **Spot total (Total de spot)** / **vCPU-hours (Horas de CPU virtual)**.
+ **Average cost per mem(GiB)-hour (Costo medio por hora de memoria (GiB)**:– costo medio por hora del uso de GiB en todas las instancias de spot durante el período de tiempo seleccionado y calculado del siguiente modo: **Average cost per mem(GiB)-hour (Costo medio por hora de CPU virtual)** = **Spot total (Total de spot)** / **Mem(GiB)-hours (Horas de memoria (GiB))**.
+ Tabla **“Details” (Detalles)**: los distintos tipos de instancia (cantidad de instancias por tipo de instancia entre paréntesis) que incluye la flota de spot. En el resumen del ahorro se incluyen todas las instancias de spot en ejecución.

La información del ahorro solo puede verse con la consola de Amazon EC2.

**Visualización de la información de ahorro de una flota de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests (Solicitudes de spot)**.

1. Seleccione el ID de una solicitud de flota de spot y desplácese hasta la sección **Savings** (Ahorros).

   Como alternativa, seleccione la casilla situada junto al ID de la solicitud de flota de spot y elija la pestaña **Ahorros**.

1. De forma predeterminada, la página muestra la información de uso y de ahorro de los últimos tres días. Puede elegir la **última hora** o los **últimos tres días**. Para las Flotas de spot iniciadas hace menos de una hora, la página muestra el ahorro previsto de dicha hora.

**Visualización de la información de ahorro de todas las instancias de spot en ejecución**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests (Solicitudes de spot)**.

1. Seleccione **Savings Summary** (Resumen de ahorro).

# Crear una solicitud de instancia de spot
<a name="spot-requests"></a>

Para utilizar las instancias de spot, crea una solicitud de instancia de spot que incluye la cantidad de instancias deseada, el tipo de instancia y la zona de disponibilidad. Si hay capacidad disponible, Amazon EC2 satisface su solicitud de manera inmediata. De lo contrario, Amazon EC2 espera hasta que pueda atender su solicitud o hasta que usted la cancele.

Puede utilizar el [asistente de inicialización de instancias](ec2-launch-instance-wizard.md) en la consola de Amazon EC2 o el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) para solicitar una instancia de spot del mismo modo que puede iniciar una instancia bajo demanda. Este método solo se recomienda por las razones siguientes:
+ Ya está utilizando el [asistente de inicialización de instancias](ec2-launch-instance-wizard.md) o el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) para iniciar instancias bajo demanda, y simplemente desea hacer un cambio para iniciar instancias de spot mediante la modificación de un solo parámetro.
+ No necesita varias instancias con distintos tipos de instancias.

Por lo general, este método no se recomienda para iniciar instancias de spot porque no se puede especificar varios tipos de instancias y no puede iniciar instancias de spot e instancias bajo demanda en la misma solicitud. Para conocer los métodos preferidos para iniciar instancias de spot, que incluyen la inicialización de una *flota* que, a su vez, incluye instancias de spot e instancias bajo demanda con varios tipos de instancias, consulte [¿Cuál es el mejor método de solicitud de spot que se puede utilizar?](spot-best-practices.md#which-spot-request-method-to-use)

Si solicita varias instancias de spot a la vez, Amazon EC2 crea solicitudes de instancia de spot independientes, lo que permite realizar el seguimiento del estado de cada una por separado. Para obtener más información acerca de las instancias de spot, consulte [Obtención del estado de una solicitud de instancia de spot](spot-request-status.md).

------
#### [ Console ]<a name="create-spot-instance-request-console-procedure"></a>

**Para crear una solicitud de instancia de spot**

Los pasos del 1 al 9 son los mismos pasos que usaría para iniciar una instancia bajo demanda. En el paso 10, configura la solicitud de instancia de spot.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En la barra de navegación de la parte superior de la pantalla, seleccione una región.

1. En el panel de la consola de Amazon EC2, elija **iniciar instancia** .

1. (Opcional) En **Name and tags** (Nombre y etiquetas), puede nombrar la instancia y etiquetar la solicitud de instancia de spot, la instancia, los volúmenes y los gráficos elásticos. Para obtener más información acerca de las etiquetas, consulte [Etiquetar los recursos de Amazon EC2](Using_Tags.md).

   1. En **Name** (Nombre), ingrese un nombre descriptivo para la instancia.

      El nombre de la instancia es una etiqueta, donde la clave es **Name** (Nombre) y el valor es el nombre que especifique. Si no especifica un nombre, la instancia se puede identificar mediante su ID, que se genera automáticamente al iniciar la instancia.

   1. Elija **Add additional tags** (Agregar etiquetas adicionales) para etiquetar la solicitud de instancia de spot, la instancia, los volúmenes y los gráficos elásticos. Elija **Add tag** (Agregar etiqueta) y, a continuación, ingrese una clave y un valor, y seleccione el tipo de recurso que desea etiquetar. Elija **Add tag** (Agregar etiqueta) para cada etiqueta adicional.

1. En **Application and OS Images (Amazon Machine Image)** (Imágenes de aplicaciones y sistema operativo [Imagen de máquina de Amazon]), elija el sistema operativo (SO) para la instancia y luego, seleccione una AMI. Para obtener más información, consulte [Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon)](ec2-instance-launch-parameters.md#liw-ami).

1. En **Instance type** (Tipo de instancia), seleccione el tipo de instancia que cumpla con los requisitos para la configuración de hardware y el tamaño de la instancia. Para obtener más información, consulte [Tipo de instancia](ec2-instance-launch-parameters.md#liw-instance-type).

1. En **Key pair (login)** (Par de claves [inicio de sesión]), elija un par de claves existente o elija **Create new key pair** (Crear par de claves nuevo) para crear uno nuevo. Para obtener más información, consulte [Pares de claves e instancias de Amazon EC2](ec2-key-pairs.md).
**importante**  
Si elige la opción **Proceed without key pair (Not recommended)** (Continuar sin un par de claves [No recomendado]), no podrá conectarse a la instancia a menos que elija una AMI que esté configurada para ofrecer a los usuarios otra forma de iniciar sesión.

1. En **Network settings** (Configuración de red), utilice la configuración predeterminada o elija **Edit** (Editar) para configurar los ajustes de red según sea necesario.

   Los grupos de seguridad forman parte de la configuración de la red y definen las reglas del firewall para la instancia. Estas reglas especifican qué tráfico procedente de la red se entregará en la instancia.

   Para obtener más información, consulte [Configuración de red](ec2-instance-launch-parameters.md#liw-network-settings).

1. La AMI que seleccione incluye uno o más volúmenes de almacenamiento, incluido el volumen de dispositivo raíz. En **Configure storage** (Configurar almacenamiento), puede especificar los volúmenes adicionales que desea adjuntar a la instancia mediante **Add new volume** (Agregar volumen nuevo). Para obtener más información, consulte [Configurar almacenamiento](ec2-instance-launch-parameters.md#liw-storage).

1. En **Advanced details** (Detalles avanzados), configure la solicitud de instancia de spot de la siguiente manera:

   1. En **Opción de compra**, seleccione la casilla de verificación **Solicitar instancias de spot**.

   1. Puede conservar la configuración predeterminada para la solicitud de instancia de spot o elegir **Customize** (Personalizar) (a la derecha) para especificar la configuración personalizada para la solicitud de instancia de spot.

      Cuando elige **Customize** (Personalizar), aparecen los siguientes campos.

      1. **Maximum price** (Precio máximo): puede solicitar instancias de spot al precio de spot, limitado al precio bajo demanda, o puede especificar el monto máximo que está dispuesto a pagar.
**aviso**  
Si especifica un precio máximo, las instancias se interrumpirán con más frecuencia que si elige **Sin precio máximo**.  
Si se especifica un precio máximo, debe ser superior a 0,001 USD. Si se especifica un valor inferior a 0,001 USD, no podrá lanzarse.
         + **No maximum price** (Sin precio máximo): la instancia de spot se iniciará al precio de spot actual. El precio nunca superará el precio bajo demanda. (Recomendado)
         + **Set your maximum price (Establecer el precio máximo [por instancia/por hora])**: puede especificar el monto máximo que está dispuesto a pagar.
           + Si especifica un precio máximo inferior al precio de spot actual, la instancia de spot no se iniciará.
           + Si especifica un precio máximo superior al precio de spot actual, su instancia de spot se iniciará y se cobrará al precio de spot actual. Una vez que la instancia de spot está en ejecución, si el precio de spot supera el precio máximo, Amazon EC2 interrumpe la instancia de spot.
           + Independientemente del precio máximo que especifique, siempre se le cobrará el precio de spot actual.

           Para revisar las tendencias de los precios de spot, consulte [Visualización del historial de precios de instancias de spot](using-spot-instances-history.md).

      1. **Request type** (Tipo de solicitud): el tipo de solicitud de instancia de spot que elija determina qué ocurre si la instancia de spot se interrumpe.
         + **Por única vez**: Amazon EC2 realiza una solicitud por única vez para su instancia de spot. Si la instancia de spot se interrumpe, la solicitud no se vuelve a enviar.
         + **Solicitud persistente**: Amazon EC2 realiza una solicitud persistente para su instancia de spot. Si la instancia de spot se interrumpe, se vuelve a enviar la solicitud para reponer la instancia de spot que se interrumpió.

         Si no se especifica un valor, el predeterminado es una solicitud por única vez.

      1. **Válido para** (Válido hasta): la fecha de vencimiento de una solicitud *persistente* de instancia de spot.

         Este campo no se admite para solicitudes por única vez. Una solicitud *por única vez* permanece activa hasta que se inician todas las intancias de la solicitud o hasta que se cancela la solicitud. 
         + **No request expiry date** (Sin fecha de vencimiento de solicitud): la solicitud permanece activa hasta que se cancela.
         + **Set your request expiry date** (Fijar la fecha de vencimiento de la solicitud): la solicitud persistente permanece activa hasta la fecha especificada o hasta que se cancela.

      1. **Interruption behavior** (Comportamiento de interrupción): el comportamiento que elija determinará qué ocurrirá cuando una instancia de spot se interrumpa.
         + En el caso de solicitudes persistentes, los valores válidos son **Stop** (Detener) e **Hibernate** (Hibernar). Cuando se detiene una instancia, se aplican cargos por almacenamiento de volumen de EBS.
**nota**  
Las instancias de spot utilizan ahora la misma funcionalidad de hibernación que las instancias bajo demanda. Para habilitar la hibernación, puede seleccionar **Hibernar** aquí o **Habilitar** en el campo de **Detener: comportamiento de hibernación**, que aparece más abajo en el asistente de inicialización de instancias. Para conocer los requisitos previos de hibernación, consulte [Requisitos previos para la hibernación de instancias de EC2](hibernating-prerequisites.md).
         + En el caso de solicitudes por única vez, solo **Terminate** (Terminar) es válido.

         Si no se especifica un valor, el predeterminado es **Terminar**, el cual no es válido para las solicitudes de instancia de spot persistentes. Si se mantiene el valor predeterminado y se intenta iniciar una solicitud de instancia de spot persistente, se producirá un error.

         Para obtener más información, consulte [Comportamiento de las interrupciones de las instancias de spot](interruption-behavior.md).

1. En el panel **Resumen**, en **Cantidad de instancias**, escriba la cantidad de instancias que iniciará.
**nota**  
Amazon EC2 crea una solicitud independiente para cada instancia de spot.

1. En el panel **Summary** (Resumen), revise los detalles de la instancia y realice los cambios necesarios. Después de enviar la solicitud de instancia de spot, no podrá cambiar los parámetros de la solicitud. Puede navegar directamente a una sección del asistente de inicialización de instancias mediante la selección del enlace correspondiente en el panel **Summary** (Resumen). Para obtener más información, consulte [Resumen](ec2-instance-launch-parameters.md#liw-summary).

1. Cuando lo tenga todo listo para iniciar una instancia, elija **iniciar instancia**. 

   Si se produce un error al iniciar la instancia o el estado pasa inmediatamente a `terminated` en lugar de `running`, consulte [Solución de problemas de inicialización de instancias de Amazon EC2](troubleshooting-launch.md).

------
#### [ AWS CLI ]

**Para crear una solicitud de instancia de spot mediante run-instances**  
Utilice el comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) y especifique las opciones de instancia de spot en el parámetro `--instance-market-options` de la siguiente manera.

```
--instance-market-options file://spot-options.json
```

La siguiente es la estructura de datos que debe especificar en el archivo JSON. También puede especificar `ValidUntil` y `InstanceInterruptionBehavior`. Si no especifica un campo en la estructura de datos, se utiliza el valor predeterminado.

El siguiente ejemplo crea una solicitud `persistent`.

```
{
  "MarketType": "spot",
  "SpotOptions": {
    "SpotInstanceType": "persistent"
  }
}
```

**Creación de una solicitud de instancia de spot mediante request-spot-instances**

**nota**  
Se desaconseja utilizar el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para solicitar una instancia de spot, ya que es una API heredada sin inversión planificada. Para obtener más información, consulte [¿Cuál es el mejor método de solicitud de spot que se puede utilizar?](spot-best-practices.md#which-spot-request-method-to-use).

Utilice el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para crear una solicitud puntual:

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "one-time" \
    --launch-specification file://specification.json
```

Utilice el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para crear una solicitud persistente.

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "persistent" \
    --launch-specification file://specification.json
```

Para ver archivos de especificación de inicialización que utilizan estos comandos, consulte [Ejemplo de especificaciones de inicialización de solicitudes de instancia de spot](spot-request-examples.md). Si descarga un archivo de especificación de inicialización desde la consola de la solicitud de spot, debe utilizar el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) en su lugar (la consola de la solicitud de spot especifica una solicitud de instancia de spot mediante una flota de spot).

------
#### [ PowerShell ]

**Para crear una solicitud de instancia de spot**  
Utilice el cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) y especifique las opciones de instancia de spot mediante el parámetro `-InstanceMarketOption`.

```
-InstanceMarketOptions $marketOptions
```

Cree la estructura de datos para las opciones de instancia de spot de la siguiente manera.

```
$spotOptions = New-Object Amazon.EC2.Model.SpotMarketOptions
$spotOptions.SpotInstanceType="persistent"
$marketOptions = New-Object Amazon.EC2.Model.InstanceMarketOptionsRequest
$marketOptions.MarketType = "spot"
$marketOptions.SpotOptions = $spotOptions
```

------

# Ejemplo de especificaciones de inicialización de solicitudes de instancia de spot
<a name="spot-request-examples"></a>

En los siguientes ejemplos, se muestran configuraciones de inicialización que puede utilizar con el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) (Solicitar instancias de spot) para crear una solicitud de instancia de spot. Para obtener más información, consulte [Administración de instancias de spot](using-spot-instances-request.md).

**importante**  
Se desaconseja utilizar el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para solicitar una instancia de spot, ya que es una API heredada sin inversión planificada. Para obtener más información, consulte [¿Cuál es el mejor método de solicitud de spot que se puede utilizar?](spot-best-practices.md#which-spot-request-method-to-use)

**Topics**
+ [Ejemplo 1: inicialización de instancias de spot](#spot-launch-specification1)
+ [Ejemplo 2: inicialización de instancias de spot en la zona de disponibilidad especificada](#spot-launch-specification2)
+ [Ejemplo 3: inicialización de instancias de spot en la subred especificada](#spot-launch-specification3)
+ [Ejemplo 4: inicialización de una instancia de spot dedicada](#spot-launch-specification4)

## Ejemplo 1: inicialización de instancias de spot
<a name="spot-launch-specification1"></a>

En el siguiente ejemplo, no se incluye una zona de disponibilidad o una subred. Amazon EC2 selecciona una zona de disponibilidad para usted. Amazon EC2 inicia las instancias en la subred predeterminada de la zona de disponibilidad seleccionada.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Ejemplo 2: inicialización de instancias de spot en la zona de disponibilidad especificada
<a name="spot-launch-specification2"></a>

En el siguiente ejemplo, se incluye una zona de disponibilidad. Amazon EC2 inicia las instancias en la subred predeterminada de la zona de disponibilidad especificada.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "Placement": {
    "AvailabilityZone": "us-west-2a"
  },
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Ejemplo 3: inicialización de instancias de spot en la subred especificada
<a name="spot-launch-specification3"></a>

En el siguiente ejemplo, se incluye una subred. Amazon EC2 inicia las instancias en la subred especificada. Si la VPC es una VPC no predeterminada, la instancia no recibe una dirección IPv4 pública de forma predeterminada.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "SubnetId": "subnet-1a2b3c4d",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

Para asignar una dirección IPv4 pública a una instancia en una VPC no predeterminada, especifique el campo `AssociatePublicIpAddress` tal como se muestra en el siguiente ejemplo. Cuando especifica una interfaz de red, debe incluir el ID de subred y el ID de grupo de seguridad mediante la interfaz de red, en lugar de usar los campos `SubnetId` y `SecurityGroupIds` que se muestran en el bloque de código anterior.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "InstanceType": "m5.medium",
  "NetworkInterfaces": [
    {
      "DeviceIndex": 0,
      "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
      "Groups": [ "sg-1a2b3c4d5e6f7g8h9" ],
      "AssociatePublicIpAddress": true
    }
  ],
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Ejemplo 4: inicialización de una instancia de spot dedicada
<a name="spot-launch-specification4"></a>

En el siguiente ejemplo, se solicita una instancia de spot con una tenencia `dedicated`. Una instancia de spot dedicada se debe iniciar en una VPC.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "c5.8xlarge",
  "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
  "Placement": {
    "Tenancy": "dedicated"
  }
}
```

# Obtención del estado de una solicitud de instancia de spot
<a name="spot-request-status"></a>

Para ayudarlo a realizar el seguimiento de sus solicitudes de instancia de spot y planificar el uso de instancias spot, utilice el estado de solicitud proporcionado por Amazon EC2. Por ejemplo, el estado de las solicitudes puede indicar la razón por la que su solicitud de spot aún no ha sido atendida, o enumerar las restricciones que están impidiendo que se atienda.

En cada paso del proceso —también denominado *ciclo de vida*— de la solicitud de spot, eventos específicos determinan los sucesivos estados de la solicitud.

En la siguiente ilustración, se muestra cómo funcionan las solicitudes de instancias de spot. Observe que el tipo de solicitud (por única vez o persistente) determina si la solicitud se abre de nuevo cuando Amazon EC2 interrumpe una instancia de spot o si usted detiene una instancia de spot. Si la solicitud es persistente, después de interrumpir la instancia de spot, se volverá a abrir la solicitud. Si la solicitud es persistente y detiene su instancia de spot, la solicitud solo se abre después de iniciar su instancia de spot.

![\[Cómo funcionan las solicitudes de instancias de spot.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/spot_lifecycle.png)


**Topics**
+ [Obtener información del estado de la solicitud](#get-spot-instance-request-status)
+ [Códigos de estado de las solicitudes de spot](#spot-instance-request-status-understand)
+ [Evento de cumplimiento de solicitud de instancia de spot de EC2](#spot-request-fulfillment-event)
+ [Cambios de estado para una solicitud de spot](spot-instances-request-status-lifecycle.md)

## Obtener información del estado de la solicitud
<a name="get-spot-instance-request-status"></a>

Puede obtener la información de estado de la solicitud de instancia de spot.

------
#### [ Console ]

**Obtención de información del estado de la solicitud**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests (Solicitudes de spot)** y, a continuación, seleccione la solicitud de spot.

1. Para comprobar el estado, en la pestaña **Descripción**, compruebe el campo **Estado**.

------
#### [ AWS CLI ]

**Obtención de información del estado de la solicitud**  
Utilice el siguiente comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html).

```
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

------
#### [ PowerShell ]

**Obtención de información del estado de la solicitud**  
Utilice el cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

## Códigos de estado de las solicitudes de spot
<a name="spot-instance-request-status-understand"></a>

La información de estado de las solicitudes de spot se compone de un código de estado de puja, la hora de la actualización y un mensaje de estado. Juntos, ayudan a determinar la disposición de su solicitud de spot.

A continuación se enumeran los códigos de estado de las solicitudes de spot:

`az-group-constraint`  
Amazon EC2 no puede iniciar todas las instancias que solicitó en la misma zona de disponibilidad.

`bad-parameters`  
Uno o varios parámetros de su solicitud de spot no son válidos (por ejemplo, la AMI que especificó no existe). El mensaje de estado indica cuál es el parámetro que no es válido.

`canceled-before-fulfillment`  
El usuario canceló la solicitud de spot antes de que se atendiera.

`capacity-not-available`  
No hay suficiente capacidad disponible para las instancias que ha solicitado.

`constraint-not-fulfillable`  
No se puede atender la solicitud de spot porque una o varias restricciones no son válidas (por ejemplo, la zona de disponibilidad no existe). El mensaje de estado indica cuál es la restricción que no es válida.

`fulfilled`  
La solicitud de spot es `active` y Amazon EC2 está iniciando su instancias de spot.

`instance-stopped-by-price`  
La instancia se ha detenido porque el precio de spot ha superado el precio máximo.

`instance-stopped-by-user`  
La instancia se detuvo porque un usuario detuvo la instancia o ejecutó el comando shutdown desde la instancia.

`instance-stopped-no-capacity`  
Su instancia se detuvo debido a las necesidades de administración de capacidad de EC2.

`instance-terminated-by-price`  
La instancia se ha terminado porque el precio de spot ha superado el precio máximo. Si su solicitud es persistente, el proceso se reinicia, por lo que la solicitud está pendiente de evaluación.

`instance-terminated-by-schedule`  
La instancia de spot se terminó al final de la duración programada.

`instance-terminated-by-service`  
Su instancia se terminó desde un estado detenido.

`instance-terminated-by-user` o `spot-instance-terminated-by-user`  
Ha terminado una instancia de spot que había sido atendida, por lo que el estado de la solicitud es `closed` (a menos que sea una solicitud persistente) y el estado de la instancia es `terminated`.

`instance-terminated-launch-group-constraint`  
Se han terminado una o varias instancias en su grupo de inicialización, por lo que la restricción del grupo de inicialización ya no se cumple.

`instance-terminated-no-capacity`  
Su instancia se terminó debido a los procesos de administración de capacidad estándar.

`launch-group-constraint`  
Amazon EC2 no puede iniciar todas las instancias que solicitó al mismo tiempo. Todas las instancias en un grupo de inicialización se inician y se terminan juntas.

`limit-exceeded`  
Se ha excedido el límite en el número de volúmenes de EBS o en el almacenamiento de volumen total. Para obtener más información, consulte [Quotas for Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html) en la *Guía del usuario de Amazon EBS*.

`marked-for-stop`  
La instancia de spot está marcada para su detención.

`marked-for-termination`  
La instancia de spot está marcada para su terminación.

`not-scheduled-yet`  
La solicitud de spot no se evaluará hasta la fecha programada.

`pending-evaluation`  
Después de realizar una solicitud de instancia de spot, esta pasa al estado `pending-evaluation` mientras el sistema evalúa los parámetros de la solicitud.

`pending-fulfillment`  
Amazon EC2 está intentando aprovisionar las instancias de spot.

`placement-group-constraint`  
Aún no se puede atender la solicitud de spot porque, en este momento, no se puede agregar una instancia de spot al grupo de ubicación.

`price-too-low`  
Aún no se puede atender la solicitud porque el precio máximo está por debajo del precio de spot. En este caso, no se inicia ninguna instancia y su solicitud permanece en estado `open`.

`request-canceled-and-instance-running`  
Usted canceló la solicitud de spot mientras las instancias de spot aún estaban en ejecución. El estado de la solicitud es `cancelled`, pero las instancias tienen el estado `running`.

`schedule-expired`  
La solicitud de spot caducó porque no se atendió antes de la fecha especificada.

`system-error`  
Se ha producido un error inesperado del sistema. Si es un problema recurrente, contacte con AWS Support para obtener ayuda.

## Evento de cumplimiento de solicitud de instancia de spot de EC2
<a name="spot-request-fulfillment-event"></a>

Cuando se cumple una solicitud de instancia de spot, Amazon EC2 envía un evento de cumplimiento de solicitud de instancia de spot de EC2 a Amazon EventBridge. Puede crear una regla para realizar una acción cada vez que se produzca este evento, como invocar una función de Lambda o notificar un tema de Amazon SNS.

El siguiente es un ejemplo de los datos de este evento.

```
{
    "version": "0",
    "id": "01234567-1234-0123-1234-012345678901",
    "detail-type": "EC2 Spot Instance Request Fulfillment",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
        "instance-id": "i-1234567890abcdef0"
    }
}
```

Para más información, consulte la [Guía del usuario de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

# Cambios de estado para una solicitud de spot
<a name="spot-instances-request-status-lifecycle"></a>

En el siguiente diagrama se muestran las rutas que su solicitud de spot puede seguir a lo largo de todo su ciclo de vida, desde el envío hasta su terminación. Cada paso aparece representado como un nodo y el código de estado de cada nodo describe el estado de la solicitud de Spot y de la instancia de Spot.

![\[Ciclo de vida de una solicitud de instancia de spot.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/spot-request-status-diagram.png)


**Pending evaluation**  
En cuanto se crea una solicitud de instancia de spot, esta pasa al estado `pending-evaluation`, a menos que haya uno o varios parámetros de la solicitud que no sean válidos (`bad-parameters`).


| Código de estado | Estado de la solicitud | Estado de la instancia | 
| --- | --- | --- | 
| pending-evaluation | open | No aplicable | 
| bad-parameters | closed | No aplicable | 

**Holding**  
Si una o varias restricciones de la solicitud son válidas pero aún no se pueden satisfacer, o si no hay suficiente capacidad, la solicitud pasa a un estado de retención en espera de que se satisfagan las restricciones. Las opciones de la solicitud afectan a la probabilidad de que se atienda la solicitud. Por ejemplo, si no hay capacidad, la solicitud permanecerá en estado de retención hasta que haya capacidad disponible. Si especifica un grupo de zona de disponibilidad, la solicitud permanece en un estado de retención hasta que se satisfaga la restricción de la zona de disponibilidad.

En el caso de interrupción del servicio de una de las zonas de disponibilidad, existe la posibilidad de que se pueda ver afectada la capacidad de EC2 que no se utiliza disponible para solicitudes de instancia de spot en otras zonas de disponibilidad.


| Código de estado | Estado de la solicitud | Estado de la instancia | 
| --- | --- | --- | 
| capacity-not-available | open |  No aplicable  | 
| price-too-low | open |  No aplicable  | 
| not-scheduled-yet | open |  No aplicable  | 
| launch-group-constraint | open |  No aplicable  | 
| az-group-constraint | open |  No aplicable  | 
|  placement-group-constraint  |  open  |  No aplicable  | 
|  constraint-not-fulfillable  |  open  |  No aplicable  | 

**Pending evaluation/fulfillment-terminal**  
La solicitud de instancia de spot puede pasar a un estado `terminal` si crea una solicitud que solo es válida durante un periodo de tiempo específico y dicho periodo caduca antes de que la solicitud alcance la fase de cumplimiento pendiente. También puede ocurrir si cancela la solicitud o si se produce un error del sistema.


| Código de estado | Estado de la solicitud | Estado de la instancia | 
| --- | --- | --- | 
|  schedule-expired  |  cancelled  |  No aplicable  | 
|  canceled-before-fulfillment ¹  |  cancelled  |  No aplicable  | 
|  bad-parameters  |  failed  |  No aplicable  | 
|  system-error  |  closed  |  No aplicable  | 

¹ Si cancela la solicitud.

**Pending fulfillment**  
Cuando se cumplen las restricciones que especificó (de haberlas), la solicitud de spot pasa al estado `pending-fulfillment` (pendiente de completarse).

En este punto, Amazon EC2 se está preparando para aprovisionar las instancias que solicitó. Si el proceso se detiene a esta altura, es bastante probable que se deba a que lo canceló el usuario antes de que se iniciara una instancia de spot. También puede deberse a un error inesperado del sistema.


| Código de estado | Estado de la solicitud | Estado de la instancia | 
| --- | --- | --- | 
|  pending-fulfillment  |  open  |  No aplicable  | 

**Fulfilled**  
Cuando se cumplen todas las especificaciones de las instancias de spot, su solicitud de spot se habrá atendido. Amazon EC2 inicia las instancias de spot, lo que puede tardar unos minutos. Si una instancia de spot hiberna o se detiene con la interrupción, permanece en este estado hasta que la solicitud se pueda atender de nuevo o se cancele.


| Código de estado | Estado de la solicitud | El estado de la instancia | 
| --- | --- | --- | 
|  fulfilled  |  active  |  pending → running  | 
|  fulfilled  |  active  |  stopped → running  | 

Si detiene una instancia de spot, su solicitud de spot entrará en el estado `marked-for-stop` o `instance-stopped-by-user` hasta que la instancia de spot se pueda iniciar de nuevo o se cancele la solicitud. 


| Código de estado | Estado de la solicitud | El estado de la instancia | 
| --- | --- | --- | 
|  marked-for-stop  | active |  stopping  | 
|  instance-stopped-by-user ¹  |  disabled o cancelled ²  |  stopped  | 

¹ Una instancia de spot entra en el estado `instance-stopped-by-user` si detiene la instancia o ejecuta el comando “shutdown” (Apagado), desde la instancia. Una vez que haya detenido la instancia, puede iniciarla de nuevo. Al reiniciar, la solicitud de instancia de spot vuelve al estado `pending-evaluation` y, a continuación, Amazon EC2 inicia una nueva instancia de spot cuando se cumplen las restricciones. 

² El estado de la solicitud de spot es `disabled` si detiene la instancia de spot, pero no cancela la solicitud. El estado de la solicitud es `cancelled` si la instancia de spot se detiene y la solicitud caduca.

**Fulfilled-terminal**  
Las instancias de spot continúan ejecutándose mientras haya capacidad de spot disponible para su tipo de instancia y usted no las termine. Si Amazon EC2 debe terminar las instancias de spot, la solicitud de spot pasa a un estado terminal. Una solicitud también pasa al estado terminal si se cancela la solicitud de instancia de spot o se terminan las instancias de spot.


| Código de estado | Estado de la solicitud | El estado de la instancia | 
| --- | --- | --- | 
|  request-canceled-and-instance-running  |  cancelled  |  running  | 
|  marked-for-stop  |  active  |  running  | 
|  marked-for-termination  |  active  |  running  | 
|  instance-stopped-by-price  |  disabled  |  stopped  | 
|  instance-stopped-by-user  |  disabled  |  stopped  | 
|  instance-stopped-no-capacity  |  disabled  |  stopped  | 
|  instance-terminated-by-price  |  closed (una única vez), open (persistente)  |  terminated  | 
|  instance-terminated-by-schedule  |  closed  |  terminated  | 
|  instance-terminated-by-service  |  cancelled  |  terminated  | 
|  instance-terminated-by-user  |  closed o cancelled ¹  |  terminated  | 
|  instance-terminated-no-capacity  |  closed (una única vez), open (persistente)  |  running †  | 
|  instance-terminated-no-capacity  |  closed (una única vez), open (persistente)  |  terminated  | 
|  instance-terminated-launch-group-constraint  |  closed (una única vez), open (persistente)  |  terminated  | 

¹ El estado de la solicitud es `closed` si termina la instancia pero no cancela la solicitud. El estado de la solicitud es `cancelled` si termina la instancia y cancela la solicitud. Incluso si termina una instancia de spot antes de cancelar su solicitud, podría transcurrir tiempo hasta que Amazon EC2 detecte que se ha terminado la instancia de spot. En este caso, el estado de la solicitud podría ser `closed` o `cancelled`.

† Cuando Amazon EC2 interrumpe una instancia de spot, si necesita recuperar la capacidad *y* la instancia está configurada para *terminar* en caso de interrupción, el estado se establece de forma inmediata en `instance-terminated-no-capacity` (no se establece en `marked-for-termination`). Sin embargo, la instancia permanece en estado `running` durante 2 minutos para reflejar el periodo de 2 minutos en el que la instancia recibe el aviso de interrupción de la instancia de spot. Después de 2 minutos, el estado de la instancia se establece en `terminated`.

**Experimentos de interrupción**  
Puede utilizar AWS Fault Injection Service para iniciar la interrupción de una instancia de spot y probar la manera en que responden las aplicaciones en las instancias de spot. Si AWS FIS detiene una instancia de spot, la solicitud de spot pasará al estado `marked-for-stop-by-experiment` y luego a `instance-stopped-by-experiment`. Si AWS FIS finaliza una instancia de spot, la solicitud de spot pasará al estado `instance-terminated-by-experiment`. Para obtener más información, consulte [Inicio de una interrupción de instancias de spot](initiate-a-spot-instance-interruption.md).


| Código de estado | Estado de la solicitud | El estado de la instancia | 
| --- | --- | --- | 
| marked-for-stop-by-experiment | active | running | 
| instance-stopped-by-experiment | disabled | stopped | 
| instance-terminated-by-experiment | closed | terminated | 

**Solicitudes persistentes**  
Cuando usted o Amazon EC2; terminan las instancias de spot, si la solicitud de spot es persistente, esta regresa al estado `pending-evaluation` y entonces Amazon EC2 podrá iniciar una nueva instancia de spot cuando se cumplan las restricciones.

# Etiquetar las solicitudes de instancia de spot
<a name="concepts-spot-instances-request-tags"></a>

Para ayudarlo a clasificar y a administrar las solicitudes de instancia de spot, puede etiquetarlas con metadatos personalizados. Puede asignar una etiqueta a una solicitud de instancia de spot cuando la cree o posteriormente. Puede asignar etiquetas mediante la consola de Amazon EC2 o una herramienta de línea de comandos.

Al etiquetar una solicitud de instancia de spot, las instancias y los volúmenes iniciados por la solicitud de instancia de spot no se etiquetan automáticamente. Tiene que etiquetar de manera explícita las instancias y los volúmenes iniciados por la solicitud de instancia de spot. Puede asignar una etiqueta a una instancia de spot y a los volúmenes durante la inicialización o después.

Para obtener más información sobre cómo funcionan las etiquetas, consulte [Etiquetar los recursos de Amazon EC2](Using_Tags.md).

**Topics**
+ [Requisitos previos](#tag-spot-request-prereqs)
+ [Etiquetar una nueva solicitud de instancia de spot](#tag-new-spot-instance-request)
+ [Etiquetar una solicitud de instancia de spot existente](#tag-existing-spot-instance-request)
+ [Ver las etiquetas de las solicitudes de instancias de spot](#view-spot-instance-request-tags)

## Requisitos previos
<a name="tag-spot-request-prereqs"></a>

Otorgue al usuario el permiso para etiquetar recursos. Para obtener más información acerca de las políticas de IAM y las políticas de ejemplo, consulte [Ejemplo: Etiquetar recursos](ExamplePolicies_EC2.md#iam-example-taggingresources).

La política de IAM que cree se determina con el método que utilice para crear una solicitud de instancia de spot.
+ Si utiliza el launch wizard de instancias o `run-instances` para solicitar instancias de spot, consulte [To grant a user the permission to tag resources when using the launch instance wizard or run-instances](#iam-run-instances).
+ Si utiliza el comando `request-spot-instances` para solicitar instancias de spot, consulte[To grant a user the permission to tag resources when using request-spot-instances](#iam-request-spot-instances).

**Para otorgar permiso a un usuario para etiquetar recursos cuando utilice el asistente de inicialización de instancias o instancias de ejecución**  
Cree una política de IAM que incluya lo siguiente:
+ La acción `ec2:RunInstances`. Esto otorga al usuario permiso para iniciar una instancia.
+ En `Resource`, especifique `spot-instances-request`. Esto permite a los usuarios crear solicitudes de instancias de spot, que solicitan instancias de spot.
+ La acción `ec2:CreateTags`. Esto concede al usuario permiso para crear etiquetas.
+ En `Resource`, especifique `*`. Esto permite a los usuarios etiquetar todos los recursos que se crean durante la inicialización de la instancia.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowLaunchInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagSpotInstanceRequests",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

Al utilizar la acción RunInstances para crear solicitudes de instancias de spot y etiquetar estas instancias durante la creación, debe tener en cuenta la manera en que Amazon EC2 evalúa el recurso `spot-instances-request` en la instrucción RunInstances. En la política de IAM, se evalúa de la siguiente manera:
+ Si no etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 no evalúa el recurso `spot-instances-request` en la instrucción RunInstances.
+ Si etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 evalúa el recurso `spot-instances-request` en la instrucción RunInstances.

Por lo tanto, para el recurso `spot-instances-request`, se aplican las siguientes reglas a la política de IAM:
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y no tiene la intención de etiquetar dicha solicitud durante la creación, no es necesario que permita explícitamente el recurso `spot-instances-request`; la llamada se realizará correctamente.
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe incluir el recurso `spot-instances-request` en la instrucción de permiso de RunInstances; de lo contrario, la llamada devolverá un error.
+ Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe especificar el recurso `spot-instances-request` o incluir el comodín `*` en la instrucción de permiso de “CreateTags” (Crear etiquetas); de lo contrario, la llamada devolverá un error.

Para ejemplos de políticas de IAM, incluidas las políticas que no se admiten para las solicitudes de instancia de spot, consulte [Trabajar con Instancias de spot](ExamplePolicies_EC2.md#iam-example-spot-instances).

**Para conceder a un usuario el permiso para etiquetar recursos cuando utilice instancias de spot de solicitud**  
Cree una política de IAM que incluya lo siguiente:
+ La acción `ec2:RequestSpotInstances`. Esto concede al usuario permiso para crear una solicitud de instancia de spot.
+ La acción `ec2:CreateTags`. Esto concede al usuario permiso para crear etiquetas.
+ En `Resource`, especifique `spot-instances-request`. Esto permite a los usuarios etiquetar solo la solicitud de instancia de spot.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagSpotInstanceRequest",
            "Effect": "Allow",
            "Action": [
                "ec2:RequestSpotInstances",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-instances-request/*"
        }
    ]
}
```

------

## Etiquetar una nueva solicitud de instancia de spot
<a name="tag-new-spot-instance-request"></a>

En los ejemplos de AWS CLI y PowerShell, configure la solicitud de instancia de spot de la siguiente manera:
+ En `ResourceType`, especifique `spot-instances-request`. Si especifica otro valor, la solicitud de instancia de spot devolverá un error.
+ Para `Tags`, especifique el par clave-valor. Puede especificar más de un par clave-valor.

------
#### [ Console ]

**Etiquetado de una nueva solicitud de instancia de spot**

1. Siga el procedimiento indicado en [Administración de instancias de spot](using-spot-instances-request.md).

1. Para agregar una etiqueta, en la página **Agregar etiquetas** elija **Agregar etiqueta** y escriba la clave y el valor de la etiqueta. Elija **Agregar otra etiqueta** para cada etiqueta adicional.

   Para cada etiqueta, puede etiquetar la solicitud de instancia de spot, las instancias de spot y los volúmenes con la misma etiqueta. Para etiquetar los tres, asegúrese de que estén seleccionadas las **Instances** (instancia[s]), los **Volumes** (Volúmenes) y las **Spot Instance Requests** (Solicitudes de instancias de spot). Para etiquetar solo uno o dos, asegúrese de que los recursos que desea etiquetar están seleccionados y de que los demás recursos están borrados.

1. Rellene los campos necesarios para crear una solicitud de instancia de spot y, a continuación, elija **Launch** (iniciar). Para obtener más información, consulte [Administración de instancias de spot](using-spot-instances-request.md).

------
#### [ AWS CLI ]

**Etiquetado de una nueva solicitud de instancia de spot**  
Utilice el comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) con la opción `--tag-specification`.

La especificación de etiqueta agrega dos etiquetas a la solicitud de instancia de spot: `Environment=Production` y `Cost-Center=123`.

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "one-time" \
    --launch-specification file://specification.json \
    --tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment,Value=Production},{Key=Cost-Center,Value=123}]'
```

------
#### [ PowerShell ]

**Etiquetado de una nueva solicitud de instancia de spot**  
Utilice el cmdlet [Request-EC2SpotInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotInstance.html) con el parámetro `-TagSpecification`.

```
-TagSpecification $tagspec
```

La especificación de la etiqueta se define de la siguiente manera. Agrega dos etiquetas a la solicitud de instancia de spot: `Environment=Production` y `Cost-Center=123`.

```
$tag1 = @{Key="Environment"; Value="Production"}
$tag2 = @{Key="Cost-Center"; Value="123"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "spot-instances-request"
$tagspec.Tags = @($tag1,$tag2)
```

------

## Etiquetar una solicitud de instancia de spot existente
<a name="tag-existing-spot-instance-request"></a>

------
#### [ Console ]

**Etiquetado de una solicitud existente de instancia de spot**

Después de crear una solicitud de instancia de spot, puede agregar etiquetas a la solicitud de instancia de spot a través de la consola.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**.

1. Seleccione su solicitud de instancia de spot.

1. Elija la pestaña **Tags (Etiquetas)** y, a continuación, **Create Tag (Crear etiqueta)**.

**Para etiquetar una instancia de spot existente mediante la consola**  
Después de que se haya iniciado su solicitud de instancia de spot, puede agregar etiquetas a la instancia con la consola. Para obtener más información, consulte [Adición de etiquetas mediante la consola](Using_Tags_Console.md#adding-or-deleting-tags).

------
#### [ AWS CLI ]

**Etiquetar una solicitud de instancia de spot o una instancia de spot existente**  
Utilice el comando [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) para etiquetar recursos existentes. En el siguiente ejemplo, la solicitud de instancia de spot existente y la instancia de spot se etiquetan con `purpose=test`.

```
aws ec2 create-tags \
    --resources sir-0e54a519c9EXAMPLE i-1234567890abcdef0 \
    --tags Key=purpose,Value=test
```

------
#### [ PowerShell ]

**Etiquetar una solicitud de instancia de spot o una instancia de spot existente**  
Utilice el cmdlet [New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html). En el siguiente ejemplo, se agrega la etiqueta `purpose=test` a la solicitud de instancia de spot existente y a la instancia de spot.

```
New-EC2Tag `
    -Resource sir-0e54a519c9EXAMPLE, i-1234567890abcdef0 `
    -Tag @{Key="purpose"; Value="test"}
```

------

## Ver las etiquetas de las solicitudes de instancias de spot
<a name="view-spot-instance-request-tags"></a>

------
#### [ Console ]

**Visualización de las etiquetas de una solicitud de instancia de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**.

1. seleccione su solicitud de instancia de spot y elija la pestaña **Tags** (Etiquetas).

------
#### [ AWS CLI ]

**Para describir las etiquetas de solicitud de instancia de spot**  
Utilice el comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) para ver la configuración de la solicitud de instancia de spot especificada, que incluye las etiquetas especificadas para la solicitud.

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].Tags"
```

A continuación, se muestra un ejemplo del resultado.

```
[
    [
        {
            "Key": "Environment",
            "Value": "Production"
        },
        {
            "Key": "Department",
            "Value": "101"
        }
    ]
]
```

------
#### [ PowerShell ]

**Para describir las etiquetas de solicitud de instancia de spot**  
Utilice el cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
(Get-EC2SpotInstanceRequest `
    -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).Tags
```

A continuación, se muestra un ejemplo del resultado.

```
Key         Value
---         -----
Environment Production
Department  101
```

------

# Cancelar una solicitud de instancia de spot
<a name="using-spot-instances-cancel"></a>

Si ya no quiere la solicitud de instancia de spot, puede cancelarla. Solo puede cancelar solicitudes de instancia de spot cuyo estado sea `open`, `active` o `disabled`.
+ El estado de la solicitud de instancia de spot es `open` cuando aún no se ha atendido la solicitud y no se ha iniciado ninguna instancia.
+ El estado de la solicitud de instancia de spot es `active` cuando se ha atendido la solicitud y, como resultado, se han iniciado dichas instancias. 
+ Su solicitud de instancia de spot es `disabled` cuando detiene su instancia de spot.

Si el estado de la solicitud de instancia de spot es `active` y tiene una instancia de spot asociada en ejecución, la cancelación de la solicitud no termina la instancia. Para obtener más información acerca de cómo terminar las instancias de Spot, consulte [Terminar una instancia de spot](using-spot-instances-request.md#terminating-a-spot-instance).

------
#### [ Console ]

**Cancelación de una solicitud de instancia de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**.

1. Seleccione la solicitud de la instancia de spot.

1. Elija **Acciones**, **Cancelar comando**.

1. (Opcional) Si ha acabado con las instancias de spot asociadas, puede terminarlas. En el cuadro de diálogo **Cancelar solicitud de Spot** seleccione **Terminar instancias**, y, a continuación, elija **Confirmar**.

------
#### [ AWS CLI ]

**Cancelación de una solicitud de instancia de spot**  
Utilice el siguiente comando [cancel-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-instance-requests.html).

```
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

------
#### [ PowerShell ]

**Cancelación de una solicitud de instancia de spot**  
Utilice el cmdlet [Stop-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotInstanceRequest.html).

```
Stop-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

# Administración de instancias de spot
<a name="using-spot-instances-request"></a>

Amazon EC2 ejecuta una instancia de spot siempre que haya capacidad disponible. Una instancia de spot se ejecuta hasta que se interrumpe o usted la termina.

**Topics**
+ [Búsqueda de instancias de spot](#using-spot-instances-running)
+ [Búsqueda de instancias lanzadas por una solicitud específica](#find-request-spot-instances)
+ [Detener una instancia de spot](#stopping-a-spot-instance)
+ [Iniciar una instancia de spot](#starting-a-spot-instance)
+ [Terminar una instancia de spot](#terminating-a-spot-instance)

## Búsqueda de instancias de spot
<a name="using-spot-instances-running"></a>

En la página **Instancias** de la consola, una instancia de spot aparece junto con las instancias bajo demanda. Utilice el procedimiento que se muestra a continuación para encontrar instancias de spot.

------
#### [ Console ]

**Búsqueda de sus instancias de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Para encontrar todas las instancias de spot, en el panel de búsqueda seleccione **Ciclo de vida de instancia=spot**.

1. Para verificar que una instancia sea una de spot, seleccione la instancia, luego vaya a la pestaña **Detalles** y compruebe el valor de **Ciclo de vida**. El valor de una instancia de spot es `spot` y el valor de una instancia bajo demanda es `normal`.

------
#### [ AWS CLI ]

**Búsqueda de sus instancias de spot**  
Utilice el siguiente comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
```

**Para determinar si una instancia es una instancia de spot**  
Utilice el siguiente comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[*].InstanceLifecycle" \
    --output text
```

Si la salida es `spot`, la instancia es una instancia de spot. Si no hay salida, la instancia es una instancia bajo demanda.

------
#### [ PowerShell ]

**Búsqueda de sus instancias de spot**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
Get-EC2Instance -Filter @{Name="instance-lifecycle"; Values="spot"}
```

**Para determinar si una instancia es una instancia de spot**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.InstanceLifecycle
```

Si la salida es `Spot`, la instancia es una instancia de spot. Si no hay salida, la instancia es una instancia bajo demanda.

------

## Búsqueda de instancias lanzadas por una solicitud específica
<a name="find-request-spot-instances"></a>

Utilice el procedimiento que se muestra a continuación para encontrar instancias de spot lanzadas desde una solicitud de una instancia de spot o una flota de spot específica.

------
#### [ Console ]

**Búsqueda de las instancias de spot de una solicitud**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**. La lista incluye tanto las solicitudes de las instancias de spot como las de las flotas de spot.

1. Si se cumple con una solicitud de una instancia de spot, el ID de la instancia de spot será **Capacidad**. Para una flota de spot, **Capacity** (Capacidad) indica qué cantidad de la capacidad solicitada se ha alcanzado. Para ver los ID de las instancias en una flota de spot, elija la flecha hacia arriba o seleccione la flota y, a continuación, seleccione **Instances** (instancia[s]).

1. En una flota de spot, **Capacidad** indica la cantidad de la capacidad solicitada que se ha alcanzado. Para ver los ID de las instancias de una flota de spot, seleccione el ID de la flota. Cuando se abra la página de detalles, busque el panel **Instancias**.

------
#### [ AWS CLI ]

**Búsqueda de las instancias de spot de una solicitud**  
Utilice el siguiente comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html).

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].{ID:InstanceId}"
```

A continuación, se muestra un ejemplo de la salida:

```
[
    {
        "ID": "i-1234567890abcdef0"
    },
    {
        "ID": "i-0598c7d356eba48d7"
    }
]
```

------
#### [ PowerShell ]

**Búsqueda de las instancias de spot de una solicitud**  
Utilice el cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
(Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).InstanceId
```

------

## Detener una instancia de spot
<a name="stopping-a-spot-instance"></a>

Si no necesita sus instancias de spot ahora, pero desea reiniciarlas más tarde sin perder los datos que persisten en el volumen de Amazon EBS, puede detenerlas. Los pasos que se llevan a cabo para detener una instancia de spot son similares a los pasos para detener una instancia bajo demanda.

**nota**  
Mientras la instancia de spot esté detenida, puede modificar algunos de sus atributos, pero no el tipo de instancia.   
Las instancias de spot detenidas no suponen cargos de uso ni tarifas de transferencia de datos, pero sí se cobra por el almacenamiento de cualquier volumen de Amazon EBS.

**Limitaciones**
+ Solo puede detener una instancia de spot si esta se lanzó desde una solicitud de instancia de spot `persistent`.
+ No se puede detener una instancia de spot si se ha cancelado la solicitud de instancia de spot asociada. Cuando se ha cancelado la solicitud de instancia de spot, solo usted puede terminarla.
+ No se puede detener una instancia de spot si forma parte de una flota, un grupo de inicialización o un grupo de zona de disponibilidad.

------
#### [ Console ]

**Detención de una instancia de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte [Búsqueda de instancias de spot](#using-spot-instances-running).

1. Elija **Instance state (Estado de la instancia)** y **Stop instance (Detener instancia)**.

1. Cuando se le pida que confirme, elija **Stop**.

------
#### [ AWS CLI ]

**Detención de una instancia de spot**  
Utilice el comando [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) para detener de manera manual las instancias de spot.

```
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**Detención de una instancia de spot**  
Utilice el cmdlet [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html).

```
Stop-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## Iniciar una instancia de spot
<a name="starting-a-spot-instance"></a>

Puede iniciar una instancia de spot que detuvo previamente.

**Requisitos previos**

Solo puede iniciar una instancia de spot en los siguientes casos:
+ Detuvo la instancia de spot manualmente.
+ La instancia de spot es una instancia con respaldo de EBS.
+ Hay capacidad de instancia de spot disponible.
+ El precio de spot es inferior al precio máximo.

**Limitaciones**
+ No se puede iniciar una instancia de spot si forma parte de una flota, un grupo de inicialización o un grupo de zona de disponibilidad.

Los pasos que se llevan a cabo para iniciar una instancia de spot son similares a los pasos para iniciar una instancia bajo demanda.

------
#### [ Console ]

**Inicio de una instancia de spot**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte [Búsqueda de instancias de spot](#using-spot-instances-running).

1. Elija **Instance state (Estado de la instancia)** y **Start instance (Iniciar instancia)**.

------
#### [ AWS CLI ]

**Inicio de una instancia de spot**  
Utilice el comando [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) para iniciar de manera manual las instancias de spot.

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

------
#### [ PowerShell ]

**Inicio de una instancia de spot**  
Utilice el cmdlet [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html).

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## Terminar una instancia de spot
<a name="terminating-a-spot-instance"></a>

**aviso**  
**La terminación de una instancia es permanente e irreversible.**  
Después de terminar una instancia, ya no podrá conectarse a esta ni recuperarla. Todos los volúmenes de Amazon EBS asociados que estén configurados para eliminarse en la terminación también se eliminan de manera permanente y no se pueden recuperar. Todos los datos almacenados en volúmenes de almacén de instancias se perderán de forma permanente. Para obtener más información, consulte [Cómo funciona la terminación de instancias](how-ec2-instance-termination-works.md).  
Antes de terminar una instancia, asegúrese de haber realizado una copia de seguridad en un almacenamiento persistente de todos los datos que necesite retener después de la terminación.

Si termina una instancia de spot en ejecución o detenida que se haya iniciado mediante una solicitud de instancia de spot persistente, esta solicitud pasará al estado `open` para que se pueda iniciar una nueva instancia de spot. Para asegurarse de que no se lance ninguna nueva instancia de spot, primero es necesario que cancele la solicitud de instancia de spot.

Si cancela una solicitud de instancia de spot `active` que tiene una instancia de spot en ejecución, esta no se termina automáticamente; por el contrario, debe terminar manualmente la instancia de spot.

Si cancela una solicitud de instancia de spot `disabled` que tiene una instancia de spot detenida, el servicio de spot de Amazon EC2 terminará automáticamente esa instancia de spot detenida. Puede haber un breve retraso entre el momento en que cancela la solicitud de instancia de spot y el momento en que el servicio de spot termina esa instancia de spot.

Para obtener más información, consulte [Cancelar una solicitud de instancia de spot](using-spot-instances-cancel.md).

------
#### [ Console ]

**Terminación manual de una instancia de spot**

1. Antes de terminar la instancia, verifique que no va a perder ningún dato comprobando que los volúmenes de Amazon EBS no se eliminarán al terminar y que ha copiado los datos que necesita de los volúmenes de almacén de instancias en almacenamiento persistente, como Amazon EBS o Amazon S3.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte [Búsqueda de instancias de spot](#using-spot-instances-running).

1. Elija **Estado de la instancia** y **Terminar (eliminar) instancia**.

1. Cuando se le indique que confirme, elija **Terminar (eliminar)**.

------
#### [ AWS CLI ]

**Terminación manual de una instancia de spot**  
Utilice el comando [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) para finalizar de manera manual las instancias de spot.

```
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7
```

------
#### [ PowerShell ]

**Terminación manual de una instancia de spot**  
Utilice el cmdlet [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html).

```
Remove-EC2Instance -InstanceId i-1234567890abcdef0
```

------

# Interrupciones de instancias de spot
<a name="spot-interruptions"></a>

Puede iniciar instancias de spot con capacidad de EC2 extra para disfrutar de importantes descuentos a cambio de devolverlos cuando Amazon EC2 necesite de nuevo esa capacidad. Cuando Amazon EC2 recupera una instancia de spot, llamamos a este evento *interrupción de una instancia de spot*.

La demanda de Instancias de spot puede variar enormemente de un momento a otro, y la disponibilidad de las Instancias de spot también puede variar significativamente en función de cuántas instancias EC2 no utilizadas haya disponibles. Siempre es posible que la instancia de spot se vea interrumpida. A continuación se enumeran las posibles razones por las que Amazon EC2 puede interrumpir las instancias de spot.

**Capacidad**  
Amazon EC2 puede interrumpir su instancia de spot cuando vuelve a necesitarla. EC2 recupera la instancia principalmente para reutilizar la capacidad, pero también puede ocurrir por otras razones, como mantenimiento del host o desmantelamiento del equipo.

**Precio**  
El precio de spot es superior al precio máximo.  
Puede especificar el precio máximo en su solicitud de spot. Sin embargo, si especifica un precio máximo, las instancias se interrumpirán con más frecuencia que si no lo elige.

**Restricciones**  
Si la solicitud de spot incluye una restricción, como un grupo de inicialización o un grupo de zona de disponibilidad, estas instancias de spot se terminan como grupo cuando ya no se puede cumplir la restricción.

Cuando Amazon EC2 interrumpe una instancia de spot, finaliza, detiene o hiberna la instancia en función del comportamiento de interrupción especificado al crear la solicitud de spot.

**Topics**
+ [Comportamiento de la interrupción](interruption-behavior.md)
+ [Prepararse para interrupciones](prepare-for-interruptions.md)
+ [Iniciar una interrupción](initiate-a-spot-instance-interruption.md)
+ [Avisos de interrupción de instancias de spot.](spot-instance-termination-notices.md)
+ [Buscar instancias de spot interrumpida](finding-an-interrupted-Spot-Instance.md)
+ [Cómo determinar si Amazon EC2 interrumpió una instancia de spot](BidEvictedEvent.md)
+ [Facturación](billing-for-interrupted-spot-instances.md)

# Comportamiento de las interrupciones de las instancias de spot
<a name="interruption-behavior"></a>

Puede especificar el comportamiento de la interrupción al crear una solicitud de spot. A continuación se muestran los posibles comportamientos de interrupción:
+ [Detener](#stop-spot-instances)
+ [Hibernar](#hibernate-spot-instances)
+ [Finalizar](#terminate-interrupted-spot-instances)

Amazon EC2 finalizará las instancias de spot de forma predeterminada cuando se produzca la interrupción.

## Detener instancias de spot interrumpida
<a name="stop-spot-instances"></a>

Puede especificar que Amazon EC2 detenga las instancias de spot cuando se interrumpen. El tipo de solicitud de instancia de spot: debe ser `persistent`. No puede especificar un grupo de inicialización en la solicitud de instancia de spot. Para la flota de EC2 o la flota de spot, el tipo de solicitud debe ser `maintain`.

**Consideraciones**
+ Solo Amazon EC2 puede reiniciar una instancia de spot interrumpida detenida.
+ Para una instancia de spot iniciada por una solicitud de instancia de spot `persistent`, Amazon EC2 reinicia la instancia detenida cuando hay capacidad disponible en la misma zona de disponibilidad para el mismo tipo de instancia que la instancia detenida (se debe utilizar la misma especificación de inicialización).
+ Mientras la instancia de spot esté detenida, puede modificar algunos de sus atributos, pero no el tipo de instancia. Si desconecta o elimina un volumen de EBS, este no estará conectado cuando se inicie la instancia de spot. Si desconecta el volumen raíz y Amazon EC2 intenta iniciar la instancia de spot, la instancia no se iniciará y Amazon EC2 terminará la instancia detenida.
+ Puede terminar una instancia de spot mientras está detenida.
+ Si cancela una solicitud de instancia de spot, una flota de EC2 o una flota de spot, Amazon EC2 termina todas las instancias de spot asociadas que se hayan detenido.
+ Mientras una instancia de spot interrumpida está detenida, solo se le cobran los volúmenes de EBS, los cuales se conservan. Con la flota de EC2 y la flota de spot, si tiene muchas instancias detenidas, puede superar el límite de la cantidad de volúmenes de EBS de su cuenta. Para obtener más información acerca de cómo se le cobran cuando una instancia de spot se interrumpe, consulte [Facturación de las instancias de spot interrumpidas](billing-for-interrupted-spot-instances.md).
+ Asegúrese de estar familiarizado con las implicaciones de detener una instancia. Para obtener más información acerca de qué sucede cuando una instancia está detenida, consulte [Diferencias entre los estados de las instancias](ec2-instance-lifecycle.md#lifecycle-differences).

## Hibernar instancias de spot interrumpida
<a name="hibernate-spot-instances"></a>

Puede especificar que Amazon EC2 hiberne las instancias de spot cuando se interrumpen. Para obtener más información, consulte [Hibernación de la instancia de Amazon EC2](Hibernate.md).

Amazon EC2 ofrece ahora la misma experiencia de hibernación para las instancias de spot que está disponible actualmente para las instancias bajo demanda. Ofrece un soporte más amplio y ahora se admite lo siguiente para la hibernación de instancias de spot:
+ [Más AMI compatibles](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)
+ [Más familias de instancias compatibles](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)
+ [Hibernación iniciada por el usuario](hibernating-instances.md)

## Terminar instancias de spot interrumpidas
<a name="terminate-interrupted-spot-instances"></a>

Cuando Amazon EC2 interrumpe una instancia de spot, termina la instancia de forma predeterminada, a menos que especifique un comportamiento de interrupción diferente, como detener o hibernar. Para obtener más información, consulte [Terminación de las instancias de Amazon EC2](terminating-instances.md).

# Preparación para las interrupciones de las instancias de spot
<a name="prepare-for-interruptions"></a>

La demanda de instancias de spot puede variar enormemente de un momento a otro, y la disponibilidad de las instancias de spot también puede variar significativamente en función de cuántas instancias de EC2 no utilizadas haya disponibles. Siempre es posible que la instancia de spot se vea interrumpida. Por lo tanto, debe asegurarse de que su aplicación esté preparada para una interrupción de las instancias de Spot.

Recomendamos que siga estas prácticas recomendadas para estar preparado ante una interrupción de una instancia de spot.
+ Cree la solicitud de spot con un grupo de Auto Scaling. Si se interrumpen sus instancias de spot, el grupo de Auto Scaling iniciará automáticamente instancias de reemplazo. Para obtener más información, consulte la sección sobre [Grupos de escalado automático con varios tipos de instancia y opciones de compra](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) en la *guía del usuario de Amazon EC2 Auto Scaling*.
+ Asegúrese de que su instancia está lista para ejecutarse en cuanto se atienda la solicitud usando una Imagen de máquina de Amazon (AMI) que contiene la configuración de software requerida También puede utilizar datos de usuario para ejecutar comandos al iniciarla.
+ Los datos almacenados en volúmenes de almacén de instancias se perderán cuando se detenga o termine la instancia. Haga una copia de seguridad de los datos importantes de los volúmenes de almacén de instancias en un almacenamiento más persistente, como Amazon S3, Amazon EBS o Amazon DynamoDB.
+ Almacene los datos importantes periódicamente en un lugar que no se vea afectado si se termina la instancia de spot. Por ejemplo, puede utilizar Amazon S3, Amazon EBS o DynamoDB.
+ Divida el trabajo en pequeñas tareas (mediante Grid, Hadoop o una arquitectura basada en colas), o use puntos de comprobación de forma que pueda grabar su trabajo con frecuencia.
+ Amazon EC2 envía una señal de recomendación de reequilibrio a la instancia de spot cuando la instancia corre riesgo elevado de interrupción. Puede confiar en la recomendación de reequilibrio para administrar de forma proactiva las interrupciones de instancias de spot sin tener que esperar el aviso de interrupción de instancias de spot de dos minutos. Para obtener más información, consulte [Recomendación de reequilibrio de instancias de EC2](rebalance-recommendations.md).
+ Use los avisos de interrupción de instancias de spot de dos minutos para monitorear el estado de sus instancias de spot. Para obtener más información, consulte [Avisos de interrupción de instancias de spot.](spot-instance-termination-notices.md).
+ Si bien hacemos todo lo posible para proporcionar estas advertencias lo antes posible, es posible que su instancia de spot se interrumpa antes de que las advertencias estén disponibles. Pruebe la aplicación para asegurarse de que maneja correctamente una interrupción de instancia inesperada, incluso si monitorea las señales de recomendación de reequilibrio y avisos de interrupción. Para hacerlo, puede ejecutar la aplicación con una instancia bajo demanda y, a continuación, forzar la terminación de la instancia bajo demanda usted mismo.
+ Ejecute un experimento de inyección de errores controlado con AWS Fault Injection Service para probar cómo responde la aplicación cuando la instancia de spot se interrumpe. Para obtener más información, consulte [Tutorial: Test Spot Instance interruptions using AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html) en la *Guía del usuario de AWS Fault Injection Service*.

# Inicio de una interrupción de instancias de spot
<a name="initiate-a-spot-instance-interruption"></a>

Puede seleccionar una solicitud de instancia de spot o una solicitud de flota de spot en la consola de Amazon EC2 e iniciar una interrupción de instancia de spot para probar cómo las aplicaciones de sus instancias de spot gestionan las interrupciones. Cuando inicia una interrupción de una instancia de spot, Amazon EC2 le notifica que la instancia de spot se interrumpirá en dos minutos y, transcurrido ese tiempo, se interrumpe la instancia.

El servicio subyacente que realiza la interrupción de la instancia de spot es AWS Fault Injection Service (AWS FIS). Para obtener más información sobre AWS FIS, consulte [AWS Fault Injection Service](https://aws.amazon.com/fis/).

**nota**  
Los comportamientos de interrupción son `terminate`, `stop` y `hibernate`. Si establece el comportamiento de interrupción en `hibernate`, al iniciar una interrupción de una instancia de spot, el proceso de hibernación comenzará inmediatamente.

El inicio de una interrupción de una instancia de spot es compatible con todas las Regiones de AWS, excepto Asia-Pacífico (Yakarta), Asia-Pacífico (Osaka), China (Pekín) y China (Ningxia) y Oriente Medio (EAU).

**Topics**
+ [Inicio de una interrupción de instancias de spot](#initiate-interruption)
+ [Verificación de la interrupción de instancias de spot](#spot-interruptions-verify-result)
+ [Cuotas](#fis-quota-for-spot-instance-interruption)

## Inicio de una interrupción de instancias de spot
<a name="initiate-interruption"></a>

Puede utilizar la consola de EC2 para iniciar rápidamente una interrupción de una instancia de spot. Al seleccionar una solicitud de instancia de spot, puede iniciar la interrupción de una instancia de spot. Al seleccionar una solicitud de flota de spot, puede iniciar la interrupción de varias instancias de spot a la vez.

Si desea realizar experimentos más avanzados para probar las interrupciones de instancias de spot, puede crear sus propios experimentos con la consola AWS FIS.

**Para iniciar una interrupción de una instancia de spot en una solicitud de instancia de spot mediante la consola de EC2**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests** (Solicitudes de spot).

1. Seleccione una solicitud de instancia de spot y, a continuación, elija **Actions** (Acciones), **Initiate interrumption** (Iniciar interrupción). No puede seleccionar varias solicitudes de instancia de spot para iniciar una interrupción.

1. En el cuadro de diálogo **Initiate Spot Instance interruption** (Iniciar la interrupción de instancias de spot), en **Service access** (Acceso a los servicios), utilice el rol predeterminado o seleccione uno existente. Para elegir un rol existente, seleccione **Usar un rol de servicio existente** y, a continuación, en **Rol de IAM**, seleccione el rol que desea usar.

1. Cuando tenga todo listo para iniciar la interrupción de instancias de spot, seleccione **Initiate interruption** (Iniciar interrupción).

**Para iniciar la interrupción de una o más instancias de spot en una solicitud de flota de spot mediante la consola de EC2**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests** (Solicitudes de spot).

1. Seleccione una solicitud de flota de spot y, a continuación, elija **Acciones**, **Iniciar interrupción**. No puede seleccionar varias solicitudes de flota de spot para iniciar una interrupción.

1. En el cuadro de diálogo **Especifique el número de instancias de spot**, en **Número de instancias a interrumpir**, introduzca el número de instancias de spot que se van a interrumpir y, a continuación, seleccione **Confirmar**.
**nota**  
El número no puede superar el número de instancias de spot de la flota ni su [cuota](#fis-quota-for-spot-instance-interruption) de instancias de spot que AWS FIS puede interrumpir por experimento.

1. En el cuadro de diálogo **Initiate Spot Instance interruption** (Iniciar la interrupción de instancias de spot), en **Service access** (Acceso a los servicios), utilice el rol predeterminado o seleccione uno existente. Para elegir un rol existente, seleccione **Usar un rol de servicio existente** y, a continuación, en **Rol de IAM**, seleccione el rol que desea usar.

1. Cuando tenga todo listo para iniciar la interrupción de instancias de spot, seleccione **Initiate interruption** (Iniciar interrupción).

**Para crear experimentos más avanzados a fin de probar las interrupciones de instancias de spot con la consola AWS FIS**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Spot Requests**.

1. Seleccione **Actions** (Acciones), **Create advanced experiments** (Creación de experimentos avanzados).

   Se abrirá la consola de AWS FIS. Para obtener más información, consulte [Tutorial: pruebe las interrupciones de instancias de spot con AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html) en la *Guía del usuario de AWS Fault Injection Service*.

## Verificación de la interrupción de instancias de spot
<a name="spot-interruptions-verify-result"></a>

Después de iniciar la interrupción, ocurre lo siguiente:
+ La instancia de spot recibe una [recomendación de reequilibrio de instancias](rebalance-recommendations.md).
+ Se emite un [aviso de interrupción de instancia de spot](spot-instance-termination-notices.md) dos minutos antes de que AWS FIS interrumpa la instancia.
+ Cuando pasan dos minutos, la instancia de spot se interrumpe.
+ Una instancia de spot que detuvo AWS FIS permanece detenida hasta que la reinicie.

**Para comprobar que la instancia se interrumpió después de que iniciara la interrupción**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, abra **Spot Requests** (Solicitudes de spot) e **Instances** (instancia[s]) en pestañas o ventanas separadas del navegador.

1. En **Solicitudes de spot**, seleccione la solicitud de instancia de spot o la solicitud de flota de spot. El estado inicial es `fulfilled`. Una vez interrumpida la instancia, el estado cambia de la siguiente forma, según el comportamiento de la interrupción:
   + `terminate`: el estado cambia a `instance-terminated-by-experiment`.
   + `stop`: el estado cambia a `marked-for-stop-by-experiment` y, a continuación, a `instance-stopped-by-experiment`.

1. En **Instances** (instancia[s]), seleccione la instancia de spot. El estado inicial es `Running`. Dos minutos después de recibir el aviso de interrupción de la instancia de spot, el estado cambia de la siguiente forma, según el comportamiento de la interrupción:
   + `stop`: el estado cambia a `Stopping` y, a continuación, a `Stopped`.
   + `terminate`: el estado cambia a `Shutting-down` y, a continuación, a `Terminated`.

## Cuotas
<a name="fis-quota-for-spot-instance-interruption"></a>

Su Cuenta de AWS tiene la siguiente cuota predeterminada para el número de instancias de spot que AWS FIS puede interrumpir por experimento.


| Nombre | Predeterminado | Ajustable | Descripción | 
| --- | --- | --- | --- | 
|  instancias de spot de destino para aws:ec2:send-spot-instance-interruptions  |  Cada región admitida: 5  | Sí |  El número máximo de instancias de spot a las que aws:ec2:send-spot-instance-interruptions puede dirigirse al identificar los objetivos mediante etiquetas, por experimento.  | 

Puede solicitar un aumento de cuota. Para obtener más información, consulte [Solicitud de aumento de cuota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) en la *Guía del usuario de Service Quotas*.

Para ver todas las cuotas de AWS FIS, abra la [consola de Service Quotas](https://console.aws.amazon.com/servicequotas/home). En el panel de navegación, elija **servicios de AWS** y seleccione **AWS Fault Injection Service**. También, puede ver todas las [Cuotas para AWS Fault Injection Service](https://docs.aws.amazon.com/fis/latest/userguide/fis-quotas.html) en la *Guía del usuario de AWS Fault Injection Service*.

# Avisos de interrupción de instancias de spot.
<a name="spot-instance-termination-notices"></a>

Un *aviso de interrupción de instancia de spot* es una advertencia que se emite dos minutos antes de que Amazon EC2 termine o detenga una instancia de spot. Si especifica la hibernación como comportamiento de interrupción, recibe un aviso de interrupción, pero no recibe una advertencia de dos minutos, ya que el proceso de hibernación comienza de inmediato.

La mejor manera de gestionar las interrupciones de instancias de spot correctamente es diseñar su aplicación para que sea tolerante a errores. Para lograrlo, puede aprovechar los avisos de interrupción de instancias de spot. Le recomendamos que compruebe estos avisos de interrupción cada 5 segundos. 

Los avisos de interrupción están disponibles como eventos de EventBridge y como elementos en los [metadatos de instancia](ec2-instance-metadata.md) en la instancia de spot. Los avisos de interrupción se emiten en la medida de lo posible.

## EC2 Spot Instance Interruption Warning event
<a name="ec2-spot-instance-interruption-warning-event"></a>

Cuando Amazon EC2 va a interrumpir su instancia de spot, emite un evento dos minutos antes de la interrupción real (excepto en los casos en los que hay hibernación, que recibe el aviso de interrupción, pero no con dos minutos de antelación porque la hibernación comienza de inmediato). Amazon EventBridge puede detectar este evento. Para obtener más información, consulte los Eventos de Amazon EventBridge en la [Guía del usuario de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). Para obtener un ejemplo detallado que le explica cómo crear y utilizar reglas de eventos, consulte [Aprovechamiento de los avisos de interrupción de instancias de spot de Amazon EC2](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/).

El siguiente es un ejemplo de evento de interrupción de una instancia de spot. Los valores posibles de `instance-action` son `hibernate`, `stop`, o `terminate`.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Spot Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0",
        "instance-action": "action"
    }
}
```

**nota**  
El formato del ARN del evento de interrupción de la instancia de spot es `arn:aws:ec2:availability-zone:instance/instance-id`. Este formato es distinto del [formato del ARN del recurso de EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## instance-action
<a name="instance-action-metadata"></a>

El elemento `instance-action` especifica la acción (parar o terminar) y la hora aproximada en UTC a la que se producirá.

Si Amazon EC2 ha marcado una instancia de spot para detenerla o terminarla, el elemento `instance-action` está presente en los [metadatos de la instancia](ec2-instance-metadata.md). De lo contrario, no está presente. Puede recuperar la `instance-action` mediante el Servicio de metadatos de instancia, versión 2 (IMDSv2) de la siguiente manera.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action
```

------

 En el siguiente ejemplo de salida, se indica la hora a la que se detendrá esta instancia.

```
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
```

En el siguiente ejemplo de salida, se indica la hora a la que terminará esta instancia.

```
{"action": "terminate", "time": "2017-09-18T08:22:00Z"}
```

Si Amazon EC2 no está preparándose para detener o terminar la instancia o si terminó la instancia usted mismo, `instance-action` no está presente en los metadatos de la instancia y recibe un mensaje de error HTTP 404 cuando intenta recuperarlo.

## termination-time
<a name="termination-time-metadata"></a>

El elemento `termination-time` especifica la hora aproximada, en UTC, a la que la instancia recibirá la señal de cierre. 

**nota**  
Este elemento se conserva para ofrecer compatibilidad con versiones anteriores. En su lugar, utilice `instance-action`.

Si Amazon EC2 marca su instancia de spot para la finalización (ya sea debido a una interrupción de la instancia de spot en la que el comportamiento de interrupción está establecido como `terminate` o debido a la cancelación de una solicitud de instancia de spot persistente), el elemento `termination-time` está presente en los [metadatos de la instancia](ec2-instance-metadata.md). De lo contrario, no está presente. Puede recuperar `termination-time` mediante el IMDSv2 de la siguiente manera.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time
```

------

A continuación, se muestra un ejemplo del resultado.

```
2015-01-05T18:02:00Z
```

Si Amazon EC2 no está preparándose para finalizar la instancia (ya sea porque no hay ninguna interrupción de la instancia de spot o porque el comportamiento de interrupción está establecido como `stop` o `hibernate`) o si finalizó la instancia de spot usted mismo, el elemento `termination-time` no está presente en los metadatos de la instancia (por lo que recibe un mensaje de error HTTP 404) o contiene un valor que no es un valor de hora.

Si Amazon EC2 no es capaz de terminar la instancia, el estado de la solicitud se establece en `fulfilled`. El valor `termination-time` permanece en los metadatos de la instancia con la hora aproximada original, que ahora ya está en el pasado.

# Buscar instancias de spot interrumpida
<a name="finding-an-interrupted-Spot-Instance"></a>

Cuando describe las instancias de EC2, los resultados incluyen las instancias de spot. El ciclo de vida de instancia de una instancia de spot es  `spot`. El estado de instancia de una instancia de spot es `stopped` o `terminated`, según el comportamiento de interrupción que haya configurado. Para una instancia de spot en estado de hibernación, el estado de la instancia es `stopped`.

Para obtener más información sobre el motivo de la interrupción, compruebe el código de estado de la solicitud de spot. Para obtener más información, consulte [Obtención del estado de una solicitud de instancia de spot](spot-request-status.md).

------
#### [ Console ]

**Búsqueda de instancias de spot interrumpidas**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Aplicque el siguiente filtro: **Instance lifecycle=spot**.

1. Aplique los filtros **Instance state=stopped** o **Instance state=terminated** en función del comportamiento de interrupción que haya configurado.

1. Para cada instancia de spot, en la pestaña **Detalles**, dentro de **Detalles de la instancia**, busque **Mensaje de transición de estado**. Los siguientes códigos indican que la instancia de spot se interrumpió.
   + `Server.SpotInstanceShutdown`
   + `Server.SpotInstanceTermination`

------
#### [ AWS CLI ]

**Buscar instancias de spot interrumpidas**  
Utilice el comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) con la opción `--filters`. Para enumerar solo los ID de instancias en el resultado, incluya la opción `--query`.

Si el comportamiento de interrupción es terminar las instancias de spot, utilice el siguiente ejemplo:

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=terminated \
              Name=state-reason-code,Values=Server.SpotInstanceTermination \
    --query "Reservations[*].Instances[*].InstanceId"
```

Si el comportamiento de interrupción es detener las instancias de spot, utilice el siguiente ejemplo:

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=stopped \
              Name=state-reason-code,Values=Server.SpotInstanceShutdown \
    --query "Reservations[*].Instances[*].InstanceId"
```

------
#### [ PowerShell ]

**Buscar instancias de spot interrumpidas**  
Utilice el cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

Si el comportamiento de interrupción es terminar las instancias de spot, utilice el siguiente ejemplo:

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="terminated"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

Si el comportamiento de interrupción es detener las instancias de spot, utilice el siguiente ejemplo:

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="stopped"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

------

# Cómo determinar si Amazon EC2 interrumpió una instancia de spot
<a name="BidEvictedEvent"></a>

Una instancia de spot se ejecuta hasta que Amazon EC2 la finaliza en respuesta a una interrupción de la instancia de spot o hasta que usted mismo la dé por finalizada. Para obtener más información, consulte [Comportamiento de las interrupciones de las instancias de spot](interruption-behavior.md).

Tras finalizar una instancia de spot, puede utilizar AWS CloudTrail para ver si Amazon EC2 la finalizó. Si el registro de CloudTrail incluye un `BidEvictedEvent`, esto indica que Amazon EC2 finalizó la instancia de spot. Si, por el contrario, ve un evento `TerminateInstances`, esto indica que un usuario ha cancelado la instancia de spot.

Como alternativa, si desea recibir una notificación de que Amazon EC2 va a interrumpir su instancia de spot, utilice Amazon EventBridge para responder al [evento de advertencia de interrupción de la instancia de spot de EC2](spot-instance-termination-notices.md#ec2-spot-instance-interruption-warning-event).

**Cómo ver eventos BidEvictedEvent en CloudTrail**

1. Abra la consola de CloudTrail en [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1. En el panel de navegación, elija **Historial de eventos**.

1. De la lista de filtros, elija **Nombre de evento** y, a continuación, en el campo de filtro de la derecha, escriba **BidEvictedEvent**.

1. (Opcional) Seleccione un intervalo de tiempo.

1. Si la lista no está vacía, elija **BidevictedEvent** en la entrada resultante para abrir su página de detalles. Puede encontrar información sobre la instancia de spot en el panel **Registro de eventos**, incluido el ID de la instancia de spot. A continuación se muestra un ejemplo del registro del evento.

   ```
   {
       "eventVersion": "1.05",
       "userIdentity": {
           "accountId": "123456789012",
           "invokedBy": "ec2.amazonaws.com"
       },
       "eventTime": "2016-08-16T22:30:00Z",
       "eventSource": "ec2.amazonaws.com",
       "userAgent": "ec2.amazonaws.com",
       "sourceIPAddress": "ec2.amazonaws.com",
       "eventName": "BidEvictedEvent",
       "awsRegion": "us-east-2",
       "eventID": "d27a6096-807b-4bd0-8c20-a33a83375054",
       "eventType": "AwsServiceEvent",
       "recipientAccountId": "123456789012",
       "RequestParameters": null,
       "ResponseElements": null,
       "serviceEventDetails": {
           "instanceIdSet": [
             "i-1eb2ac8eEXAMPLE"
           ]
       }
   }
   ```

1. Si no ha encontrado ninguna entrada para el evento `BidEvictedEvent`, introduzca **TerminateInstances** como nombre de evento. Para obtener más información sobre el registro de eventos para `TerminateInstances`, consulte [Ejemplos de eventos de la API de Amazon EC2](monitor-with-cloudtrail.md#cloudtrail-event-examples).

# Facturación de las instancias de spot interrumpidas
<a name="billing-for-interrupted-spot-instances"></a>

Cuando una instancia de spot se ve interrumpida, se aplican los cargos de instancia y volumen de EBS, junto con otros posibles cargos, de la siguiente forma.

## Uso de instancias
<a name="billing-for-interrupted-spot-instances-instance-usage"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/billing-for-interrupted-spot-instances.html)

## Uso de volúmenes de EBS
<a name="billing-for-interrupted-spot-instances-ebs-usage"></a>

Mientras una instancia de spot interrumpida está detenida, solo se le cobran los volúmenes de EBS, los cuales se conservan.

Con la flota de EC2 y la flota de spot, si tiene muchas instancias detenidas, puede superar el límite de la cantidad de volúmenes de EBS de su cuenta. 

# Recomendación de reequilibrio de instancias de EC2
<a name="rebalance-recommendations"></a>

Una *recomendación de reequilibrio* de instancia de EC2 es una señal que notifica cuando una instancia de spot corre riesgo elevado de interrupción. La señal puede llegar antes del [aviso de interrupción de instancia de spot de dos minutos](spot-instance-termination-notices.md), lo que brinda la oportunidad de administrar proactivamente la instancia de spot. Puede decidir reequilibrar su carga de trabajo con instancias de spot nuevos o existentes que no tengan un riesgo elevado de interrupción.

Amazon EC2 no siempre puede enviar la señal de recomendación de reequilibrio antes del aviso de interrupción de dos minutos de instancia de spot. Por lo tanto, la señal de recomendación de reequilibrio puede llegar junto con el aviso de interrupción de dos minutos.

Las recomendaciones de reequilibrio están disponibles como CloudWatch Events y como elementos en los [metadatos de instancia](ec2-instance-metadata.md) en la instancia de spot. Los eventos se emiten en la medida de lo posible.

**nota**  
Las recomendaciones de reequilibrio solo se admiten para instancias de spot que se inician después del 5 de noviembre de 2020 a las 00:00 UTC.

**Topics**
+ [Reequilibrar las acciones que puede realizar](#rebalancing-actions)
+ [Monitorear las señales de recomendación de reequilibrio](#monitor-rebalance-recommendations)
+ [Servicios que utilizan la señal de recomendación de reequilibrio](#services-using-rebalance-rec-signal)

## Reequilibrar las acciones que puede realizar
<a name="rebalancing-actions"></a>

Estas son algunas de las posibles acciones de reequilibrio que puede realizar:

Apagado correcto  
Cuando reciba la señal de recomendación de reequilibrio para una instancia de spot, puede comenzar los procedimientos de apagado de la instancia, los cuales pueden incluir asegurarse de que los procesos se completen antes de detenerlos. Por ejemplo, puede cargar registros del sistema o de aplicaciones en Amazon Simple Storage Service (Amazon S3), cerrar los trabajadores de Amazon SQS o completar la anulación del registro desde el sistema de nombres de dominio (DNS). También puede guardar su trabajo en almacenamiento externo y reanudarlo más adelante.

Evitar que se programe un nuevo trabajo  
Cuando reciba la señal de recomendación de reequilibrio para una instancia de spot, puede evitar que se programe trabajo nuevo en la instancia, a la vez que continúa utilizando la instancia hasta que se complete el trabajo programado.

iniciar de forma proactiva nuevas instancias de reemplazo  
Puede configurar grupos de escalado automático, flotas de EC2 o flotas de spot para iniciar automáticamente las instancias de spot de reemplazo cuando se emite una señal de recomendación de reequilibrio. Para obtener más información, consulte [Utilizar el reequilibrio de capacidad para gestionar las interrupciones de spot de Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) en la *Guía del usuario de Amazon EC2 Auto Scaling* y [Utilice el reequilibrio de capacidad en la flota de EC2 y la flota de spot para reemplazar las instancias de spot en riesgo](ec2-fleet-capacity-rebalance.md) en esta guía del usuario.

## Monitorear las señales de recomendación de reequilibrio
<a name="monitor-rebalance-recommendations"></a>

Puede monitorear la señal de recomendación de reequilibrio para que, cuando se emita, pueda realizar las acciones especificadas en la sección anterior. La señal de recomendación de reequilibrio está disponible como un evento que se envía a Amazon EventBridge (antes conocido como Amazon CloudWatch Events) y como metadatos de instancia en la instancia de spot.

**Topics**
+ [Usar Amazon EventBridge](#cp-eventbridge)
+ [Usar metadatos de instancia](#cp-instance-metadata)

### Usar Amazon EventBridge
<a name="cp-eventbridge"></a>

Cuando se emite la señal de recomendación de reequilibrio para una instancia de spot, el evento de la señal se envía a Amazon EventBridge. Si EventBridge detecta un patrón de eventos que coincide con un patrón definido en una regla, EventBridge invoca un destino (o destinos) especificados en la regla.

El siguiente es un evento de ejemplo para la señal de recomendación de reequilibrio.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Instance Rebalance Recommendation",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0"
    }
}
```

Los siguientes campos forman el patrón de eventos definido en la regla:

`"detail-type": "EC2 Instance Rebalance Recommendation"`  
Identifica que el evento es un evento de recomendación de reequilibrio

`"source": "aws.ec2"`  
Identifica que el evento es de Amazon EC2.

#### Crear una regla de EventBridge
<a name="cp-eventbridge-rule"></a>

Puede escribir una regla de EventBridge y automatizar qué acciones tomar cuando el patrón de eventos coincida con la regla.

En el ejemplo siguiente se crea una regla de EventBridge para enviar un correo electrónico, un mensaje de texto o una notificación push móvil cada vez que Amazon EC2 emite una señal de recomendación de reequilibrio. La señal se emite como un evento de `EC2 Instance Rebalance Recommendation`, lo que desencadena la acción definida por la regla.

Antes de crear la regla de EventBridge, debe crear el tema de Amazon SNS para el email, el mensaje de texto o la notificación push móvil.

**Para crear una regla de EventBridge para un evento de recomendación de reequilibrio**

1. Abra la consola de Amazon EventBridge en [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Elija **Crear regla**.

1. En **Definir detalle de la regla**, haga lo siguiente:

   1. Ingrese un **Nombre** para la regla y, opcionalmente, una descripción.

      Una regla no puede tener el mismo nombre que otra regla de la misma región y del mismo bus de eventos.

   1. En **Bus de eventos**, elija **Predeterminado**. Cuando un servicio de AWS en su cuenta emite un evento, siempre se dirige al bus de eventos predeterminado de su cuenta.

   1. En **Tipo de regla**, elija **Regla con un patrón de evento**.

   1. Elija **Siguiente**.

1. En **Crear patrón de evento**, realice una de las siguientes acciones:

   1. En **Origen del evento**, elija **Eventos de AWS o eventos de socios de EventBridge**.

   1. En **Event pattern** (Patrón de eventos), en este ejemplo, especificará el siguiente patrón de eventos para que coincida con el evento `EC2 Instance Rebalance Recommendation` y, a continuación, elija **Save** (Guardar).

      ```
      {
       "source": ["aws.ec2"],
       "detail-type": ["EC2 Instance Rebalance Recommendation"]
      }
      ```

      Para agregar el patrón de evento, puede utilizar una plantilla por medio de la opción **Formulario de patrón de eventos** o puede especificar su propio patrón por medio de la opción **Patrón personalizado (editor JSON)**, de la siguiente manera:

      1. Para utilizar una plantilla con el objetivo de crear el patrón de evento, haga lo siguiente:

         1. Seleccione **Formulario de patrón de evento**.

         1. En **Origen del evento**, elija **Servicios de AWS**.

         1. En **Servicio de AWS**, elija **Flota de spot de EC2**.

         1. En **Tipo de evento**, elija **Recomendación de reequilibrio de las instancias de EC2**.

         1. Para personalizar la plantilla, elija **Editar patrón** y realice los cambios para que coincidan con el patrón de evento de ejemplo.

      1. (Alternativa) Para especificar un patrón de evento personalizado, haga lo siguiente:

         1. Elija **Custom pattern (JSON editor)** (Patrón personalizado [editor de JSON]).

         1. En el casillero **Patrón de evento**, agregue el patrón de eventos de este ejemplo.

   1. Elija **Siguiente**.

1. En **Seleccionar destino**, realice una de las siguientes acciones:

   1. En **Tipos de destino**, elija **Servicio de AWS**.

   1. En **Seleccionar un destino**, elija **Tema de SNS** para enviar un email, un mensaje de texto o una notificación push móvil cuando se produzca el evento.

   1. En **Tema**, elija un tema existente. Primero debe crear un tema de Amazon SNS mediante la consola de Amazon SNS. A fin de obtener más información, consulte [Uso de Amazon SNS para mensajería de aplicación a persona (A2P)](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html) en *Guía para desarrolladores de Amazon Simple Notification Service*.

   1. (Opcional) En **Configuración adicional**, puede configurar opciones adicionales. Para obtener más información, consulte [Creación de reglas de EventBridge que reaccionan a eventos](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (paso 16) en la *Guía del usuario de Amazon EventBridge*.

   1. Elija **Siguiente**.

1. (Opcional) En **Etiquetas**, puede asignar una o varias etiquetas a la regla y, a continuación, elija **Siguiente**.

1. En **Revisar y crear**, realice una de las siguientes acciones:

   1. Revise los detalles de la regla y modifíquelos según sea necesario.

   1. Seleccione **Creación de regla**.

Para obtener más información, consulte [Reglas de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) y [Patrones de eventos de Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) en la *Guía del usuario de Amazon EventBridge*.

### Usar metadatos de instancia
<a name="cp-instance-metadata"></a>

La categoría de metadatos de instancia `events/recommendations/rebalance` proporciona el tiempo aproximado, en UTC, cuando se emitió la señal de recomendación de reequilibrio para una instancia de spot.

Recomendamos que compruebe si hay señales de recomendación de reequilibrio cada 5 segundos para que no pierda la oportunidad de actuar en función de la recomendación de reequilibrio.

Si una instancia de spot recibe una recomendación de reequilibrio, la hora en que se emitió la señal está presente en los metadatos de la instancia. Puede recuperar la hora en que se emitió la señal de la siguiente manera.

------
#### [ IMDSv2 ]

**Linux**  
Ejecute el siguiente comando en la instancia de Linux.

**IMDSv2**

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
Ejecute el siguiente cmdlet en la instancia de Windows.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------
#### [ IMDSv1 ]

**Linux**  
Ejecute el siguiente comando en la instancia de Linux.

```
curl http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
Ejecute los siguientes cmdlets en la instancia de Windows.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------

A continuación, se muestra un ejemplo de salida, que indica la hora, en UTC, a la que se emitió la señal de recomendación de reequilibrio para la instancia de spot.

```
{"noticeTime": "2020-10-27T08:22:00Z"}
```

Si la señal no se ha emitido para la instancia, la `events/recommendations/rebalance` no está presente y recibirá un error HTTP 404 cuando intente recuperarla.

## Servicios que utilizan la señal de recomendación de reequilibrio
<a name="services-using-rebalance-rec-signal"></a>

Amazon EC2 Auto Scaling, la flota de EC2 y la flota de spot utilizan la señal de recomendación de reequilibrio para facilitar el mantenimiento de la disponibilidad de la carga de trabajo mediante el aumento proactivo de su flota con una nueva instancia de spot antes de que una instancia en ejecución reciba el aviso de interrupción de instancia de spot de dos minutos. Puede hacer que estos servicios monitoreen y respondan de forma proactiva a los cambios que afectan a la disponibilidad de su instancias de spot. Para obtener más información, consulte los siguientes temas:
+ [Utilizar el reequilibrio de capacidad para gestionar las interrupciones de spot de Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) en la *Guía del usuario de Amazon EC2 Auto Scaling*
+ [Utilice el reequilibrio de capacidad en la flota de EC2 y la flota de spot para reemplazar las instancias de spot en riesgo](ec2-fleet-capacity-rebalance.md) en el tema de flota de EC2 y la flota de spot en esta guía del usuario

# Puntuación de ubicación de spot
<a name="spot-placement-score"></a>

La característica de puntuación de ubicación de spot puede recomendar una región o zona de disponibilidad de AWS según sus requisitos de capacidad de spot. La capacidad de spot fluctúa y no se puede estar seguro de que siempre se obtendrá la capacidad necesaria. La puntuación de ubicación de spot indica la probabilidad de que una solicitud de spot tenga éxito en una región o zona de disponibilidad.

**nota**  
La puntuación de ubicación de spot no proporciona ninguna garantía en términos de capacidad disponible o riesgo de interrupción. Una puntuación de ubicación de spot solo sirve como recomendación.

**Casos de uso**

Puede utilizar la característica de puntuación de ubicación de spot para lo siguiente:
+ Reubicar y escalar la capacidad de computación de spot en una región diferente, según sea necesario, en respuesta al aumento de las necesidades de capacidad o a la disminución de la capacidad disponible en la región actual.
+ Identificar la zona de disponibilidad más óptima en la que ejecutar cargas de trabajo de zona de disponibilidad única.
+ Para simular las futuras necesidades de capacidad de spot para que pueda elegir una región óptima para la expansión de las cargas de trabajo basadas en spot.
+ Para encontrar una combinación óptima de tipos de instancias que satisfagan sus necesidades de capacidad de spot.

**Topics**
+ [Limitaciones](#sps-limitations)
+ [Costes](#sps-costs)
+ [Cómo funciona la puntuación de ubicación de spot](how-sps-works.md)
+ [Permisos necesarios para la puntuación de ubicación de spot](sps-iam-permission.md)
+ [Cálculo de la puntuación de ubicación de spot](work-with-spot-placement-score.md)

## Limitaciones
<a name="sps-limitations"></a>
+ **Límite de capacidad de destino**: el límite de capacidad de destino de la puntuación de ubicación de spot se basa en el uso reciente de spot, a la vez que tiene en cuenta el posible crecimiento en el uso. Si no ha habido un uso reciente de spot, se proporciona un límite predeterminado bajo alineado con el límite de solicitudes de spot.
+ **Límite de configuraciones de solicitudes**: se puede limitar el número de nuevas configuraciones de solicitudes en un periodo de 24 horas si se detectan patrones no asociados con el uso previsto de la característica de puntuación de ubicación de spot. Si se alcanza el límite, se puede volver a intentar con las configuraciones de solicitud que ya han sido utilizadas, pero no se puede especificar nuevas configuraciones de solicitud hasta el próximo periodo de 24 horas.
+ **Número mínimo de tipos de instancias**: si especifica tipos de instancias, debe especificar al menos tres tipos de instancias diferentes; de lo contrario, Amazon EC2 devolverá una puntuación de ubicación de spot baja. Del mismo modo, si especifica atributos de instancia, deben resolverse en al menos tres tipos de instancias diferentes. Los tipos de instancias se consideran diferentes si tienen un nombre distinto. Por ejemplo, m5.8xlarge, m5a.8xlarge y m5.12xlarge se consideran diferentes.

## Costes
<a name="sps-costs"></a>

No se aplican cargos adicionales por el uso de la característica de puntuación de ubicación de spot.

# Cómo funciona la puntuación de ubicación de spot
<a name="how-sps-works"></a>

Cuando se utiliza la característica de puntuación de ubicación de spot, primero se deben especificar los requisitos de computación para las instancias de spot, y luego Amazon EC2 devuelve las 10 mejores regiones o las zonas de disponibilidad donde es probable que la solicitud de spot tenga éxito. Cada región o zona de disponibilidad se califica en una escala del 1 al 10: 10 indica que es muy probable que la solicitud de spot tenga éxito y 1 indica que no es probable que la solicitud de spot tenga éxito.

**Topics**
+ [Paso 1: especificar los requisitos de spot](#sps-specify-requirements)
+ [Paso 2: filtrar la respuesta de puntuación de ubicación de spot](#get-sps)
+ [Paso 3: revisar las recomendaciones](#sps-recommendations)
+ [Paso 4: utilizar las recomendaciones](#sps-use-recommendations)

## Paso 1: especificar los requisitos de spot
<a name="sps-specify-requirements"></a>

En primer lugar, especifique la capacidad de spot de destino deseada y los requisitos de computación, de la siguiente manera:

1. **Especifique la capacidad de spot de destino y, opcionalmente, la unidad de capacidad de destino.**

   Puede especificar la capacidad de spot de destino deseada en términos del número de instancias o vCPU, o en términos de la cantidad de memoria en MiB. Para especificar la capacidad de destino en número de vCPU o cantidad de memoria, debe especificar la unidad de capacidad de destino como `vcpu` o `memory-mib`. De lo contrario, el valor predeterminado es el número de instancias.

   Al especificar la capacidad de destino en función del número de vCPU o la cantidad de memoria, puede utilizar estas unidades al contar la capacidad total. Por ejemplo, si desea utilizar una combinación de instancias de distintos tamaños, puede especificar la capacidad de destino como un número total de vCPU. A continuación, la característica de puntuación de ubicación de spot considera cada tipo de instancia de la solicitud por su número de vCPU y cuenta el número total de vCPU en lugar del número total de instancias al sumar la capacidad de destino total.

   Por ejemplo, supongamos que especifica una capacidad de destino total de 30 vCPU y la lista de tipos de instancia consta de c5.xlarge (4 vCPU), m5.2xlarge (8 vCPU) y r5.large (2 vCPU). Para lograr un total de 30 vCPU, podría obtener una combinación de 2 c5.xlarge (2\$14 vCPU), 2 m5.2xlarge (2\$18 vCPU) y 3 r5.large (3\$12 vCPU).

1. **Especifique tipos de instancia o atributos de instancia.**

   Puede especificar los tipos de instancia que se van a utilizar o bien especificar los atributos de instancia que necesita para los requerimientos de computación y, a continuación, permitir que Amazon EC2 identifique los tipos de instancia que tienen esos atributos. Esto se conoce como selección de tipo de instancia basada en atributos.

   No se pueden especificar los tipos de instancia y los atributos de instancia en la misma solicitud de puntuación de ubicación de spot.

   Si especifica tipos de instancias, debe especificar al menos tres tipos de instancia diferentes; de lo contrario, Amazon EC2 devolverá una puntuación de ubicación de spot baja. Del mismo modo, si especifica atributos de instancia, deben resolverse en al menos tres tipos de instancias diferentes.

Para ver ejemplos de diferentes formas de especificar los requisitos de spot, consulte [Configuraciones de ejemplo](work-with-spot-placement-score.md#sps-example-configs).

## Paso 2: filtrar la respuesta de puntuación de ubicación de spot
<a name="get-sps"></a>

Amazon EC2 calcula la puntuación de ubicación de spot de cada región o zona de disponibilidad y devuelve las 10 mejores regiones o las 10 mejores zonas de disponibilidad en las que es más probable que su solicitud de spot tenga éxito. De forma predeterminada, se devuelve una lista de regiones puntuadas. Si planea iniciar toda la capacidad de spot en una única zona de disponibilidad, resulta útil solicitar una lista de zonas de disponibilidad puntuadas.

Puede especificar un filtro de región para restringir las regiones que se devolverán en la respuesta.

Puede combinar el filtro de región y una solicitud de zonas de disponibilidad puntuadas. De este modo, las zonas de disponibilidad puntuadas se limitan a las regiones para las que ha filtrado. Para encontrar la zona de disponibilidad con mayor puntuación de una región, especifique solo esa región y la respuesta devolverá una lista puntuada de todas las zonas de disponibilidad de esa región.

## Paso 3: revisar las recomendaciones
<a name="sps-recommendations"></a>

La puntuación de ubicación de spot para cada región o zona de disponibilidad se calcula en función de la capacidad de destino, la composición de los tipos de instancia, las tendencias de uso de spot históricas y actuales y la hora de la solicitud. Debido a que la capacidad de spot fluctúa constantemente, la misma solicitud de puntuación de ubicación de spot puede producir puntuaciones diferentes cuando se calcula en diferentes momentos.

Las regiones y las zonas de disponibilidad se califican en una escala del 1 al 10. Una puntuación de 10 indica que es altamente probable (aunque no está garantizado) que la solicitud de spot tenga éxito. Una puntuación de 1 indica que no es probable que la solicitud de spot tenga éxito. Es posible que se devuelva la misma puntuación para distintas regiones o zonas de disponibilidad.

Si se devuelven puntuaciones bajas, puede editar los requisitos de computación y volver a calcular la puntuación. También puede solicitar recomendaciones de puntuación de ubicación de spot para los mismos requisitos de computación en diferentes momentos del día.

## Paso 4: utilizar las recomendaciones
<a name="sps-use-recommendations"></a>

Una puntuación de ubicación de spot solo es relevante si la solicitud de spot tiene exactamente la misma configuración que la configuración de puntuación de ubicación de spot (capacidad de destino, unidad de capacidad de destino y tipos de instancias o atributos de instancia) y está configurada para utilizar la estrategia de asignación `capacity-optimized`. De lo contrario, la probabilidad de obtener capacidad de spot disponible no estará alineada con la puntuación.

Si bien una puntuación de ubicación de spot sirve de guía y ninguna puntuación garantiza que su solicitud de spot se cumpla total o parcialmente, puede utilizar la siguiente información para obtener mejores resultados:
+ **Utilice la misma configuración**: la puntuación de ubicación de spot solo es relevante si la configuración de la solicitud de spot (capacidad objetivo, unidad de capacidad objetivo y tipos de instancia o atributos de instancia) del grupo de escalado automático, flota de EC2 o flota de spot es la misma que la especificada para obtener la puntuación de ubicación de spot.

  Si ha utilizado la selección de tipo de instancia basada en atributos en la solicitud de puntuación de ubicación de spot, puede utilizar la selección de tipo de instancia basada en atributos para configurar el grupo de escalado automático, la flota de EC2 o la flota de spot. Para obtener más información, consulte [Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) y [Especifique atributos para la selección del tipo de instancia para la flota de EC2 o flota de spot](ec2-fleet-attribute-based-instance-type-selection.md).
**nota**  
Si especificó la capacidad objetivo en términos del número de vCPU o la cantidad de memoria y ha especificado tipos de instancias en la configuración de puntuación de ubicación de spot, tenga en cuenta que no puede crear esta configuración en el grupo de escalado automático, la flota de EC2 o la flota de spot. En su lugar, debe configurar de forma manual la ponderación de la instancia mediante el parámetro `WeightedCapacity`.
+ **Utilice la estrategia de asignación `capacity-optimized`**: todas las puntuaciones presuponen que, para que la solicitud de capacidad de spot tenga éxito, la solicitud de flota se configurará de modo que utilice todas las zonas de disponibilidad (para solicitar capacidad en la totalidad de regiones) o una única zona de disponibilidad (si se solicita capacidad en una sola zona de disponibilidad) y la estrategia de asignación de spot `capacity-optimized`. Si utiliza otras estrategias de asignación, como `lowest-price`, la probabilidad de obtener capacidad de spot disponible no estará alineada con la puntuación.
+ **Actúe según indique la puntuación de forma inmediata**: la recomendación de puntuación de ubicación de spot refleja la capacidad de spot disponible en el momento de la solicitud, y la misma configuración puede producir puntuaciones diferentes cuando se calcula en diferentes momentos debido a las fluctuaciones de la capacidad de spot. Si bien una puntuación de 10 significa que es muy probable que su solicitud de capacidad de spot tenga éxito (aunque esto no esté garantizado) para obtener los mejores resultados le recomendamos que actúe con relación a la puntuación en forma inmediata. También le recomendamos que obtenga una nueva puntuación cada vez que intente una solicitud de capacidad.

# Permisos necesarios para la puntuación de ubicación de spot
<a name="sps-iam-permission"></a>

De forma predeterminada, las identidades de IAM (usuarios, roles o grupos) no tienen permiso para usar [Puntuación de ubicación de spot](spot-placement-score.md). Para permitir que las identidades de IAM usen la puntuación de ubicación de spot, debe crear una política de IAM que conceda permiso para usar la acción de la API de EC2 `ec2:GetSpotPlacementScores`. A continuación, adjunte la política a la identidad de IAM que requiere el permiso.

A continuación, se muestra un ejemplo de política de IAM que concede permisos para la acción de la API de EC2 `ec2:GetSpotPlacementScores`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:GetSpotPlacementScores",
            "Resource": "*"
        }
    ]
}
```

------

Para obtener más información acerca de la actualización de políticas de IAM, consulte [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) en la *Guía del usuario de IAM*.

Para dar acceso, agregue permisos a los usuarios, grupos o roles:
+ Usuarios y grupos en AWS IAM Identity Center:

  Cree un conjunto de permisos. Siga las instrucciones de [Creación de un conjunto de permisos](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) en la *Guía del usuario de AWS IAM Identity Center*.
+ Usuarios gestionados en IAM a través de un proveedor de identidades:

  Cree un rol para la federación de identidades. Siga las instrucciones descritas en [Creación de un rol para un proveedor de identidad de terceros (federación)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) en la *Guía del usuario de IAM*.
+ Usuarios de IAM:
  + Cree un rol que el usuario pueda aceptar. Siga las instrucciones descritas en [Creación de un rol para un usuario de IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) en la *Guía del usuario de IAM*.
  + (No recomendado) Adjunte una política directamente a un usuario o agregue un usuario a un grupo de usuarios. Siga las instrucciones descritas en [Adición de permisos a un usuario (consola)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) de la *Guía del usuario de IAM*.

# Cálculo de la puntuación de ubicación de spot
<a name="work-with-spot-placement-score"></a>

Puede calcular la puntuación de ubicación de spot en función de los requisitos de computación y de capacidad de destino. Para obtener más información, consulte [Cómo funciona la puntuación de ubicación de spot](how-sps-works.md).

**Permisos necesarios**  
Asegúrese de que dispone de los permisos necesarios. Para obtener más información, consulte [Permisos necesarios para la puntuación de ubicación de spot](sps-iam-permission.md).

**Topics**
+ [Cálculo a partir de los atributos de la instancia](#sps-specify-instance-attributes-console)
+ [Cálculo a partir de los tipos de instancia](#sps-specify-instance-types-console)
+ [Cálculo a partir de la AWS CLI](#calculate-sps-cli)

**¿Busca una solución automatizada?** En lugar de seguir los pasos manuales de esta guía del usuario, puede crear un panel de seguimiento de puntuaciones de ubicación de spot que capture y almacene automáticamente las puntuaciones en Amazon CloudWatch. Para obtener más información, consulte [Guidance for Building a Spot Placement Score Tracker Dashboard on AWS](https://aws.amazon.com/solutions/guidance/building-a-spot-placement-score-tracker-dashboard-on-aws/).

## Cálculo a partir de los atributos de la instancia
<a name="sps-specify-instance-attributes-console"></a>

**Para calcular una puntuación de ubicación de spot mediante la especificación de atributos de instancia**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**.

1. Seleccione la flecha hacia abajo situada junto a **Solicitar instancias de spot** y seleccione **Calcular puntuación de colocación de spot**.

1. Elija **Enter requirements** (Ingresar requisitos).

1. En **Target capacity** (Capacidad de destino), ingrese la capacidad deseada en función del número de **instancias** o **vCPU**, o la cantidad de **memoria (MiB)**.

1. Para los **Requisitos de tipo de instancia**, a fin de especificar sus requisitos de computación y permitir que Amazon EC2 identifique los tipos de instancias óptimos en relación con estos requisitos, elija **Especificar los atributos de instancia que coincidan con los requisitos de computación**.

1. En **vCPU**, ingrese el número mínimo y máximo deseado de vCPU. Para no especificar ningún límite, seleccione **No minimum** (Sin mínimo), **No maximum** (Sin máximo) o ambos.

1. En **Memory (GiB)** (Memoria [GiB]), ingrese la cantidad mínima y máxima de memoria deseada. Para no especificar ningún límite, seleccione **No minimum** (Sin mínimo), **No maximum** (Sin máximo) o ambos.

1. En **CPU architecture** (Arquitectura de CPU), seleccione la arquitectura de instancias requerida.

1. (Opcional) En **Additional instance attributes** (Atributos de instancia adicionales), puede especificar opcionalmente uno o varios atributos para expresar sus requisitos de computación con más detalle. Cada atributo adicional agrega una restricción más a su solicitud. Puede omitir los atributos adicionales; si se omiten, se utilizan los valores predeterminados. Para obtener una descripción de cada atributo y de sus valores predeterminados, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

1. (Opcional) Para ver los tipos de instancia con los atributos especificados, expanda **Preview matching instance types** (Vista previa de los tipos de instancia que coinciden). Para excluir que los tipos de instancias se utilicen en la evaluación de ubicación, seleccione las instancias y, a continuación, elija **Exclude selected instance types** (Excluir los tipos de instancias seleccionados).

1. Elija **Load placement scores** (Cargar puntuaciones de ubicación) y revise los resultados.

1. (Opcional) Para mostrar la puntuación de ubicación de spot para regiones específicas, en **Regiones que se deben evaluar**, seleccione las regiones que desea evaluar y, a continuación, elija **Calcular las puntuaciones de ubicación**.

1. (Opcional) Para mostrar la puntuación de colocación de punto para las zonas de disponibilidad en la de regiones que aparecen, seleccione la casilla de verificación **Proporcionar puntuaciones de ubicación por zona de disponibilidad**. Resulta útil contar con una lista de zonas de disponibilidad puntuadas cuando desea lanzar toda la capacidad de spot en una única zona de disponibilidad.

1. (Opcional) Para editar los requisitos de computación y obtener una nueva puntuación de ubicación, elija **Edit** (Editar), realice los ajustes necesarios y, a continuación, elija **Calculate placement scores** (Calcular la puntuación de ubicación).

## Cálculo a partir de los tipos de instancia
<a name="sps-specify-instance-types-console"></a>

**Para calcular una puntuación de ubicación de spot mediante la especificación de tipos de instancias**

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, elija **Solicitudes de spot**.

1. Seleccione la flecha hacia abajo situada junto a **Solicitar instancias de spot** y seleccione **Calcular puntuación de colocación de spot**.

1. Elija **Enter requirements** (Ingresar requisitos).

1. En **Target capacity** (Capacidad de destino), ingrese la capacidad deseada en función del número de **instancias** o **vCPU**, o la cantidad de **memoria (MiB)**.

1. Para **Instance type requirements** (Requisitos del tipo de instancia), para especificar los tipos de instancia que desea utilizar, elija **Manually select instance types** (Seleccionar manualmente los tipos de instancia).

1. Elija **Select instance types** (Seleccionar tipos de instancia), seleccione los tipos de instancia que desea utilizar y, a continuación, elija **Select** (Seleccionar). Para buscar rápidamente tipos de instancias, puede utilizar la barra de filtros y así filtrar los tipos de instancia por diferentes propiedades.

1. Elija **Load placement scores** (Cargar puntuaciones de ubicación) y revise los resultados.

1. (Opcional) Para mostrar la puntuación de ubicación de spot para regiones específicas, en **Regiones que se deben evaluar**, seleccione las regiones que desea evaluar y, a continuación, elija **Calcular las puntuaciones de ubicación**.

1. (Opcional) Para mostrar la puntuación de colocación de punto para las zonas de disponibilidad en la de regiones que aparecen, seleccione la casilla de verificación **Proporcionar puntuaciones de ubicación por zona de disponibilidad**. Le resultará útil contar con una lista de zonas de disponibilidad puntuadas cuando quiera iniciar toda la capacidad de spot en una única zona de disponibilidad.

1. (Opcional) Para editar la lista de tipos de instancia y obtener una nueva puntuación de ubicación, elija **Edit** (Editar), realice los ajustes necesarios y, a continuación, elija **Calculate placement scores** (Calcular puntuaciones de ubicación).

## Cálculo a partir de la AWS CLI
<a name="calculate-sps-cli"></a>

**Para calcular la puntuación de ubicación de spot**

1. (Opcional) Para generar todos los parámetros posibles que se pueden especificar para la configuración de puntuación de ubicación de spot, utilice el comando [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) y el parámetro `--generate-cli-skeleton`.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --generate-cli-skeleton
   ```

   A continuación, se muestra un ejemplo del resultado.

   ```
   {
       "InstanceTypes": [
           ""
       ],
       "TargetCapacity": 0,
       "TargetCapacityUnitType": "vcpu",
       "SingleAvailabilityZone": true,
       "RegionNames": [
           ""
       ],
       "InstanceRequirementsWithMetadata": {
           "ArchitectureTypes": [
               "x86_64_mac"
           ],
           "VirtualizationTypes": [
               "hvm"
           ],
           "InstanceRequirements": {
               "VCpuCount": {
                   "Min": 0,
                   "Max": 0
               },
               "MemoryMiB": {
                   "Min": 0,
                   "Max": 0
               },
               "CpuManufacturers": [
                   "amd"
               ],
               "MemoryGiBPerVCpu": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "ExcludedInstanceTypes": [
                   ""
               ],
               "InstanceGenerations": [
                   "previous"
               ],
               "SpotMaxPricePercentageOverLowestPrice": 0,
               "OnDemandMaxPricePercentageOverLowestPrice": 0,
               "BareMetal": "excluded",
               "BurstablePerformance": "excluded",
               "RequireHibernateSupport": true,
               "NetworkInterfaceCount": {
                   "Min": 0,
                   "Max": 0
               },
               "LocalStorage": "included",
               "LocalStorageTypes": [
                   "hdd"
               ],
               "TotalLocalStorageGB": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "BaselineEbsBandwidthMbps": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorTypes": [
                   "fpga"
               ],
               "AcceleratorCount": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorManufacturers": [
                   "amd"
               ],
               "AcceleratorNames": [
                   "vu9p"
               ],
               "AcceleratorTotalMemoryMiB": {
                   "Min": 0,
                   "Max": 0
               }
           }
       },
       "DryRun": true,
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. Cree un archivo de configuración JSON con el resultado del paso anterior y configúrelo de la siguiente manera:

   1. En `TargetCapacity` (Capacidad de destino), ingrese la capacidad de spot deseada en función del número de instancias o vCPU, o la cantidad de memoria (MiB).

   1. En `TargetCapacityUnitType`, ingrese la unidad correspondiente a la capacidad de destino. Si omite este parámetro, el valor predeterminado será `units`.

      Valores válidos: `units` (lo que se traduce en número de instancias) \$1`vcpu` \$1 `memory-mib`

   1. En `SingleAvailabilityZone`, especifique `true` para una respuesta que devuelva una lista de zonas de disponibilidad puntuadas. Le resultará útil contar con una lista de zonas de disponibilidad puntuadas cuando quiera iniciar toda la capacidad de spot en una única zona de disponibilidad. Si omite este parámetro, se establece de manera predeterminada como `false` y la respuesta devuelve una lista de regiones puntuadas.

   1. (Opcional) En `RegionNames`, especifique las regiones que desea utilizar como filtro. Debe especificar el código de la región; por ejemplo, `us-east-1`.

      Con un filtro de región, la respuesta devuelve solo las regiones que especifique. Si ha especificado `true` para `SingleAvailabilityZone`, la respuesta devuelve solo las zonas de disponibilidad de las regiones que haya especificado.

   1. Puede incluir bien `InstanceTypes` o bien `InstanceRequirements`, pero no se pueden usar ambos en la misma configuración.

      Especifique una de las siguientes opciones en la configuración JSON:
      + Para especificar una lista de los tipos de instancia, especifique los tipos de instancia en el parámetro `InstanceTypes`. Especifique al menos tres tipos de instancia diferentes. Si especifica solo uno o dos tipos de instancia, la puntuación de ubicación de spot devuelve una puntuación baja. Para obtener la lista de los tipos de instancia, consulte [Tipos de instancia de Amazon EC2](https://aws.amazon.com/ec2/instance-types/).
      + Para especificar los atributos de instancia de modo que Amazon EC2 identifique los tipos de instancia que coinciden con esos atributos, especifique los atributos que se encuentran en la estructura `InstanceRequirements`.

        Debe proporcionar valores para `VCpuCount`, `MemoryMiB` y `CpuManufacturers`. Puede omitir los demás atributos; cuando se omiten, se utilizan los valores predeterminados. Para obtener una descripción de cada atributo y de sus valores predeterminados, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

      Para ver configuraciones de ejemplo, consulte [Configuraciones de ejemplo](#sps-example-configs).

1. Para obtener la puntuación de ubicación de spot en relación con los requisitos especificados en el archivo JSON, utilice el comando [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) y especifique el nombre y la ruta de acceso al archivo JSON mediante el parámetro `--cli-input-json`.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --cli-input-json file://file_name.json
   ```

   Ejemplo de resultado si `SingleAvailabilityZone` se establece como `false` o se omite (si se omite, se establece de manera predeterminada como `false`): se devuelve una lista puntuada de regiones.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "Score": 7
       },
       {
           "Region": "us-west-1",
           "Score": 5
       },  
      ...
   ```

   Ejemplo de resultado si `SingleAvailabilityZone` se establece en `true`; se devuelve una lista puntuada de zonas de disponibilidad.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "use1-az1",
           "Score": 8
       },
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "usw2-az3",
           "Score": 6
       },
      ...
   ```

### Configuraciones de ejemplo
<a name="sps-example-configs"></a>

Cuando se utiliza la AWS CLI, se pueden utilizar las siguientes configuraciones de ejemplo.

**Topics**
+ [Ejemplo: especificación de tipos de instancia y capacidad de destino](#example-config-instance-type-override)
+ [Ejemplo: especificación de tipos de instancia y capacidad de destino en términos de memoria](#example-config-instance-type-memory-unit-override)
+ [Ejemplo: especificar atributos para la selección de tipos de instancia basada en atributos](#example-config-attribute-based-instance-type-selection)
+ [Ejemplo: especificar atributos para la selección de tipos de instancia basada en atributos y devolver una lista puntuada de zonas de disponibilidad](#example-config-sps-singleAZ)

#### Ejemplo: especificación de tipos de instancia y capacidad de destino
<a name="example-config-instance-type-override"></a>

En la siguiente configuración de ejemplo, se especifican tres tipos de instancia diferentes y una capacidad de spot de 500 instancias de spot de destino.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500
}
```

#### Ejemplo: especificación de tipos de instancia y capacidad de destino en términos de memoria
<a name="example-config-instance-type-memory-unit-override"></a>

En la siguiente configuración de ejemplo se especifican tres tipos de instancia diferentes y una capacidad de spot de destino de 500 000 MiB de memoria, donde el número de instancias de spot que se van a iniciar debe proporcionar un total de 500 000 MiB de memoria.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500000,
    "TargetCapacityUnitType": "memory-mib"
}
```

#### Ejemplo: especificar atributos para la selección de tipos de instancia basada en atributos
<a name="example-config-attribute-based-instance-type-selection"></a>

La siguiente configuración de ejemplo se configura para la selección de tipos de instancia basada en atributos y va seguida de una explicación de texto de la configuración de ejemplo.

```
{
    "TargetCapacity": 5000,
    "TargetCapacityUnitType": "vcpu",
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

****`InstanceRequirementsWithMetadata`****  
Para utilizar la selección de tipo de instancia basada en atributos, debe incluir la estructura `InstanceRequirementsWithMetadata` en la configuración y especificar los atributos deseados para las instancias de spot.

En el ejemplo anterior, se especifican los siguientes atributos de instancia requeridos:
+ `ArchitectureTypes`: el tipo de arquitectura de los tipos de instancia debe ser `arm64`.
+ `VirtualizationTypes`: el tipo de virtualización de los tipos de instancia debe ser `hvm`.
+ `VCpuCount`: los tipos de instancia deben tener un mínimo de 1 y un máximo de 12 vCPU.
+ `MemoryMiB`: los tipos de instancia deben tener un mínimo de 512 MiB de memoria. Al omitir el parámetro `Max`, indica que no hay límite máximo.

Tenga en cuenta que hay otros atributos opcionales que puede especificar. Para obtener una lista de atributos, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

**`TargetCapacityUnitType`**  
El parámetro `TargetCapacityUnitType` especifica la unidad de la capacidad de destino. En el ejemplo, la capacidad de destino es `5000` y el tipo de unidad de capacidad de destino es `vcpu`, que en conjunto especifican una capacidad de destino deseada de 5000 vCPU, en las que el número de instancias de spot que se van a iniciar debe proporcionar un total de 5000 vCPU.

#### Ejemplo: especificar atributos para la selección de tipos de instancia basada en atributos y devolver una lista puntuada de zonas de disponibilidad
<a name="example-config-sps-singleAZ"></a>

El siguiente ejemplo de configuración, se configura para la selección de tipos de instancia basada en atributos. Al especificar `"SingleAvailabilityZone": true`, la respuesta devolverá una lista de zonas de disponibilidad puntuadas.

```
{
    "TargetCapacity": 1000,
    "TargetCapacityUnitType": "vcpu",
    "SingleAvailabilityZone": true,
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

# Seguimiento de los costos de las instancias de spot mediante la fuente de datos de instancias de spot
<a name="spot-data-feeds"></a>

Para ayudarlo a comprender los cargos de las instancias de spot, Amazon EC2 proporciona una fuente de datos que describe el uso que usted hace de las instancias de spot y los precios de estas. Esta fuente de datos se envía a un bucket de Amazon S3 que usted especifica al suscribirse a la fuente de datos.

Los archivos de fuente de datos llegan generalmente al bucket una vez cada hora. Si no tiene una instancia de spot en ejecución durante una determinada hora, no recibirá ningún archivo de fuente de datos para esa hora.

Cada hora de uso de la instancia de spot está registrada normalmente en un único archivo de datos. Estos archivos se comprimen (gzip) antes de que se entreguen al bucket. Amazon EC2 puede escribir varios archivos para una determinada hora de uso en la que los archivos sean grandes (por ejemplo, cuando el contenido del archivo para la hora exceda los 50 MB antes de comprimirlo).

**nota**  
Solo puede crear una fuente de datos de instancias de spot por Cuenta de AWS.

La fuente de datos de instancias de spot se admite en todas las regiones de AWS, excepto en China (Pekín), China (Ningxia), AWS GovCloud (EE. UU) y las [Regiones desactivadas de forma predeterminada](using-regions-availability-zones.md#concepts-available-regions).

**Topics**
+ [Nombre y formato del archivo de fuente de datos](#using-spot-instances-format)
+ [Requisitos del bucket de Amazon S3](#using-spot-instances-dfs3)
+ [Suscribirse a su fuente de datos de instancia de spot](#using-spot-instances-datafeed-all)
+ [Consulta de los datos de su fuente de datos](#using-spot-instances-datafeed-view-data)
+ [Eliminar la fuente de datos de instancia de spot](#using-spot-instances-datafeed-delete)

## Nombre y formato del archivo de fuente de datos
<a name="using-spot-instances-format"></a>

El nombre del archivo de fuente de datos de la instancia de spot usa el siguiente formato (con la fecha y la hora en UTC): 

```
bucket-name.s3.amazonaws.com/optional-prefix/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz
```

Por ejemplo, si el nombre del bucket es **amzn-s3-demo-bucket** y el prefijo es **my-prefix**, los nombres de los archivos serán similares al siguiente ejemplo:

```
amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz
```

Para obtener más información acerca de los nombres de bucket, consulte [Reglas para la nomenclatura de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) en la *Guía del usuario de Amazon S3*.

Los archivos de fuente de datos de instancia de spot están delimitados por tabuladores. Cada línea en el archivo de datos corresponde a una hora de instancia y contiene los campos enumerados en la siguiente tabla.


|  Campo  |  Descripción  | 
| --- | --- | 
|   `Timestamp`   |  La marca de tiempo que se usa para determinar el precio que se cobra por esta hora de instancia.  | 
|   `UsageType`   |  El tipo de uso y el tipo de instancia por los que se le cobra. Para `m1.small` instancias de spot, este campo está establecido en `SpotUsage`. Para todos los demás tipos de instancias, este campo está establecido en `SpotUsage:`\$1*instance-type*\$1. Por ejemplo, `SpotUsage:c1.medium`.  | 
|   `Operation`   |  El producto por el que se le cobra. Para las instancias de spot de Linux, este campo está establecido en `RunInstances`. Para las instancias de spot de Windows, este campo está establecido en `RunInstances:0002`. El uso de spots se agrupa por zona de disponibilidad.  | 
|   `InstanceID`   |  El ID de la instancia de spot que generó este uso de instancia.  | 
|   `MyBidID`   |  El ID de la solicitud de instancia de spot que generó este uso de instancia.  | 
|   `MyMaxPrice`   |  El precio máximo especificado para esta solicitud de spot.  | 
|   `MarketPrice`   |  El precio de spot a la hora especificada en el campo `Timestamp`.  | 
|   `Charge`   |  El precio que se le cobra por este uso de instancia.  | 
|   `Version`   |  La versión de la fuente de datos. La versión posible es la 1.0.  | 

## Requisitos del bucket de Amazon S3
<a name="using-spot-instances-dfs3"></a>

Cuando se suscribe a la fuente de datos, debe especificar un bucket de Amazon S3 donde almacenar los archivos de fuente de datos.

Antes de elegir un bucket de Amazon S3 para la fuente de datos, tenga en cuenta lo siguiente:
+ Debe tener permisos de `FULL_CONTROL` en ese bucket. Si es el propietario del bucket, tiene este permiso de forma predeterminada. En otro caso, el propietario del bucket debe concederle este permiso a su Cuenta de AWS.
+ Cuando se suscriba a una fuente de datos, estos permisos se utilizarán para actualizar la ACL del bucket para conceder el permiso AWS a la cuenta de fuente de datos de `FULL_CONTROL`. La cuenta de fuente de datos de AWS escribe los archivos de fuente de datos en el bucket. Si la cuenta no tiene los permisos necesarios, los archivos de fuente de datos no se pueden escribir en el bucket. Para obtener más información, consulte [Registros enviados a Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) en la *Guía del usuario de Registros de Amazon CloudWatch*.

  Si actualiza la ACL y elimina los permisos de la cuenta de fuente de datos de AWS, los archivos de fuente de datos no se pueden escribir en el bucket. Debe volver a suscribirse a fuente de datos para recibir los archivos de fuente de datos.
+ Cada archivo de fuente de datos tiene su propia ACL (independiente de la ACL del bucket). El propietario del bucket tiene permiso `FULL_CONTROL` para los archivos de datos. La cuenta de fuente de datos de AWS tiene permisos de lectura y escritura.
+ Si elimina su suscripción de fuente de datos, Amazon EC2 no elimina los permisos de lectura y escritura de la cuenta de fuente de datos de AWS ni del bucket ni de los archivos de datos. Debe eliminar esos permisos usted mismo.
+ Debe usar una clave administrada por el cliente si cifra su bucket de Amazon S3 mediante el cifrado del lado del servidor con una clave de AWS KMS almacenada en AWS Key Management Service (SSE-KMS). Para obtener más información, consulte [Cifrado del lado del servidor del bucket de Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3) en la *Guía del usuario de Amazon CloudWatch Logs*.

## Suscribirse a su fuente de datos de instancia de spot
<a name="using-spot-instances-datafeed-all"></a>

Puede suscribirse a su fuente de datos de instancia de spot en cualquier momento. No puede completar esta tarea mediante la consola de Amazon EC2.

Si recibe un error que indica que el bucket no tiene permisos suficientes, consulte el siguiente artículo para obtener información sobre la solución de problemas: [Troubleshoot the data feed for Spot Instances](https://repost.aws/knowledge-center/s3-data-feed-ec2-spot-instances).

------
#### [ AWS CLI ]

**Suscribirse a la fuente de datos**  
Utilice el comando [create-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-spot-datafeed-subscription.html).

Para especificar un bucket con un prefijo, utilice el siguiente ejemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket \
    --prefix my-prefix
```

Para especificar un bucket sin prefijo, utilice el siguiente ejemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket
```

------
#### [ PowerShell ]

**Suscribirse a la fuente de datos**  
Utilice el cmdlet [New-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SpotDatafeedSubscription.html).

Para especificar un bucket con un prefijo, utilice el siguiente ejemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket `
    -Prefix my-prefix
```

Para especificar un bucket sin prefijo, utilice el siguiente ejemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket
```

------

## Consulta de los datos de su fuente de datos
<a name="using-spot-instances-datafeed-view-data"></a>

En la Consola de administración de AWS, abra AWS CloudShell. Use el siguiente comando [s3 sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) para obtener los archivos .gz del bucket de S3 para su fuente de datos y guárdelos en la carpeta que especifique.

```
aws s3 sync s3://amzn-s3-demo-bucket ./data-feed
```

Para mostrar el contenido de un archivo .gz, vaya a la carpeta en la que guardó el contenido del bucket de S3.

```
cd data-feed
```

Use el comando **ls** para ver los nombres de los archivos. Use el comando **zcat** con el nombre del archivo para mostrar el contenido del archivo comprimido. El siguiente comando es un ejemplo.

```
zcat  111122223333.2023-12-09-07.001.b959dbc6.gz
```

A continuación, se muestra un ejemplo del resultado.

```
#Version: 1.0
#Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version
2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium       RunInstances:SV050      i-0c3e0c0b046e050df     sir-pwq6nmfp    0.0510000000 USD        0.0142000000 USD        0.0142000000 USD        1
```

## Eliminar la fuente de datos de instancia de spot
<a name="using-spot-instances-datafeed-delete"></a>

Cuando haya terminado con la fuente de datos de instancias de spot, puede eliminarla.

------
#### [ AWS CLI ]

**Eliminar su fuente de datos**  
Utilice el comando [delete-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-spot-datafeed-subscription.html).

```
aws ec2 delete-spot-datafeed-subscription
```

------
#### [ PowerShell ]

**Eliminar su fuente de datos**  
Utilice el cmdlet [Remove-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SpotDatafeedSubscription.html).

```
Remove-EC2SpotDatafeedSubscription
```

------

# Rol vinculado al servicio para solicitudes de instancias de spot
<a name="service-linked-roles-spot-instance-requests"></a>

Amazon EC2 utiliza roles vinculados a un servicio para los permisos que necesita para llamar a otros servicios de AWS en su nombre. Un rol vinculado a un servicio es un tipo único de rol de IAM que está vinculado directamente a un Servicio de AWS. Los roles vinculados a servicios ofrecen una manera segura de delegar permisos a Servicios de AWS, ya que solo los servicios vinculados pueden asumir roles vinculados a servicios. Para obtener más información, consulte [Roles vinculados al servicio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) en la *Guía del usuario de IAM*.

Amazon EC2 usa el rol vinculado a un servicio denominado **AWSServiceRoleForEC2Spot** para iniciar y administrar instancias de spot en su nombre.

## Permisos concedidos por AWSServiceRoleForEC2Spot
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2Spot"></a>

Amazon EC2 usa **AWSServiceRoleForEC2Spot** para ejecutar las acciones siguientes:
+ `ec2:DescribeInstances`: describir instancias de spot
+ `ec2:StopInstances`: detener instancias de spot
+ `ec2:StartInstances`: iniciar instancias de spot

## Creación del rol vinculado a servicio
<a name="service-linked-role-creating-for-spot"></a>

En la mayoría de los casos, no es necesario crear manualmente roles vinculados a servicios. Amazon EC2 crea el rol vinculado a un servicio **AWSServiceRoleForEC2Spot** la primera vez que se solicita una instancia de spot mediante la consola.

Si tenía una solicitud de instancia de spot activa antes de octubre de 2017, cuando Amazon EC2 empezó a admitir este rol vinculado a servicio, Amazon EC2 creó el rol **AWSServiceRoleForEC2Spot** en su cuenta de AWS. Para obtener más información, consulte [Un nuevo rol ha aparecido en mi cuenta](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared) en la *Guía del usuario de IAM*

Si utiliza la AWS CLI o una API para realizar una solicitud de instancias de spot, debe asegurarse de que este rol exista.

**Cómo crear **AWSServiceRoleForEC2Spot** mediante la consola**

1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Create role**.

1. En la página **Seleccionar el tipo de entidad de confianza**, elija **EC2**, **EC2: instancias de spot** y **Siguiente: Permisos**.

1. En la siguiente página, elija **Next:Review (Siguiente: Revisión)**.

1. En la página **Review (Revisión)**, elija **Create role (Crear rol)**.

**Cómo crear **AWSServiceRoleForEC2Spot** con la AWS CLI**  
Utilice el comando [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) de la siguiente manera.

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```

Si ya no tiene que utilizar instancias de spot, le recomendamos que elimine el rol **AWSServiceRoleForEC2Spot**. Después de eliminar este rol de la cuenta, Amazon EC2 volverá a crearlo cuando solicite instancias de spot.

## Conceder acceso a las claves administradas por el cliente para su uso con AMI cifradas e instantáneas de EBS
<a name="spot-instance-service-linked-roles-access-to-cmks"></a>

Si especifica una [AMI cifrada](AMIEncryption.md) o una instantánea de Amazon EBS cifrada en sus instancias de spot y usa una clave administrada por el cliente para el cifrado, debe conceder permiso al rol **AWSServiceRoleForEC2Spot** para que use esa clave a fin de que Amazon EC2 pueda iniciar instancias de spot en su nombre. Para ello, debe agregar una concesión a la clave administrada por el cliente, como se muestra en el siguiente procedimiento.

Al proporcionar permisos, las concesiones son una alternativa a las políticas de claves. Para obtener más información, consulte [Uso de concesiones](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) y [Uso de políticas de claves en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la * Guía para desarrolladores de AWS Key Management Service*.

**Para conceder permisos al rol **AWSServiceRoleForEC2Spot** a fin de que utilice la clave administrada por el cliente**
+ Use el comando [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) para agregar una concesión a la clave administrada por el cliente y para especificar la entidad principal (el rol vinculado a un servicio **AWSServiceRoleForEC2Fleet**) que recibe permiso para realizar las operaciones que permite la concesión. La clave administrada por el cliente se especifica mediante el parámetro `key-id` y el ARN de la clave administrada por el cliente. La entidad principal se especifica con el parámetro `grantee-principal` y el ARN del rol vinculado a un servicio **AWSServiceRoleForEC2Spot**.

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

# Cuotas de instancias de spot
<a name="using-spot-limits"></a>

Existe un límite en la cantidad de instancias de spot en ejecución por Cuenta de AWS por región. Tras cumplir una solicitud de instancia de spot pendiente, la solicitud ya no se contará para la cuota, ya que la instancia en ejecución se cuenta para la cuota.

Las cuotas de instancias de spot se administran en términos de *cantidad de unidades de procesamiento central virtuales (CPU virtuales)* que utilizan o utilizarán las instancias de spot en ejecución hasta que se completen las solicitudes de instancia de spot abiertas. Si termina sus instancias de spot, pero no cancela las solicitudes de instancias de spot, las solicitudes se contabilizarán en la cuota de CPU virtuales de su instancia de spot hasta que Amazon EC2 detecte la terminación de las instancias de spot y cierre las solicitudes.

A continuación se detallan los tipos de cuotas para instancias de spot que se ofrecen.


| Nombre | Predeterminado | Ajustable | 
| --- | --- | --- | 
| Todas las solicitudes de instancia de spot DL | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-85EED4F7) | 
| Todas las solicitudes de instancia de spot F | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-88CF9481) | 
| Todas las solicitudes de instancia de spot G y VT | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-3819A6DF) | 
| Todas las solicitudes de instancia de spot Inf | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-B5D1601B) | 
| Todas las solicitudes de instancia de spot P | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-7212CCBC) | 
| Todas las solicitudes de instancias de spot estándar (A, C, D, H, I, M, R, T, Z) | 5 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) | 
| Todas las solicitudes de instancias de spot Trn | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-6B0D517C) | 
| Todas las solicitudes de instancia de spot X | 0 | [Sí](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-E3A00192) | 

Aunque Amazon EC2 ajusta automáticamente las cuotas de instancias de spot en función del uso, puede solicitar un aumento de la cuota si es necesario. Por ejemplo, si tiene intención de iniciar más instancias de spot de lo que permite su cuota actual, puede solicitar un aumento de la cuota. También puede solicitar un aumento de la cuota si envía una solicitud de instancia de spot y recibe el error `Max spot instance count exceeded`. Para solicitar un aumento de una cuota, use la consola de Service Quotas, tal como se describe en [Cuotas de servicio de Amazon EC2](ec2-resource-limits.md).

Puede iniciar cualquier combinación de tipos de instancias que cumplan las necesidades cambiantes de su aplicación. Por ejemplo, con una cuota de solicitudes de instancias de spot All Standard de 256 CPU virtuales, puede iniciar 32 instancias de spot `m5.2xlarge` (CPU virtuales de 32 x 8) o 16 instancias de spot `c5.4xlarge` (CPU virtuales de 16 x 16). 

Con la integración de métricas de Amazon CloudWatch, puede monitorear el uso de EC2 según sus cuotas. También puede configurar alarmas para recibir advertencias cuando se acerque a las cuotas. Para obtener más información, consulte [Service Quotas y alarmas de Amazon CloudWatch](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html) en la *Guía del usuario de Service Quotas*.