

# Flota de EC2 y flota de spot
<a name="Fleets"></a>

La flota de EC2 y la flota de spot están diseñadas para ser una forma útil de iniciar una flota de decenas, cientos o miles de instancias de Amazon EC2 en una única operación. Cada instancia en una flota está configurada por una [plantilla de inicio](ec2-launch-templates.md) o por un conjunto de parámetros de inicio que debe configurar manualmente al iniciarla.

**Topics**
+ [

## Características y ventajas
](#ec2-fleet-features-and-benefits)
+ [

# ¿Cuál es el mejor método de flota que se puede utilizar?
](which-fleet-method-to-use.md)
+ [

# Opciones de configuración para la flota de EC2 o la flota de spot
](ec2-fleet-configuration-strategies.md)
+ [

# Trabajar con la flota de EC2
](manage-ec2-fleet.md)
+ [

# Trabajar con flota de spot
](work-with-spot-fleets.md)
+ [

# Supervisión de la flota de EC2 o flota de spot
](fleet-monitor.md)
+ [

# Tutoriales para la flota de EC2
](fleet-tutorials.md)
+ [

# Configuraciones de CLI de ejemplo para la flota de EC2
](ec2-fleet-examples.md)
+ [

# Ejemplos de configuraciones de CLI de flota de spot
](spot-fleet-examples.md)
+ [

# Cuotas para la flota de EC2 y la flota de spot
](fleet-quotas.md)

## Características y ventajas
<a name="ec2-fleet-features-and-benefits"></a>

Las flotas proporcionan las siguientes características y beneficios, que le permiten maximizar los ahorros de costos y optimizar la disponibilidad y el rendimiento al ejecutar aplicaciones en varias instancias de EC2.

**Varios tipos de instancia**  
Una flota puede iniciar varios tipos de instancias, lo que garantiza que no dependa de la disponibilidad de ningún tipo de instancia individual. Esto aumenta la disponibilidad general de las instancias de su flota.

**Distribución de instancias entre zonas de disponibilidad**  
Una flota puede inicializarse en varias zonas de disponibilidad, lo que permite reducir los costos y mejorar la disponibilidad. Si su flota incluye instancias de spot, la flota selecciona automáticamente las zonas de disponibilidad en función de sus preferencias respecto al precio y las interrupciones.

**Varias opciones de compra**  
Una flota puede iniciar varias opciones de compra (instancias de spot y bajo demanda), lo que permite optimizar los costos mediante el uso de instancia de spot. También puede aprovechar los descuentos de instancias reservadas y Savings Plans si los utiliza junto con las instancias bajo demanda de la flota. 

**Sustitución automática de instancias de spot**  
Si su flota incluye instancias de spot, puede solicitar automáticamente la sustitución de la capacidad de spot si sus instancias de spot se ven interrumpidas. Mediante el [reequilibrio de capacidad](ec2-fleet-capacity-rebalance.md), una flota también puede supervisar y reemplazar de manera proactiva las instancias de spot que corren un riesgo elevado de interrupción.

**Capacidad de reserva bajo demanda**  
Una flota puede utilizar una [reserva de capacidad bajo demanda](ec2-fleet-on-demand-capacity-reservations.md) para reservar capacidad bajo demanda. Una flota también incluye [bloques de capacidad para ML](ec2-capacity-blocks.md), que le permiten reservar instancias de GPU en una fecha futura para respaldar cargas de trabajo de machine learning (ML) de corta duración.

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

Como práctica recomendada general, se sugiere iniciar flotas de instancias de spot y bajo demanda con Amazon EC2 Auto Scaling, ya que proporciona características adicionales que puede usar para administrar su flota. La lista de características adicionales incluye la sustitución automática de las comprobaciones de estado para las instancias de spot y bajo demanda, las comprobaciones de estado basadas en las aplicaciones y una integración con Elastic Load Balancing para garantizar una distribución uniforme del tráfico de las aplicaciones a las instancias en buen estado. También puede utilizar grupos de escalado automático cuando utilice servicios de AWS como Amazon ECS, Amazon EKS (grupos de nodos autoadministrados) y Amazon VPC Lattice. Para obtener más información, consulte la [Guía del usuario de Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/).

Si no puede usar Amazon EC2 Auto Scaling, podría considerar usar la flota de EC2 o flota de spot. La flota de EC2 y la flota de spot ofrecen la misma funcionalidad básica. Sin embargo, la flota de EC2 solo está disponible mediante una línea de comandos y no proporciona soporte para consolas. La flota de spot proporciona soporte para consolas, pero se basa en una API heredada sin inversión planificada.

Utilice la siguiente tabla para determinar qué método de flota debe utilizar.


****  

| Método de flota | ¿Cuándo se debe utilizar? | Caso de uso | 
| --- | --- | --- | 
|  [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/which-fleet-method-to-use.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.  | 
|  [Flota de EC](manage-ec2-fleet.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/which-fleet-method-to-use.html)  |  Cree una flota `instant` de instancias bajo demanda e instancias de spot en una única operación, con varias especificaciones de inicio que varían por tipo de instancia, AMI, zona de disponibilidad o subred. La estrategia de asignación de instancia de spot se establece de manera predeterminada como `lowest-price` por unidad, pero se recomienda cambiarla a `price-capacity-optimized`.  | 
|  [Flota de spot](work-with-spot-fleets.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/which-fleet-method-to-use.html)  |  Utilice la flota de spot solo si necesita soporte de consola para un caso de uso en el que utilizaría una flota de EC2.  | 

# Opciones de configuración para la flota de EC2 o la flota de spot
<a name="ec2-fleet-configuration-strategies"></a>

Al planificar una flota de EC2 o una flota de spot, se recomienda tener en cuenta las siguientes opciones a la hora de decidir cómo configurar una flota.


****  

| Opción de configuración | Pregunta | Documentación | 
| --- | --- | --- | 
| Tipo de solicitud de flota |  ¿Desea una flota que envíe una solicitud única para la capacidad objetivo deseada o una flota que mantenga una capacidad objetivo a lo largo del tiempo?  | [Tipos de solicitud de flota de EC2 y de flota de spot](ec2-fleet-request-type.md) | 
| Spot Instances | ¿Planea incluir instancias de spot en su flota? Revise las prácticas recomendadas de spot y utilícelas al planificar la flota para aprovisionar las instancias al menor precio posible. | [Prácticas recomendadas para el spot de Amazon EC2](spot-best-practices.md) | 
| Límite de gastos para su flota | ¿Quiere limitar lo que pagará por su flota por hora? | [Establezca un límite de gasto para la flota de EC2 o la flota de spot](ec2-fleet-control-spending.md) | 
| Tipos de instancias y selección del tipo de instancia basada en atributos |  ¿Desea especificar los tipos de instancias de su flota o dejar que Amazon EC2 seleccione los tipos de instancias que cumplan con los requisitos de su aplicación?  | [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) | 
| Ponderación de instancias | ¿Desea asignar pesos a cada tipo de instancia para representar su capacidad de computación y rendimiento, de modo que Amazon EC2 pueda seleccionar cualquier combinación de tipos de instancias disponibles para cumplir con la capacidad objetivo deseada? | [Utilice la ponderación de instancias para gestionar los costes y el rendimiento de la flota de EC2 o la flota de spot.](ec2-fleet-instance-weighting.md) | 
| Estrategias de asignación | ¿Desea decidir si desea optimizar la capacidad disponible, el precio o los tipos de instancias para utilizarlos en las instancias de spot y en las instancias bajo demanda de su flota? | [Utilice estrategias de asignación para determinar cómo la flota de EC2 o la flota de spot satisfacen la capacidad de spot y bajo demanda](ec2-fleet-allocation-strategy.md) | 
| Reequilibrio de la capacidad | ¿Desea que su flota sustituya automáticamente a las instancias de spot en riesgo? | [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) | 
| Reserva de capacidad bajo demanda | ¿Desea reservar capacidad para las instancias bajo demanda de su flota? | [Utilice las reservas de capacidad para reservar capacidad bajo demanda en la flota de EC2](ec2-fleet-on-demand-capacity-reservations.md) | 

# Tipos de solicitud de flota de EC2 y de flota de spot
<a name="ec2-fleet-request-type"></a>

El tipo de solicitud de una flota de EC2 o una flota de spot determina si la solicitud es sincrónica o asincrónica y si se trata de una solicitud puntual para la capacidad objetivo deseada o un esfuerzo continuo para mantener la capacidad a lo largo del tiempo. Al configurar la flota, debe especificar el tipo de solicitud.

Tanto la flota de EC2 como la flota de spot ofrecen dos tipos de solicitudes: `request` y `maintain`. Además, la flota de EC2 ofrece un tercer tipo de solicitud denominado `instant`.Tipos de solicitudes de flota

`instant` (Solo flota de EC2)  
Si configura el tipo de solicitud como `instant`, la flota de EC2 realiza una solicitud puntual síncrona para la capacidad deseada. En la respuesta de la API, devuelve las instancias que se iniciaron, junto con los errores para aquellas instancias que no se pudieron iniciar. Para obtener más información, consulte [Configuración de una flota de EC2 de tipo instant](instant-fleet.md).

`request`  
Si configura el tipo de solicitud como `request`, la flota realiza una solicitud única asincrónica para la capacidad deseada. Si la capacidad disminuye debido a interrupciones de spot, la flota no intentará reponer Instancias de spot, ni enviará solicitudes en grupos alternativos de spot si la capacidad no está disponible. Al crear una flota de spot de tipo `request` con la consola, desmarque la casilla **Mantener la capacidad objetivo**

`maintain` (predeterminado)  
Si configura el tipo de solicitud como `maintain`, la flota realiza una solicitud asincrónica para la capacidad deseada y la conserva al completar de forma automática las instancias de spot interrumpidas. Para crear una flota de spot de tipo `maintain` con la consola, seleccione la casilla **Mantener la capacidad objetivo**

# Configuración de una flota de EC2 de tipo instant
<a name="instant-fleet"></a>

La flota de EC2 de tipo *instantáneo* es una solicitud puntual síncrona que realiza un solo intento de iniciar la capacidad deseada. La respuesta de la API incluye una lista de las instancias que se iniciaron, así como los errores relacionados con aquellas instancias que no se pudieron iniciar. Utilizar una flota de EC2 de tipo *instantáneo* ofrece varios beneficios, que se describen en este artículo. Al final del artículo, se proporcionan configuraciones de ejemplo.

Para cargas de trabajo que requieren una API de inicio único para iniciar instancias EC2, puede utilizar la API RunInstances. Sin embargo, con RunInstances solo puede iniciar instancias bajo demanda o instancias de spot, pero no ambas en la misma solicitud. Además, cuando utiliza RunInstances para iniciar instancias de spot, su solicitud de instancia de spot se limita a un tipo de instancias y a una zona de disponibilidad. Esto se dirige a un único grupo de capacidad de spot (un conjunto de instancias que no se utilizan con el mismo tipo de instancias y zona de disponibilidad). Si el grupo de capacidad de spot no tiene suficiente capacidad de instancia de spot para su solicitud, se produce un error en la llamada a RunInstances.

En lugar de utilizar RunInstances para iniciar instancias de spot, recomendamos que utilice la API CreateFleet con el parámetro `type` establecido en `instant` a fin de obtener los siguientes beneficios: 
+ **Iniciar instancias bajo demanda e instancias de Spot en una sola solicitud.** Una flota de EC2 puede iniciar instancias bajo demanda, instancias de spot o ambas. La solicitud de Instancias de spot se atiende si hay capacidad disponible y el precio máximo por hora especificado en la solicitud es superior al precio de spot.
+ **Aumentar la disponibilidad de las instancias de spot.** Con una flota de EC2 de tipo `instant`, puede iniciar instancias de spot de acuerdo con las [prácticas recomendadas para instancias de spot](spot-best-practices.md) con los beneficios resultantes:
  + **Práctica recomendada para instancias de spot: sea flexible con respecto a los tipos de instancias y las zonas de disponibilidad.**

    Beneficio: al especificar varios tipos de instancias y zonas de disponibilidad, aumenta el número de grupos de capacidad de spot. Esto da al servicio de spot una mejor oportunidad de encontrar y asignar la capacidad informática de spot deseada. Una buena regla general es ser flexible con al menos 10 tipos de instancias para cada carga de trabajo y asegurarse de que todas las zonas de disponibilidad se encuentren configuradas a fin de utilizarse en la VPC.
  + **Práctica recomendada de spot: utilizar la estrategia de asignación price-capacity-optimized.**

    Beneficio: la estrategia de asignación `price-capacity-optimized` identifica las instancias de los grupos de capacidad de spot que se encuentran con mayor disponibilidad y luego aprovisiona de manera automática las instancias de los grupos con los precios más bajos. Debido a que la capacidad de la instancia de spot proviene de grupos con capacidad óptima, esto disminuye la posibilidad de que se interrumpan las instancias de spot cuando Amazon EC2 vuelva a necesitar la capacidad.
+ **Obtener acceso a un conjunto más amplio de capacidades.** Para cargas de trabajo que necesitan una API de solo inicialización y cuando prefiera administrar el ciclo de vida de su instancia en lugar de permitir que lo haga la flota de EC2, utilice la flota de EC2 de tipo `instant` en lugar de la API [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). La flota de EC2 proporciona un conjunto más amplio de capacidades que RunInstances, como se demuestra en los siguientes ejemplos. Para todas las demás cargas de trabajo, debe utilizar Amazon EC2 Auto Scaling, ya que proporciona un conjunto de características más completo para una amplia variedad de cargas de trabajo, como aplicaciones respaldadas por ELB, cargas de trabajo en contenedores y trabajos de procesamiento de colas.

Puede utilizar una flota de EC2 de tipo *instantáneo* para lanzar instancias en Bloques de capacidad. Para obtener más información, consulte [Tutorial: Configuración de la flota de EC2 para lanzar instancias en bloques de capacidad](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md).

Los servicios de AWS como Amazon EC2 Auto Scaling y Amazon EMR utilizan la flota de EC2 de tipo *instantáneo* para iniciar instancias EC2.

## Requisitos previos para la flota de EC2 de tipo instantáneo
<a name="instant-fleet-prerequisites"></a>

Para obtener los requisitos previos a fin de crear una flota de EC2, consulte [Requisitos previos de flota de EC2](ec2-fleet-prerequisites.md).

## Funcionamiento de la flota de EC2 de tipo instantáneo
<a name="how-instant-fleet-works"></a>

Cuando se trabaja con una flota de EC2 de tipo `instant`, la secuencia de eventos es la siguiente:

1. **Configuración:** establezca el tipo de solicitud de [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) en `instant`. Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md). Tenga en cuenta que después de realizar la llamada a la API, no podrá modificarla.

1. **Solicitud:** cuando realice la llamada a la API, Amazon EC2 enviará una solicitud síncrona única para la capacidad deseada.

1. **Respuesta**: la respuesta de la API incluye una lista de las instancias que se iniciaron, así como los errores relacionados con aquellas instancias que no se pudieron iniciar.

1. **Describir**: puede describir la flota de EC2 y ver su historial, así como también enumerar las instancias asociadas a esta.

1. **Terminar instancias**: puede terminar las instancias en cualquier momento.

1. **Eliminar la solicitud de flota:** la solicitud de flota se puede eliminar manual o automáticamente:
   + Manual: podrá [eliminar la solicitud de flota](delete-fleet.md) después de que se inicien las instancias.

     Tenga en cuenta que una flota de `instant` eliminada con instancias en ejecución no es compatible. Al eliminar una flota de `instant`, Amazon EC2 termina automáticamente todas sus instancias. En el caso de las flotas con más de 1000 instancias, se podría producir un error en la solicitud de eliminación. Si la flota tiene más de 1000 instancias, primero termine la mayoría de las instancias manualmente y deje 1000 o menos. A continuación, elimine la flota y las instancias restantes se terminarán automáticamente.
   + Automático: Amazon EC2 elimina la solicitud de flota algún tiempo después que ocurra una de estas dos cosas: 
     + Se terminan todas las instancias.
     + La flota no puede iniciar ninguna instancia.

## Ejemplos
<a name="instant-fleet-examples"></a>

En los siguientes ejemplos, se muestra cómo utilizar la flota de EC2 de tipo `instant` para diferentes casos de uso. Para obtener más información sobre el uso de los parámetros de la API CreateFleet de EC2, consulte [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) en la *Referencia de la API de Amazon EC2*.

**Topics**
+ [

### Ejemplo 1: iniciar instancias de spot con la estrategia de asignación de capacidad optimizada
](#instant-fleet-example-1)
+ [

### Ejemplo 2: iniciar una única instancia de spot con la estrategia de asignación de capacidad optimizada
](#instant-fleet-example-2)
+ [

### Ejemplo 3: iniciar instancias de spot con ponderación de instancias
](#instant-fleet-example-3)
+ [

### Ejemplo 4: iniciar instancias de spot en una sola zona de disponibilidad
](#instant-fleet-example-4)
+ [

### Ejemplo 5: iniciar instancias de spot de tipo de instancia único dentro de una sola zona de disponibilidad
](#instant-fleet-example-5)
+ [

### Ejemplo 6: iniciar instancias de spot solo si es posible iniciar la capacidad mínima de destino
](#instant-fleet-example-6)
+ [

### Ejemplo 7: iniciar instancias de spot solo si es posible iniciar la capacidad mínima de destino del mismo tipo de instancias en una sola zona de disponibilidad
](#instant-fleet-example-7)
+ [

### Ejemplo 8: iniciar instancias con varias plantillas de inicialización
](#instant-fleet-example-8)
+ [

### Ejemplo 9: iniciar instancias de spot con una base de instancias bajo demanda
](#instant-fleet-example-9)
+ [

### Ejemplo 10: iniciar instancias de spot mediante una estrategia de asignación de capacidad optimizada con una base de instancias bajo demanda con reservas de capacidad y la estrategia de asignación prioritaria
](#instant-fleet-example-10)
+ [

### Ejemplo 11: iniciar instancias de spot con una estrategia de asignación prioritaria de capacidad optimizada
](#instant-fleet-example-11)
+ [

### Ejemplo 12: especificar un parámetro de Systems Manager en lugar de un ID de AMI.
](#instant-fleet-example-12)

### Ejemplo 1: iniciar instancias de spot con la estrategia de asignación de capacidad optimizada
<a name="instant-fleet-example-1"></a>

En el siguiente ejemplo, se especifican los parámetros que se requieren en una flota de EC2 de tipo `instant` (instantáneo): una plantilla de inicialización, la capacidad de destino, la opción de compra predeterminada y las modificaciones de la plantilla de inicialización.
+ La plantilla de lanzamiento se identifica por su nombre y número de versión.
+ Las 12 modificaciones de la plantilla de inicialización especifican 4 tipos de instancias diferentes y 3 subredes diferentes, cada una en una zona de disponibilidad distinta. Cada combinación de tipos de instancias y subredes define un grupo de capacidad de spot, lo que da como resultado 12 grupos de capacidad de spot.
+ La capacidad de destino para la flota es de 20 instancias.
+ La opción de compra predeterminada es `spot`, lo que resulta en que la flota intente iniciar 20 instancias de spot en el grupo de capacidad de spot con capacidad óptima para el número de instancias que se iniciarán.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 2: iniciar una única instancia de spot con la estrategia de asignación de capacidad optimizada
<a name="instant-fleet-example-2"></a>

Puede iniciar de forma óptima las instancias de spot de una en una si realiza varias llamadas a la API de la flota de EC2 de tipo `instant` con TotalTargetCapacity establecido en 1.

En el siguiente ejemplo, se especifican los parámetros que se requieren en una flota de EC2 de tipo instantáneo: una plantilla de inicialización, la capacidad de destino, la opción de compra predeterminada y las modificaciones de la plantilla de inicialización. La plantilla de lanzamiento se identifica por su nombre y número de versión. Las 12 modificaciones de las plantillas de inicialización tienen 4 tipos de instancias diferentes y 3 subredes diferentes, cada una en una zona de disponibilidad distinta. La capacidad de destino de la flota es 1 instancia, y la opción de compra predeterminada es spot, lo que da como resultado que la flota intente iniciar una instancia de spot desde uno de los 12 grupos de capacidad de spot en función de la estrategia de asignación de capacidad optimizada, a fin de iniciar una instancia de spot desde el grupo de capacidad más disponible.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 1,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 3: iniciar instancias de spot con ponderación de instancias
<a name="instant-fleet-example-3"></a>

En los siguientes ejemplos se usa ponderación de instancias, que significa que el precio se determina por hora de unidad en lugar de por hora de instancia. Cada configuración de inicialización muestra un tipo de instancias y una ponderación diferentes en función de la cantidad de unidades de la carga de trabajo que se pueden ejecutar en la instancia, si se supone que una unidad de la carga de trabajo requiere 15 GB de memoria y 4 vCPU. Por ejemplo, m5.xlarge (4 vCPU y 16 GB de memoria) puede ejecutar una unidad y tiene una ponderación de 1, m5.2xlarge (8 vCPU y 32 GB de memoria) puede ejecutar dos unidades y tiene una ponderación de 2, y así sucesivamente. La capacidad total de destino se establece en 40 unidades. La opción de compra predeterminada es de spot y la estrategia de asignación es de capacidad optimizada, lo que da como resultado 40 m5.xlarge (40 dividido por 1), 20 m5.2xlarge (40 dividido por 2), 10 m5.4xlarge (40 dividido por 4), 5 m5.8xlarge (40 dividido por 8) o una combinación de los tipos de instancias con ponderaciones que se suman a la capacidad deseada según la estrategia de asignación de capacidad optimizada.

Para obtener más información, consulte [Utilice la ponderación de instancias para gestionar los costes y el rendimiento de la flota de EC2 o la flota de spot.](ec2-fleet-instance-weighting.md).

```
{
   "SpotOptions":{
      "AllocationStrategy":"capacity-optimized"
   },
   "LaunchTemplateConfigs":[
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":8
            }
         ]
      }
   ],
   "TargetCapacitySpecification":{
      "TotalTargetCapacity":40,
      "DefaultTargetCapacityType":"spot"
   },
   "Type":"instant"
}
```

### Ejemplo 4: iniciar instancias de spot en una sola zona de disponibilidad
<a name="instant-fleet-example-4"></a>

Puede configurar una flota para iniciar todas las instancias en una sola zona de disponibilidad al establecer las opciones de spot SingleAvailabilityZone en verdadero.

Las 12 modificaciones de plantillas de lanzamiento tienen tipos de instancias y subredes diferentes (cada una en una zona de disponibilidad independiente), pero la misma capacidad ponderada. La capacidad total de destino es de 20 instancias, la opción de compra predeterminada es de spot y la estrategia de asignación de spot es de capacidad optimizada. La flota de EC2 inicia 20 instancias de spot, todas en una sola zona de disponibilidad, desde los grupos de capacidad de spot con capacidad óptima mediante las especificaciones de inicialización.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 5: iniciar instancias de spot de tipo de instancia único dentro de una sola zona de disponibilidad
<a name="instant-fleet-example-5"></a>

Puede configurar una flota para iniciar todas las instancias del mismo tipo en una única zona de disponibilidad al establecer SpotOptions SingleInstanceType y SingleAvailabilityZone en verdadero.

Las 12 modificaciones de plantillas de lanzamiento tienen tipos de instancias y subredes diferentes (cada una en una zona de disponibilidad independiente), pero la misma capacidad ponderada. La capacidad total de destino es de 20 instancias, la opción de compra predeterminada es de spot y la estrategia de asignación de spot es de capacidad optimizada. La flota de EC2 inicia 20 instancias de spot del mismo tipo, todas en una sola zona de disponibilidad, desde el grupo de instancias de spot con capacidad óptima mediante las especificaciones de inicialización.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 6: iniciar instancias de spot solo si es posible iniciar la capacidad mínima de destino
<a name="instant-fleet-example-6"></a>

Al establecer las opciones de spot MinTargetCapacity en la capacidad de destino mínima que desea iniciar en conjunto, puede configurar una flota para iniciar instancias solo si es posible iniciar la capacidad mínima de destino.

Al especificar MinTargetCapacity, debe especificar al menos uno de estos parámetros: SingleInstanceType o SingleAvailabilityZone. En este ejemplo, se especifica SingleInstanceType, de modo que las 20 instancias deben utilizar el mismo tipo de instancia.

Las 12 modificaciones de plantillas de lanzamiento tienen tipos de instancias y subredes diferentes (cada una en una zona de disponibilidad independiente), pero la misma capacidad ponderada. La capacidad total de destino y la capacidad mínima de destino se establecen en 20 instancias, la opción de compra predeterminada es de spot y la estrategia de asignación de spot es de capacidad optimizada. La flota de EC2 inicia 20 instancias de spot desde el grupo de capacidad de spot con capacidad óptima mediante las modificaciones de plantilla de inicialización, solo si puede iniciar las 20 instancias a la vez.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 7: iniciar instancias de spot solo si es posible iniciar la capacidad mínima de destino del mismo tipo de instancias en una sola zona de disponibilidad
<a name="instant-fleet-example-7"></a>

Puede configurar una flota para iniciar instancias solo si es posible iniciar la capacidad mínima de destino con un único tipo de instancias en una sola zona de disponibilidad al establecer las opciones de spot MinTargetCapacity en la capacidad mínima de destino que desea iniciar en conjunto con las opciones SingleInstanceType y SingleAvailabilityZone.

Las 12 especificaciones de inicialización, que modifican la plantilla de inicialización, tienen tipos de instancias y subredes diferentes (cada una en una zona de disponibilidad independiente), pero la misma capacidad ponderada. La capacidad total de destino y la capacidad mínima de destino se establecen en 20 instancias, la opción de compra predeterminada es de spot, la estrategia de asignación de spot es de capacidad optimizada, y SingleInstanceType y SingleAvailabilityZone se establecen en true (verdadero). La flota de EC2 inicia 20 instancias de spot del mismo tipo, todas en una sola zona de disponibilidad, desde el grupo de capacidad de spot con capacidad óptima mediante las especificaciones de inicialización, solo si puede iniciar las 20 instancias a la vez.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 8: iniciar instancias con varias plantillas de inicialización
<a name="instant-fleet-example-8"></a>

Puede configurar una flota a fin de iniciar instancias con diferentes especificaciones de inicialización para diferentes tipos de instancias o grupos de tipos de instancias, al especificar varias plantillas de inicialización. En este ejemplo, queremos tener diferentes tamaños de volumen de EBS para diferentes tipos de instancias y eso se encuentra configurado en las plantillas de inicialización ec2-fleet-lt-4xl, ec2-fleet-lt-9xl y ec2-fleet-lt-18xl.

En este ejemplo, utilizamos 3 plantillas de inicialización diferentes para los 3 tipos de instancias en función de su tamaño. Las modificaciones de especificación de inicio en todas las plantillas de inicio utilizan ponderaciones de instancias según las vCPU del tipo de instancia. La capacidad total de destino es de 144 unidades, la opción de compra predeterminada es de spot y la estrategia de asignación de spot es de capacidad optimizada. La flota de EC2 puede iniciar 9 c5n.4xlarge (144 dividido por 16) con la plantilla de inicialización ec2-fleet-4xl, 4 c5n.9xlarge (144 dividido por 36) con la plantilla de inicialización ec2-fleet-9xl, 2 c5n.18xlarge (144 dividido por 72) con la plantilla de inicialización ec2-fleet-18xl o una combinación de los tipos de instancias con ponderaciones que se suman a la capacidad deseada en función de la estrategia de asignación de capacidad optimizada.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-18xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":72
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-9xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":36
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-4xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":16
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 144,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 9: iniciar instancias de spot con una base de instancias bajo demanda
<a name="instant-fleet-example-9"></a>

En el siguiente ejemplo, se especifica una capacidad total de destino de 20 instancias para la flota y una capacidad de destino de 5 instancias bajo demanda. La opción de compra predeterminada es de spot. La flota inicia 5 instancias bajo demanda según lo especificado, pero debe iniciar 15 instancias más para cubrir la capacidad total de destino. La opción de compra aplicada a la diferencia se calcula como TotalTargetCapacity – OnDemandTargetCapacity = DefaultTargetCapacityType, lo que da lugar a que la flota lance 15 instancias de spot desde uno de los 12 grupos de capacidad de spot según la estrategia de asignación de capacidad optimizada.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 5,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 10: iniciar instancias de spot mediante una estrategia de asignación de capacidad optimizada con una base de instancias bajo demanda con reservas de capacidad y la estrategia de asignación prioritaria
<a name="instant-fleet-example-10"></a>

Puede configurar una flota para que utilice primero reservas de capacidad bajo demanda al iniciar instancias bajo demanda con el tipo de capacidad de destino predeterminado configurado como spot, al establecer la estrategia de uso de las Reservas de capacidad en use-capacity-reservations-first. Y si varios grupos de instancias tienen reservas de capacidad sin utilizar, se aplica la estrategia de asignación bajo demanda seleccionada. En este ejemplo, la estrategia de asignación bajo demanda es prioritaria.

En este ejemplo, hay 6 reservas de capacidad disponibles sin utilizar. Esto es inferior a la capacidad de destino bajo demanda de 10 instancias bajo demanda de la flota.

La cuenta tiene las siguientes 6 reservas de capacidad sin utilizar en 2 grupos. El número de reservas de capacidad en cada grupo lo indica AvailableInstanceCount.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
 
{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "c5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

La siguiente configuración de flota solo muestra las configuraciones pertinentes para este ejemplo. La estrategia de asignación bajo demanda es prioritaria y la estrategia de uso de las Reservas de capacidad es use-capacity-reservations-first. La estrategia de asignación de spot es de capacidad optimizada. La capacidad total de destino es de 20, la capacidad de destino bajo demanda es de 10 y el tipo de capacidad de destino predeterminado es de spot.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "OnDemandOptions":{
       "CapacityReservationOptions": {
         "UsageStrategy": "use-capacity-reservations-first"
       },
       "AllocationStrategy":"prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 5.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 6.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 7.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 8.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 9.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 10.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 11.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 12.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 10,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

Después de crear la flota de tipo instantáneo con la configuración anterior, se inician las siguientes 20 instancias para cumplir con la capacidad de destino:
+ 7 instancias c5.large bajo demanda en us-east-1a, c5.large en us-east-1a tiene más prioridad y hay 3 reservas de capacidad c5.large disponibles sin utilizar. Las reservas de capacidad se utilizan primero para iniciar 3 instancias bajo demanda y se inician 4 instancias bajo demanda adicionales de acuerdo con la estrategia de asignación bajo demanda, que es prioritaria en este ejemplo.
+ 3 instancias m5.large bajo demanda en us-east-1a, m5.large en us-east-1a se prioriza en segundo lugar y hay 3 reservas de capacidad m5.large disponibles sin utilizar.
+ 10 instancias de spot de uno de los 12 grupos de capacidad de spot que tiene la capacidad óptima de acuerdo con la estrategia de asignación de capacidad optimizada.

Después de lanzar la flota, puede ejecutar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver cuántas reservas de capacidad sin utilizar quedan. En este ejemplo, debería ver la siguiente respuesta, que muestra que se utilizaron todas las reservas de capacidad c5.large y m5.large.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}
 
{
    "CapacityReservationId": "cr-222",
    "InstanceType": "c5.large", 
    "AvailableInstanceCount": 0
}
```

### Ejemplo 11: iniciar instancias de spot con una estrategia de asignación prioritaria de capacidad optimizada
<a name="instant-fleet-example-11"></a>

En el siguiente ejemplo, se especifican los parámetros que se requieren en una flota de EC2 de tipo instantáneo: una plantilla de lanzamiento, la capacidad de destino, la opción de compra predeterminada y las modificaciones de la plantilla de lanzamiento. La plantilla de lanzamiento se identifica por su nombre y número de versión. Las 12 especificaciones de inicialización que modifican la plantilla de inicialización tienen 4 tipos de instancias diferentes con una prioridad asignada y 3 subredes diferentes, cada una en una zona de disponibilidad independiente. La capacidad de destino de la flota es de 20 instancias, y la opción de compra predeterminada es de spot, lo que da como resultado que la flota intente iniciar 20 instancias de spot desde uno de los 12 grupos de capacidad de spot en función de la estrategia de asignación prioritaria de capacidad optimizada, que implementa las prioridades en la medida en que sea posible, pero primero optimiza la capacidad.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized-prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 2.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 4.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Ejemplo 12: especificar un parámetro de Systems Manager en lugar de un ID de AMI.
<a name="instant-fleet-example-12"></a>

El siguiente ejemplo utiliza una plantilla de inicialización para especificar la configuración de la instancia en la flota. En este ejemplo, para `ImageId`, en lugar de especificar un ID de AMI, se hace referencia a la AMI con un parámetro de System Manager. Al iniciar la instancia, el parámetro Systems Manager se convertirá en un ID de AMI.

En este ejemplo, el parámetro Systems Manager se especifica en un formato válido: `resolve:ssm:golden-ami`. Existen otros formatos válidos para el parámetro Systems Manager. Para obtener más información, consulte [Uso de un parámetro de Systems Manager en lugar de un ID de AMI](create-launch-template.md#use-an-ssm-parameter-instead-of-an-ami-id).

**nota**  
El tipo de flota debe ser `instant`. Otros tipos de flota no admiten la especificación de un parámetro de System Manager en lugar de un ID de AMI.

```
{
    "LaunchTemplateData": {
        "ImageId": "resolve:ssm:golden-ami",
        "InstanceType": "m5.4xlarge",
        "TagSpecifications": [{
            "ResourceType": "instance",
            "Tags": [{
                "Key": "Name",
                "Value": "webserver"
            }]
        }]
    }
}
```

# Establezca un límite de gasto para la flota de EC2 o la flota de spot
<a name="ec2-fleet-control-spending"></a>

Puede establecer un límite de cuánto está dispuesto a gastar por hora en su flota de EC2 o en su flota de Spot. Cuando se alcanza el límite de gasto, la flota deja de iniciar instancias, incluso si no se ha alcanzado la capacidad objetivo.

Existen límites de gasto diferentes para las instancias bajo demanda y las instancias de spot.

**Para configurar un límite de gasto para las instancias bajo demanda y las instancias de spot en su flota de EC2**  
Utilice el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) y los siguientes parámetros:
+ Para las instancias bajo demanda: en la estructura `OnDemandOptions`, especifique su límite de gasto en el campo `MaxTotalPrice`.
+ Para instancias de spot: en la estructura `SpotOptions`, especifique su límite de gasto en el campo `MaxTotalPrice`.

**Para configurar un límite de gasto para las instancias bajo demanda y las instancias de spot en su flota de EC2**  
Puede utilizar la consola de Amazon EC2 o la AWS CLI para configurar su límite de gasto.

(Consola) Al crear la flota de spot, seleccione la casilla **Definir el costo máximo de las instancias de spot** y, a continuación, introduzca un valor en **Definir el costo máximo (por hora)**. Para obtener más información, consulte el paso 6.e. en [Creación de una solicitud de flota de spot con los parámetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) Utilice el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) y los siguientes parámetros:
+ Para instancias bajo demanda: especifique su límite de gasto en el campo `OnDemandMaxTotalPrice`.
+ Para instancias de spot: especifique su límite de gasto en el campo `SpotMaxTotalPrice`.

## Ejemplos
<a name="ec2-fleet-spending-limit-examples"></a>

En los siguientes ejemplos, se muestran dos situaciones diferentes. En el primer ejemplo, la flota deja de iniciar instancias bajo demanda cuando alcanza la capacidad objetivo establecida para las instancias bajo demanda (`OnDemandTargetCapacity`). En el segundo ejemplo, la flota deja de iniciar instancias bajo demanda cuando ha alcanzado la cantidad máxima que está dispuesto a pagar por hora para las instancias bajo demanda (`MaxTotalPrice`).

**Ejemplo: dejar de iniciar instancias bajo demanda cuando se alcanza la capacidad objetivo**

Dada una solicitud de instancias bajo demanda `m4.large`, donde:
+ Precio bajo demanda: 0,10 USD por hora
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 1,50 USD

La flota inicia 10 instancias bajo demanda porque el total de 1,00 USD (10 instancias x 0,10 USD) no supera el `MaxTotalPrice` de 1,50 USD para instancias bajo demanda.

**Ejemplo: dejar de iniciar instancias bajo demanda cuando se alcanza el precio máximo total**.

Dada una solicitud de instancias bajo demanda `m4.large`, donde:
+ Precio bajo demanda: 0,10 USD por hora
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 0,80 USD

Si la flota inicia la capacidad objetivo bajo demanda (10 instancias bajo demanda), el costo total por hora sería de 1,00 USD. Esto es más que la cantidad especificada (0,80 USD) como `MaxTotalPrice` para instancias bajo demanda. Para evitar gastar más de lo que está dispuesto a pagar, la flota inicia solo 8 instancias bajo demanda (por debajo de la capacidad objetivo bajo demanda) porque la inicialización de más superaría el `MaxTotalPrice` para instancias bajo demanda.

## Instancias de rendimiento ampliable
<a name="ec2-fleet-burstable-spot-instances"></a>

Si inicia instancias de spot mediante un [tipo de instancias de rendimiento ampliable](burstable-performance-instances.md) 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).

Los créditos de lanzamiento tienen como objetivo ofrecer una experiencia de lanzamiento 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.

# Especifique atributos para la selección del tipo de instancia para la flota de EC2 o flota de spot
<a name="ec2-fleet-attribute-based-instance-type-selection"></a>

Al crear una flota de EC2 o flota de spot, debe especificar uno o varios tipos de instancias para configurar las instancias bajo demanda y las instancias de spot de la flota. Como alternativa a especificar de forma manual los tipos de instancia, puede especificar los atributos que debe tener una instancia y Amazon EC2 identificará todos los tipos de instancias con esos atributos. Esto se conoce como *selección de tipo de instancia basada en atributos*. Por ejemplo, puede especificar el número mínimo y máximo de vCPU necesarios para sus instancias y la flota iniciará las instancias mediante cualquier tipo de instancia disponible que cumpla con esos requisitos de vCPU. 

La selección de tipo de instancia basada en atributos es ideal para cargas de trabajo y marcos que pueden ser flexibles sobre los tipos de instancias que utilizan, como cuando se ejecutan contenedores o flotas web, se procesan macrodatos y se implementan herramientas de integración e implementación continuas (CI/CD).

**Ventajas**

La selección de tipo de instancia basada en atributos posee los siguientes beneficios:
+ **Uso fácil de los tipos de instancias correctos**: con tantos tipos de instancias disponibles, encontrar los tipos de instancias adecuados para su carga de trabajo puede necesitar mucho tiempo. Cuando especifica atributos de instancia, los tipos de instancia tendrán automáticamente los atributos necesarios para la carga de trabajo.
+ **Configuración simplificada**: para especificar de forma manual varios tipos de instancias para una flota, debe crear una anulación de la plantilla de inicialización independiente para cada tipo de instancia. Sin embargo, con la selección de tipo de instancia basada en atributos, para proporcionar varios tipos de instancias solo necesita especificar los atributos de instancia en la plantilla de lanzamiento o en una anulación de la plantilla de lanzamiento.
+ **Uso automático de nuevos tipos de instancias**: cuando se especifican atributos de instancia en lugar de tipos de instancias, su flota puede utilizar tipos de instancias de nueva generación a medida que se publican, con lo que se prueba la eficiencia futura de la configuración de la flota. 
+ **Flexibilidad del tipo de instancia**: cuando se especifican atributos de instancias en lugar de tipos de instancias, la flota puede seleccionar entre una amplia gama de tipos de instancias para iniciar instancias de spot, de forma que se siguen las [prácticas recomendadas de spot con respecto a la flexibilidad del tipo de instancia](spot-best-practices.md#be-instance-type-flexible).

**Topics**
+ [

## Cómo funciona la selección de tipo de instancia basada en atributos
](#ec2fleet-abs-how-it-works)
+ [

## Protección de precios
](#ec2fleet-abs-price-protection)
+ [

## Protección del rendimiento
](#ec2fleet-abis-performance-protection)
+ [

## Consideraciones
](#ec2fleet-abs-considerations)
+ [

## Cree una flota de EC2 con selección de tipo de instancia basada en atributos
](#abs-create-ec2-fleet)
+ [

## Cree una flota de spot con la selección de tipo de instancia basada en atributos
](#abs-create-spot-fleet)
+ [

## Ejemplos de configuraciones de flota de EC2 válidas y no válidas
](#ec2fleet-abs-example-configs)
+ [

## Ejemplos de configuraciones de flota de spot válidas y no válidas
](#spotfleet-abs-example-configs)
+ [

## Vista previa de tipos de instancia con atributos especificados
](#ec2fleet-get-instance-types-from-instance-requirements)

## Cómo funciona la selección de tipo de instancia basada en atributos
<a name="ec2fleet-abs-how-it-works"></a>

Para utilizar la selección de tipo de instancia basada en atributos en la configuración de la flota, debe reemplazar la lista de tipos de instancias por una lista de atributos de instancia que requieren las instancias. La flota de EC2 o la flota de spot iniciará instancias en cualquier tipo de instancia disponible que tenga los atributos de instancia especificados.

**Topics**
+ [

### Tipos de atributos de instancia
](#ef-abs-instance-attribute-types)
+ [

### Dónde configurar la selección de tipo de instancia basada en atributos
](#ef-abs-where-to-configure)
+ [

### Cómo utiliza la flota de EC2 o flota de spot la selección de tipo de instancia basada en atributos al aprovisionar una flota.
](#how-ef-uses-abs)

### Tipos de atributos de instancia
<a name="ef-abs-instance-attribute-types"></a>

Hay varios atributos de instancia que puede especificar para expresar los requisitos de computación, como, por ejemplo:
+ **Recuento de vCPU**: el número mínimo y máximo de vCPU por instancia.
+ **Memoria**: los GiB de memoria mínimos y máximos por instancia.
+ **Almacenamiento local**: si se usarán volúmenes de almacén de instancias o EBS para el almacenamiento local.
+ **Rendimiento ampliable**: si se usará la familia de instancias T, incluidos los tipos T4g, T3a, T3 y T2.

Para obtener una descripción de cada atributo y los valores predeterminados, consulte [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html) en la *Referencia de la API de Amazon EC2*.

### Dónde configurar la selección de tipo de instancia basada en atributos
<a name="ef-abs-where-to-configure"></a>

Según si utiliza la consola o la AWS CLI, puede especificar los atributos de instancia para la selección de tipo de instancia basada en atributos de la siguiente manera:

En la consola, puede especificar los atributos de la instancia en los siguientes componentes de configuración de la flota:
+ En una plantilla de inicialización y, luego, hacer referencia a la plantilla de inicialización en la solicitud de flota
+ (Solo flota de spot) En la solicitud de flota

En la AWS CLI puede especificar los atributos de la instancia en uno o todos los siguientes componentes de configuración de la flota:
+ En una plantilla de inicialización y, luego, hacer referencia a la plantilla de inicialización en la solicitud de flota
+ En una anulación de la plantilla de inicialización

  Si desea una combinación de instancias que utilizan diferentes AMI, puede especificar atributos de instancia en varias anulaciones de plantillas de lanzamiento. Por ejemplo, distintos tipos de instancias pueden utilizar procesadores x86 y basados en Arm.
+ (Solo flota de spot) En una especificación de inicio

### Cómo utiliza la flota de EC2 o flota de spot la selección de tipo de instancia basada en atributos al aprovisionar una flota.
<a name="how-ef-uses-abs"></a>

La flota de EC2 o flota de spot aprovisiona una flota de la siguiente manera:
+ Identifica los tipos de instancias que tienen los atributos especificados.
+ Utiliza la protección de precios para determinar qué tipos de instancias excluir.
+ Determina los grupos de capacidad desde los que considerará iniciar las instancias en función de las regiones de AWS o zonas de disponibilidad que tienen tipos de instancias coincidentes.
+ Aplica la estrategia de asignación especificada para determinar desde qué grupos de capacidad se van a iniciar las instancias.

  Tenga en cuenta que la selección de tipo de instancia basada en atributos no selecciona los grupos de capacidad desde los que se aprovisiona la flota; eso depende de las [estrategias de asignación](ec2-fleet-allocation-strategy.md).

  Si especifica una estrategia de asignación, la flota iniciará instancias según la estrategia de asignación especificada.
  + Para las instancias de spot, la selección del tipo de instancia basada en atributos admite las estrategias de asignación de **la capacidad de precio optimizada**, **la capacidad optimizada**, y **el precio más bajo**. Tenga en cuenta que no recomendamos la estrategia de asignación de spot del **precio más bajo** porque presenta el mayor riesgo de interrupción para las instancias de spot.
  + Para las instancias bajo demanda, la selección de tipo de instancia basada en atributos admite la estrategia de asignación del **precio más bajo**.
+ Si no hay capacidad para los tipos de instancias con los atributos de instancia especificados, no se pueden lanzar instancias y la flota devuelve un error.

## Protección de precios
<a name="ec2fleet-abs-price-protection"></a>

La protección de precios es una característica que impide que su flota de EC2 o flota de spot utilice tipos de instancias que consideraría demasiado caros, incluso si se ajustan a los atributos especificados. Para utilizar la protección de precios, debe establecer un umbral de precios. A continuación, cuando Amazon EC2 selecciona tipos de instancias con sus atributos, excluye los tipos de instancias con precios superiores al umbral.

La forma en que Amazon EC2 calcula el umbral de precio es la siguiente:
+ En primer lugar, Amazon EC2 identifica el tipo de instancia con el precio más bajo entre los que coinciden con sus atributos.
+ A continuación, Amazon EC2 toma el valor (expresado como porcentaje) que especificó para el parámetro de protección de precios y lo multiplica por el precio del tipo de instancias identificado. El resultado es el precio que se utiliza como umbral de precio.

Existen límites de precios diferentes para las instancias bajo demanda y las instancias de spot.

Cuando crea una flota con la selección del tipo de instancia basada en atributos, se habilita la protección de precios de forma predeterminada. Puede mantener los valores predeterminados o especificar los suyos.

También puede desactivar la protección de precios. Para indicar que no hay umbral de protección de precios, especifique un valor de porcentaje alto, como `999999`.

**Topics**
+ [

### Cómo se identifica el tipo de instancia con el precio más bajo
](#ec2fleet-abs-price-protection-lowest-priced)
+ [

### Protección de precios de las instancias bajo demanda
](#ec2fleet-abs-on-demand-price-protection)
+ [

### Protección de precios de instancias de spot
](#ec2fleet-abs-spot-price-protection)
+ [

### Especificación del umbral de protección de precios
](#ec2fleet-abs-specify-price-protection)

### Cómo se identifica el tipo de instancia con el precio más bajo
<a name="ec2fleet-abs-price-protection-lowest-priced"></a>

Amazon EC2 determina el precio en el que se basará el umbral de precios mediante la identificación del tipo de instancia con el precio más bajo entre los que coinciden con los atributos especificados. Lo hace de la siguiente forma:
+ En primer lugar, analiza los tipos de instancias C, M o R de la generación actual que coincidan con sus atributos. Si encuentra alguna coincidencia, identifica el tipo de instancia con el precio más bajo.
+ Si no hay ninguna coincidencia, analiza los tipos de instancias de la generación actual que coincidan con sus atributos. Si encuentra alguna coincidencia, identifica el tipo de instancia con el precio más bajo.
+ Si no hay ninguna coincidencia, analiza los tipos de instancias de la generación anterior que coincidan con sus atributos e identifica el tipo de instancia con el precio más bajo.

### Protección de precios de las instancias bajo demanda
<a name="ec2fleet-abs-on-demand-price-protection"></a>

El umbral de protección de precios para los tipos de instancias bajo demanda se calcula *como un porcentaje superior* al tipo de instancia bajo demanda identificado con el precio más bajo (`OnDemandMaxPricePercentageOverLowestPrice`). Especificará el porcentaje más alto que está dispuesto a pagar. Si no especifica este parámetro, se utilizará el valor predeterminado `20` para calcular un umbral de protección de precios superior en un 20 % al precio identificado.

Por ejemplo, si el precio de la instancia bajo demanda identificada es `0.4271` y usted especificó `25`, el umbral de precios es un 25 % superior a `0.4271`. Se calcula como se indica a continuación: `0.4271 * 1.25 = 0.533875`. El precio calculado es el máximo que está dispuesto a pagar por las instancias bajo demanda y, en este ejemplo, Amazon EC2 excluirá cualquier tipo de instancia bajo demanda que cueste más de `0.533875`.

### Protección de precios de instancias de spot
<a name="ec2fleet-abs-spot-price-protection"></a>

De manera predeterminada, Amazon EC2 aplicará automáticamente una protección óptima del precio de las instancias de spot para seleccionar de manera coherente entre una amplia gama de tipos de instancia. También puede configurar manualmente la protección de precios. Sin embargo, dejar que Amazon EC2 lo haga puede aumentar la probabilidad de que se agote la capacidad de spot.

Puede especificar manualmente la protección de precios con una de las opciones siguientes. Si configura manualmente la protección de precios, le recomendamos utilizar la primera opción.
+ **Un *porcentaje* del tipo de instancia *bajo demanda* identificado con el precio más bajo** [`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`]

  Por ejemplo, si el precio del tipo de instancia bajo demanda identificado es `0.4271` y usted especificó `60`, el umbral de precios es un 60 % de `0.4271`. Se calcula como se indica a continuación: `0.4271 * 0.60 = 0.25626`. El precio calculado es el máximo que está dispuesto a pagar por las instancias de spot y, en este ejemplo, Amazon EC2 excluirá cualquier tipo de instancia de spot que cueste más de `0.25626`.
+ **Un *porcentaje superior* al tipo de instancia de *spot* identificado con el precio más bajo** [`SpotMaxPricePercentageOverLowestPrice`]

  Por ejemplo, si el precio del tipo de instancia de spot identificado es `0.1808` y usted especificó `25`, el umbral de precios es un 25 % superior a `0.1808`. Se calcula como se indica a continuación: `0.1808 * 1.25 = 0.226`. El precio calculado es el máximo que está dispuesto a pagar por las instancias de spot y, en este ejemplo, Amazon EC2 excluirá cualquier tipo de instancia de spot que cueste más de `0.266`. No le recomendamos utilizar este parámetro porque los precios de spot pueden fluctuar y, por lo tanto, su umbral de protección de precios también puede fluctuar.

### Especificación del umbral de protección de precios
<a name="ec2fleet-abs-specify-price-protection"></a>

**Para especificar el límite de protección de precios mediante la AWS CLI**

Cuando cree una flota de EC2 o la flota de spot mediante la AWS CLI, configure la flota para la selección del tipo de instancia basada en atributos y, a continuación, haga lo siguiente:
+ Para especificar el límite de protección de precios de las instancias bajo demanda, en el archivo de configuración JSON, en la estructura `InstanceRequirements`, en `OnDemandMaxPricePercentageOverLowestPrice`, ingrese el límite de protección de precios en forma de porcentaje.
+ Para especificar el umbral de protección de precios de las instancias de spot, en el archivo de configuración JSON, en la estructura `InstanceRequirements`, especifique *uno* de los siguientes parámetros:
  + En `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`, introduzca el umbral de protección de precios en forma de porcentaje.
  + En `SpotMaxPricePercentageOverLowestPrice`, ingrese el umbral de protección de precios en forma de porcentaje.

Para obtener más información, consulte [Cree una flota de EC2 con selección de tipo de instancia basada en atributos](#abs-create-ec2-fleet) o [Cree una flota de spot con la selección de tipo de instancia basada en atributos](#abs-create-spot-fleet).

**(Solo en la flota de spot) Para especificar el límite de protección de precios mediante la consola**

Cuando cree una flota de spot en la consola, configure la flota para la selección del tipo de instancia basada en atributos y, a continuación, haga lo siguiente:
+ Para especificar el límite de protección de precios de la instancia bajo demanda, en **Atributo de instancia adicional**, elija **Protección de precios bajo demanda** elija **Agregar atributo**, y luego ingrese el límite de protección de precios en forma de porcentaje.
+ Para especificar el límite de protección de precios de la instancia de spot, **Atributo de instancia adicional**, elija **Protección de precios de spot**, elija **Agregar atributo**, elija un valor base en el que asentar su precio y, a continuación, ingrese el límite de protección de precios en forma de porcentaje.

**nota**  
Cuando crea la flota, si establece `TargetCapacityUnitType` en `vcpu` o `memory-mib`, el límite de protección de precios se aplica en función del precio por vCPU o por memoria en lugar del precio por instancia.

## Protección del rendimiento
<a name="ec2fleet-abis-performance-protection"></a>

La *protección de rendimiento* es una función que asegura que la flota de EC2 o de spot utilice tipos de instancias que cumplan o superen un rendimiento base especificado. Para utilizar la protección del rendimiento, debe especificar una familia de instancias como referencia base. Las capacidades de la familia de instancias especificada definen el nivel mínimo aceptable de rendimiento. Cuando Amazon EC2 selecciona tipos de instancias para la flota, tiene en cuenta los atributos especificados y la referencia de rendimiento. Los tipos de instancias que no cumplen con la referencia de rendimiento se excluyen automáticamente de la selección, incluso si coinciden con los demás atributos especificados. De este modo se garantiza que todos los tipos de instancias seleccionados ofrezcan un rendimiento similar o superior a la referencia establecida por la familia de instancias especificada. Amazon EC2 utiliza esta referencia para orientar la selección del tipo de instancia, pero no se garantiza que los tipos de instancia seleccionados superen siempre la referencia para cada aplicación.

Actualmente, esta característica solo admite el rendimiento de la CPU como factor de rendimiento de referencia. El rendimiento de la CPU del procesador de la CPU de la familia de instancias especificada sirve como referencia de rendimiento, lo que garantiza que los tipos de instancia seleccionados sean similares a esta referencia o la superen. Las familias de instancias con los mismos procesadores de CPU conducen a los mismos resultados de filtrado, aunque su rendimiento de red o de disco difiera. Por ejemplo, si se especifica `c6in` o `c6i` como referencia base, se obtendrían resultados de filtrado basados en el rendimiento idénticos, ya que ambas familias de instancias utilizan el mismo procesador de CPU.

**Familias de instancias no admitidas**  
**No se admiten** las siguientes familias de instancias para la protección del rendimiento:
+ **De uso general**: Mac1 \$1 Mac2 \$1 Mac2-m1ultra \$1 Mac2-m2 \$1 Mac2-m2pro \$1 M1 \$1 M2 \$1 T1
+ **Optimizadas para la computación:** C1
+ **Optimizadas para memoria:** U-3tb1 \$1 U-6tb1 \$1 U-9tb1 \$1 U-12tb1 \$1 U-18tb1 \$1 U-24tb1 \$1 U7i-12tb \$1 U7in-16tb \$1 U7in-24tb \$1 U7in-32tb
+ **De computación acelerada:** G3 \$1 G3s \$1 P3dn \$1 P4d \$1 P5
+ **De computación de alto rendimiento:** Hpc7g

Si para habilitar la protección del rendimiento, especifica una familia de instancias admitida, los tipos de instancias devueltos excluirán las familias de instancias no admitidas que se indican más arriba.

Si especifica una familia de instancias no admitida como valor para el rendimiento base, la API devuelve una respuesta vacía para [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) y una excepción para [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), [ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet.html) y [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest.html).

**Ejemplo: establecimiento de una referencia de rendimiento base de la CPU**  
En el siguiente ejemplo, el requisito de instancias consiste en realizar el lanzamiento con tipos de instancias que tengan núcleos de CPU con el mismo rendimiento que la familia de instancias de `c6i`. Esto descartará los tipos de instancias con procesadores de CPU de menor rendimiento, incluso si cumplen otros requisitos de instancia especificados, como la cantidad de CPU virtuales. Por ejemplo, si los atributos de instancia especificados incluyen 4 CPU virtuales y 16 GB de memoria, se excluirá de la selección un tipo de instancia con estos atributos, pero con un rendimiento de CPU inferior a `c6i`.

```
"BaselinePerformanceFactors": {
        "Cpu": {
            "References": [
                {
                    "InstanceFamily": "c6i"
                }
            ]
        }
```

## Consideraciones
<a name="ec2fleet-abs-considerations"></a>
+ Puede especificar tipos de instancias o atributos de instancia en una flota de EC2 o en una flota de spot, pero no ambos al mismo tiempo.

  Al utilizar la CLI, las anulaciones de la plantilla de lanzamiento anularán la plantilla de lanzamiento. Por ejemplo, si la plantilla de inicialización contiene un tipo de instancia y la anulación de la plantilla de inicialización contiene atributos de instancia, las instancias identificadas por los atributos de instancia anularán el tipo de instancia en la plantilla de inicialización.
+ Al utilizar la CLI, cuando especifica atributos de instancia como anulaciones, no puede especificar ponderaciones ni prioridades al mismo tiempo.
+ Puede especificar un máximo de cuatro estructuras `InstanceRequirements` en una configuración de solicitud.

## Cree una flota de EC2 con selección de tipo de instancia basada en atributos
<a name="abs-create-ec2-fleet"></a>

Puede configurar una flota EC2 para utilizar la selección de tipo de instancia basada en atributos. No es posible crear una flota de EC2 mediante la consola de Amazon EC2.

Los atributos para la selección de tipos de instancia basada en atributos se especifican en la estructura `InstanceRequirements`. Cuando `InstanceRequirements` se incluye en la configuración de la flota, `InstanceType` y `WeightedCapacity` deben excluirse; no pueden determinar la configuración de la flota al mismo tiempo que los atributos de instancia.

En los ejemplos de AWS CLI y PowerShell, se especifican los siguientes atributos:
+ `VCpuCount`: un mínimo de 2 vCPU y un máximo de 4 vCPU. Si no necesita un límite máximo, puede omitir el valor máximo.
+ `MemoryMiB`: un mínimo de 8 GiB de memoria y un máximo de 16 GiB. Si no necesita un límite máximo, puede omitir el valor máximo.

Esta configuración identifica cualquier tipo de instancia con 2 a 4 vCPU y de 8 a 16 GiB de memoria. Sin embargo, la protección de precios y la estrategia de asignación pueden excluir algunos tipos de instancia cuando la [flota de EC2 aprovisiona la flota](#how-ef-uses-abs).

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

**Para crear una flota de EC2 con selección de tipo de instancia basada en atributos**  
Utilice el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para crear una flota de EC2. Especifique la configuración de la flota en un archivo JSON.

```
aws ec2 create-fleet \
    --region us-east-1 \
    --cli-input-json file://file_name.json
```

En el siguiente ejemplo, el archivo `file_name.json` contiene los parámetros que configuran una flota EC2 para utilizar la selección de tipo de instancia basada en atributos.

```
{
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized"
    },
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

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

**Para crear una flota de EC2 con selección de tipo de instancia basada en atributos**  
Utilice el cmdlet [New-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Fleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRangeRequest
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiBRequest
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirementsRequest
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecificationRequest
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.FleetLaunchTemplateOverridesRequest
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.FleetLaunchTemplateConfigRequest
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

New-EC2Fleet `
    -SpotOptions_AllocationStrategy "price-capacity-optimized" `
    -LaunchTemplateConfig @($launchTemplateConfig) `
    -TargetCapacitySpecification_DefaultTargetCapacityType "spot" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -Type "instant"
```

------

## Cree una flota de spot con la selección de tipo de instancia basada en atributos
<a name="abs-create-spot-fleet"></a>

Puede configurar una flota para que utilice la selección de tipo de instancia basada en atributos.

Los atributos para la selección de tipos de instancia basada en atributos se especifican en la estructura `InstanceRequirements`. Cuando `InstanceRequirements` se incluye en la configuración de la flota, `InstanceType` y `WeightedCapacity` deben excluirse; no pueden determinar la configuración de la flota al mismo tiempo que los atributos de instancia.

En los ejemplos de AWS CLI y PowerShell, se especifican los siguientes atributos:
+ `VCpuCount`: un mínimo de 2 vCPU y un máximo de 4 vCPU. Si no necesita un límite máximo, puede omitir el valor máximo.
+ `MemoryMiB`: un mínimo de 8 GiB de memoria y un máximo de 16 GiB. Si no necesita un límite máximo, puede omitir el valor máximo.

Esta configuración identifica cualquier tipo de instancia que tenga de 2 a 4 vCPU y de 8 a 16 GiB de memoria. Sin embargo, la protección de precios y la estrategia de asignación pueden excluir algunos tipos de instancias cuando la [flota de spot aprovisiona la flota](#how-ef-uses-abs).

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

**Para configurar una flota de spot para la selección de tipo de instancia basada en atributos**

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** y, a continuación, elija **Solicitar instancias de spot**.

1. Siga los pasos para crear una flota de spot. Para obtener más información, consulte [Creación de una solicitud de flota de spot con los parámetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

   Al crear la flota de spot, configure la flota para la selección de tipo de instancia basada en atributos de la siguiente manera:

   1. En **Requisitos de tipo de instancia**, elija **Especificar los atributos de instancia que coinciden 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. (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 más restricciones a la solicitud.

   1. (Opcional) Expanda **Vista previa de tipos de instancia coincidentes** para ver los tipos de instancias que tienen los atributos especificados.

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

**Para configurar una flota de spot para la selección de tipo de instancia basada en atributos**  
Utilice el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) para crear una flota de spot. Especifique la configuración de la flota en un archivo JSON.

```
aws ec2 request-spot-fleet \
    --region us-east-1 \
    --spot-fleet-request-config file://file_name.json
```

En el siguiente ejemplo, el archivo `file_name.json` contiene los parámetros que configuran una flota de spot para utilizar la selección de tipo de instancia basada en atributos.

```
{
    "AllocationStrategy": "priceCapacityOptimized",
    "TargetCapacity": 20,
    "Type": "request",
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }]
}
```

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

**Para configurar una flota de spot para la selección de tipo de instancia basada en atributos**  
Utilice el cmdlet [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRange
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiB
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirements
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecification
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

Request-EC2SpotFleet `
    -SpotFleetRequestConfig_AllocationStrategy "PriceCapacityOptimized" `
    -SpotFleetRequestConfig_TargetCapacity 20 `
    -SpotFleetRequestConfig_Type "Request" `
    -SpotFleetRequestConfig_LaunchTemplateConfig $launchTemplateConfig
```

------

## Ejemplos de configuraciones de flota de EC2 válidas y no válidas
<a name="ec2fleet-abs-example-configs"></a>

Si utiliza la AWS CLI para crear una flota de EC2, debe asegurarse de que la configuración de su flota sea válida. En los siguientes ejemplos, se muestran configuraciones válidas y no válidas.

Las configuraciones no se consideran válidas cuando contienen lo siguiente:
+ Una única estructura `Overrides` con `InstanceRequirements` y `InstanceType` a la vez
+ Dos estructuras `Overrides`, una con `InstanceRequirements` y la otra con `InstanceType`
+ Dos estructuras `InstanceRequirements` con valores de atributo superpuestos dentro de la misma `LaunchTemplateSpecification`

**Topics**
+ [

### Configuración válida: plantilla de inicialización única con anulaciones
](#ef-abs-example-config1)
+ [

### Configuración válida: plantilla de inicialización única con varios requisitos de instancia
](#ef-abs-example-config2)
+ [

### Configuración válida: dos plantillas de inicialización, cada una con anulaciones
](#ef-abs-example-config3)
+ [

### Configuración válida: solo `InstanceRequirements` especificado, sin valores de atributo superpuestos
](#ef-abs-example-config4)
+ [

### La configuración no es válida: `Overrides` contiene `InstanceRequirements` y `InstanceType`
](#ef-abs-example-config5)
+ [

### La configuración no es válida: dos `Overrides` contienen `InstanceRequirements` y `InstanceType`
](#ef-abs-example-config6)
+ [

### La configuración no es válida: valores de atributo superpuestos
](#ef-abs-example-config7)

### Configuración válida: plantilla de inicialización única con anulaciones
<a name="ef-abs-example-config1"></a>

La siguiente configuración es válida. Contiene una plantilla de inicialización y otra estructura `Overrides` que contiene una estructura `InstanceRequirements`. A continuación, se presenta una explicación de texto de la configuración de ejemplo.

```
{
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 5000,
        "DefaultTargetCapacityType": "spot",
        "TargetCapacityUnitType": "vcpu"
        }
    }
}
```

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

En el ejemplo anterior, se especifican los siguientes atributos de instancia:
+ `VCpuCount`: los tipos de instancia deben tener un mínimo de 2 y un máximo de 8 vCPU.
+ `MemoryMiB`: los tipos de instancia deben tener un máximo de 10 240 MiB de memoria. Un mínimo de 0 indica que no hay un límite mínimo.
+ `MemoryGiBPerVCpu`: los tipos de instancia deben tener un máximo de 10 000 GiB de memoria por vCPU. El parámetro `Min` es opcional. Al omitirlo, indica que no hay un límite mínimo.

**`TargetCapacityUnitType`**  
El parámetro `TargetCapacityUnitType` especifica la unidad de la capacidad de destino. En el ejemplo, la capacidad objetivo es `5000` y el tipo de unidad de capacidad objetivo es `vcpu`, que en conjunto especifican una capacidad de destino deseada de 5000 vCPU. La flota de EC2 iniciará suficientes instancias para que el número total de vCPU de la flota sea de 5000 vCPU.

### Configuración válida: plantilla de inicialización única con varios requisitos de instancia
<a name="ef-abs-example-config2"></a>

La siguiente configuración es válida. Contiene una plantilla de inicialización y una estructura `Overrides` que contiene dos estructuras `InstanceRequirements`. Los atributos especificados en `InstanceRequirements` son válidos porque los valores no se superponen; la primera estructura `InstanceRequirements` especifica un `VCpuCount` de 0 a 2 vCPU, mientras que la segunda estructura `InstanceRequirements` especifica de 4 a 8 vCPU.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuración válida: dos plantillas de inicialización, cada una con anulaciones
<a name="ef-abs-example-config3"></a>

La siguiente configuración es válida. Contiene dos plantillas de inicialización, cada una con una estructura `Overrides` que contiene una estructura `InstanceRequirements`. Esta configuración resulta útil para el soporte de arquitectura `arm` y `x86` en la misma flota.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuración válida: solo `InstanceRequirements` especificado, sin valores de atributo superpuestos
<a name="ef-abs-example-config4"></a>

La siguiente configuración es válida. Contiene dos estructuras `LaunchTemplateSpecification`, cada una con una plantilla de inicialización y una estructura `Overrides` que contiene una estructura `InstanceRequirements`. Los atributos especificados en `InstanceRequirements` son válidos porque los valores no se superponen; la primera estructura `InstanceRequirements` especifica un `VCpuCount` de 0 a 2 vCPU, mientras que la segunda estructura `InstanceRequirements` especifica de 4 a 8 vCPU.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### La configuración no es válida: `Overrides` contiene `InstanceRequirements` y `InstanceType`
<a name="ef-abs-example-config5"></a>

La siguiente configuración no es válida. La estructura `Overrides` contiene tanto `InstanceRequirements` como `InstanceType`. En `Overrides`, puede especificar `InstanceRequirements` o `InstanceType`, pero no ambos.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### La configuración no es válida: dos `Overrides` contienen `InstanceRequirements` y `InstanceType`
<a name="ef-abs-example-config6"></a>

La siguiente configuración no es válida. Las estructuras `Overrides` contienen tanto `InstanceRequirements` como `InstanceType`. Puede especificar `InstanceRequirements` o `InstanceType`, pero no ambos, incluso si están en diferentes estructuras `Overrides`.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### La configuración no es válida: valores de atributo superpuestos
<a name="ef-abs-example-config7"></a>

La siguiente configuración no es válida. Cada una de las dos estructuras `InstanceRequirements` contienen `"VCpuCount": {"Min": 0, "Max": 2}`. Los valores de estos atributos se superponen, lo que dará lugar a grupos de capacidad duplicados.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

## Ejemplos de configuraciones de flota de spot válidas y no válidas
<a name="spotfleet-abs-example-configs"></a>

Si utiliza la AWS CLI para crear una flota de spot, debe asegurarse de que la configuración de la flota sea válida. En los siguientes ejemplos, se muestran configuraciones válidas y no válidas.

Las configuraciones no se consideran válidas cuando contienen lo siguiente:
+ Una única estructura `Overrides` con `InstanceRequirements` y `InstanceType` a la vez
+ Dos estructuras `Overrides`, una con `InstanceRequirements` y la otra con `InstanceType`
+ Dos estructuras `InstanceRequirements` con valores de atributo superpuestos dentro de la misma `LaunchTemplateSpecification`

**Topics**
+ [

### Configuración válida: plantilla de inicialización única con anulaciones
](#sf-abs-example-config1)
+ [

### Configuración válida: plantilla de lanzamiento única con varios requisitos de instancia
](#sf-abs-example-config2)
+ [

### Configuración válida: dos plantillas de inicialización, cada una con anulaciones
](#sf-abs-example-config3)
+ [

### Configuración válida: solo `InstanceRequirements` especificado, sin valores de atributo superpuestos
](#sf-abs-example-config4)
+ [

### La configuración no es válida: `Overrides` contiene `InstanceRequirements` y `InstanceType`
](#sf-abs-example-config5)
+ [

### La configuración no es válida: dos `Overrides` contienen `InstanceRequirements` y `InstanceType`
](#sf-abs-example-config6)
+ [

### La configuración no es válida: valores de atributo superpuestos
](#sf-abs-example-config7)

### Configuración válida: plantilla de inicialización única con anulaciones
<a name="sf-abs-example-config1"></a>

La siguiente configuración es válida. Contiene una plantilla de inicialización y otra estructura `Overrides` que contiene una estructura `InstanceRequirements`. A continuación, se presenta una explicación de texto de la configuración de ejemplo.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
        "TargetCapacity": 5000,
            "OnDemandTargetCapacity": 0,
            "TargetCapacityUnitType": "vcpu"
    }
}
```

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

En el ejemplo anterior, se especifican los siguientes atributos de instancia:
+ `VCpuCount`: los tipos de instancia deben tener un mínimo de 2 y un máximo de 8 vCPU.
+ `MemoryMiB`: los tipos de instancia deben tener un máximo de 10 240 MiB de memoria. Un mínimo de 0 indica que no hay un límite mínimo.
+ `MemoryGiBPerVCpu`: los tipos de instancia deben tener un máximo de 10 000 GiB de memoria por vCPU. El parámetro `Min` es opcional. Al omitirlo, indica que no hay un límite mínimo.

**`TargetCapacityUnitType`**  
El parámetro `TargetCapacityUnitType` especifica la unidad de la capacidad de destino. En el ejemplo, la capacidad objetivo es `5000` y el tipo de unidad de capacidad objetivo es `vcpu`, que en conjunto especifican una capacidad de destino deseada de 5000 vCPU. La flota de spot iniciará suficientes instancias para que el número total de vCPU de la flota sea de 5000 vCPU.

### Configuración válida: plantilla de lanzamiento única con varios requisitos de instancia
<a name="sf-abs-example-config2"></a>

La siguiente configuración es válida. Contiene una plantilla de inicialización y una estructura `Overrides` que contiene dos estructuras `InstanceRequirements`. Los atributos especificados en `InstanceRequirements` son válidos porque los valores no se superponen; la primera estructura `InstanceRequirements` especifica un `VCpuCount` de 0 a 2 vCPU, mientras que la segunda estructura `InstanceRequirements` especifica de 4 a 8 vCPU.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuración válida: dos plantillas de inicialización, cada una con anulaciones
<a name="sf-abs-example-config3"></a>

La siguiente configuración es válida. Contiene dos plantillas de inicialización, cada una con una estructura `Overrides` que contiene una estructura `InstanceRequirements`. Esta configuración resulta útil para el soporte de arquitectura `arm` y `x86` en la misma flota.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuración válida: solo `InstanceRequirements` especificado, sin valores de atributo superpuestos
<a name="sf-abs-example-config4"></a>

La siguiente configuración es válida. Contiene dos estructuras `LaunchTemplateSpecification`, cada una con una plantilla de inicialización y una estructura `Overrides` que contiene una estructura `InstanceRequirements`. Los atributos especificados en `InstanceRequirements` son válidos porque los valores no se superponen; la primera estructura `InstanceRequirements` especifica un `VCpuCount` de 0 a 2 vCPU, mientras que la segunda estructura `InstanceRequirements` especifica de 4 a 8 vCPU.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### La configuración no es válida: `Overrides` contiene `InstanceRequirements` y `InstanceType`
<a name="sf-abs-example-config5"></a>

La siguiente configuración no es válida. La estructura `Overrides` contiene tanto `InstanceRequirements` como `InstanceType`. En `Overrides`, puede especificar `InstanceRequirements` o `InstanceType`, pero no ambos.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### La configuración no es válida: dos `Overrides` contienen `InstanceRequirements` y `InstanceType`
<a name="sf-abs-example-config6"></a>

La siguiente configuración no es válida. Las estructuras `Overrides` contienen tanto `InstanceRequirements` como `InstanceType`. Puede especificar `InstanceRequirements` o `InstanceType`, pero no ambos, incluso si están en diferentes estructuras `Overrides`.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### La configuración no es válida: valores de atributo superpuestos
<a name="sf-abs-example-config7"></a>

La siguiente configuración no es válida. Cada una de las dos estructuras `InstanceRequirements` contienen `"VCpuCount": {"Min": 0, "Max": 2}`. Los valores de estos atributos se superponen, lo que dará lugar a grupos de capacidad duplicados.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

## Vista previa de tipos de instancia con atributos especificados
<a name="ec2fleet-get-instance-types-from-instance-requirements"></a>

Puede utilizar el comando [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) para obtener una vista previa de los tipos de instancias que coinciden con los atributos especificados. Esto resulta particularmente útil para determinar qué atributos se deben especificar en la configuración de la solicitud sin iniciar ninguna instancia. Considere que el comando no tiene en cuenta la capacidad disponible.

**Para obtener una vista previa de una lista de tipos de instancias al especificar atributos mediante la AWS CLI**

1. (Opcional) Para generar todos los atributos posibles que se pueden especificar, utilice el comando [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) y el parámetro `--generate-cli-skeleton`. Puede dirigir de manera opcional el resultado a un archivo para guardarlo mediante `input > attributes.json`.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --region us-east-1 \
       --generate-cli-skeleton input > attributes.json
   ```

   Resultado previsto

   ```
   {
       "DryRun": true,
       "ArchitectureTypes": [
           "i386"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 0,
               "Max": 0
           },
           "MemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "CpuManufacturers": [
               "intel"
           ],
           "MemoryGiBPerVCpu": {
               "Min": 0.0,
               "Max": 0.0
           },
           "ExcludedInstanceTypes": [
               ""
           ],
           "InstanceGenerations": [
               "current"
           ],
           "SpotMaxPricePercentageOverLowestPrice": 0,
           "OnDemandMaxPricePercentageOverLowestPrice": 0,
           "BareMetal": "included",
           "BurstablePerformance": "included",
           "RequireHibernateSupport": true,
           "NetworkInterfaceCount": {
               "Min": 0,
               "Max": 0
           },
           "LocalStorage": "included",
           "LocalStorageTypes": [
               "hdd"
           ],
           "TotalLocalStorageGB": {
               "Min": 0.0,
               "Max": 0.0
           },
           "BaselineEbsBandwidthMbps": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorTypes": [
               "gpu"
           ],
           "AcceleratorCount": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorManufacturers": [
               "nvidia"
           ],
           "AcceleratorNames": [
               "a100"
           ],
           "AcceleratorTotalMemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "NetworkBandwidthGbps": {
               "Min": 0.0,
               "Max": 0.0
           },
           "AllowedInstanceTypes": [
               ""
           ]
       },
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. Cree un archivo de configuración JSON con el resultado del paso anterior y configúrelo de la siguiente manera:
**nota**  
Debe proporcionar valores para `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` y `MemoryMiB`. Puede omitir los demás atributos; cuando se omiten, se utilizan los valores predeterminados.  
Para obtener una descripción de cada atributo y sus valores predeterminados, consulte [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html).

   1. En `ArchitectureTypes`, especifique uno o varios tipos de arquitectura de procesador.

   1. En `VirtualizationTypes`, especifique uno o varios tipos de virtualización.

   1. En `VCpuCount`, especifique el número mínimo y máximo de vCPU. Para no especificar un límite mínimo, en `Min`, especifique `0`. Para no especificar un límite máximo, omita el parámetro `Max`.

   1. En `MemoryMiB`, especifique la cantidad mínima y máxima de memoria en MiB. Para no especificar un límite mínimo, en `Min`, especifique `0`. Para no especificar un límite máximo, omita el parámetro `Max`.

   1. De manera opcional, puede especificar uno o varios de los otros atributos para restringir aún más la lista de tipos de instancias que se devuelven.

1. Para obtener una vista previa de los tipos de instancias que tienen los atributos especificados en el archivo JSON, utilice el comando [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) y especifique el nombre y la ruta de acceso al archivo JSON mediante el parámetro `--cli-input-json`. De manera opcional, puede dar formato al resultado para que aparezca en formato de tabla.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --cli-input-json file://attributes.json \
       --output table
   ```

   Archivo de ejemplo *attributes.json*

   En este ejemplo, los atributos requeridos se incluyen en el archivo JSON. Ellos son `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` y `MemoryMiB`. Además, el atributo opcional `InstanceGenerations` también se incluye. Tenga en cuenta que en `MemoryMiB`, el valor `Max` puede omitirse para indicar que no hay un límite.

   ```
   {
       
       "ArchitectureTypes": [
           "x86_64"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 4,
               "Max": 6
           },
           "MemoryMiB": {
               "Min": 2048
           },
           "InstanceGenerations": [
               "current"
           ]
       }
   }
   ```

   Ejemplo de resultado

   ```
   ------------------------------------------
   |GetInstanceTypesFromInstanceRequirements|
   +----------------------------------------+
   ||             InstanceTypes            ||
   |+--------------------------------------+|
   ||             InstanceType             ||
   |+--------------------------------------+|
   ||  c4.xlarge                           ||
   ||  c5.xlarge                           ||
   ||  c5a.xlarge                          ||
   ||  c5ad.xlarge                         ||
   ||  c5d.xlarge                          ||
   ||  c5n.xlarge                          ||
   ||  d2.xlarge                           ||
   ...
   ```

1. Después de identificar los tipos de instancia que se ajusten a sus necesidades, anote los atributos de instancia utilizados para poder utilizarlos al configurar su solicitud de flota.

# Utilice la ponderación de instancias para gestionar los costes y el rendimiento de la flota de EC2 o la flota de spot.
<a name="ec2-fleet-instance-weighting"></a>

Con la ponderación de instancias, puede asignar una ponderación a cada tipo de instancia en su flota de EC2 o en su flota de spot para representar su capacidad de computación y su rendimiento en relación con los demás. En función de las ponderaciones, la flota puede utilizar cualquier combinación de los tipos de instancias especificados, siempre que pueda cumplir con la capacidad objetivo deseada. Esto puede ayudarlo a gestionar el costo y el rendimiento de su flota.

La ponderación representa las unidades de capacidad que un tipo de instancia contribuye a la capacidad total objetivo.

**Ejemplo: utilizar la ponderación de instancias para administrar el rendimiento**.

Supongamos que su flota tiene dos tipos de instancias y que usted asigna una ponderación diferente a cada tipo de instancia para reflejar cuánto necesita de cada uno para lograr el mismo rendimiento, de la siguiente manera:
+  `m5.large` – peso: 1
+ `m5.2xlarge` – peso: 4

Al asignar estas ponderaciones, está diciendo que necesitaría 4 instancias `m5.large` para lograr el mismo rendimiento que 1 `m5.2xlarge`.

Para calcular cuántas instancias de cada tipo de instancia se necesitan para una capacidad objetivo determinada, utilice la siguiente fórmula:

`target capacity / weight = number of instances`

Si su capacidad objetivo es de 8 unidades, la flota podría cumplir con la capacidad objetivo con `m5.large` o `m5.2xlarge`, o con una combinación de ambas, de la siguiente manera:
+ 8 instancias `m5.large` (capacidad de 8 / peso de 1 = 8 instancias)
+ 2 instancias `m5.2xlarge` (capacidad de 8 / peso de 4 = 2 instancias)
+ 4 `m5.large` y 1 `m5.2xlarge`

**Ejemplo: utilizar la ponderación de instancias para administrar los costos**.

De forma predeterminada, el precio se especifica *por hora de instancia*. Cuando se utiliza la característica de ponderación de instancias, el precio se especifica *por hora de unidad*. Puede calcular el precio por hora de unidad mediante la división del precio de un tipo de instancia por el número de unidades que representa. La flota calcula el número de instancias que debe iniciar mediante la división de la capacidad objetivo por el peso de instancias. Si el resultado no es un entero, la flota lo redondea al siguiente entero, de manera que el tamaño de la flota no esté por debajo de su capacidad de destino. La flota puede seleccionar cualquier grupo que indique en la especificación de inicialización, incluso si la capacidad de las instancias iniciadas sobrepasa la capacidad de destino solicitada.

En la siguiente tabla se incluyen ejemplos de cálculos para determinar el precio por unidad para una flota con una capacidad objetivo de 10.


| Tipo de instancia | Ponderación de instancia | Capacidad de destino | Número de instancias iniciadas | Precio por hora de instancia | Precio por hora de unidad | 
| --- | --- | --- | --- | --- | --- | 
| r3.xlarge |  2  | 10 |  5 (10 dividido por 2)  |  0,05 USD  |  0,025 USD (0,05 dividido por 2)  | 
| r3.8xlarge |  8  | 10 |  2 (10 dividido por 8, con el resultado redondeado hacia arriba)  |  0,10 USD  |  0,0125 USD (0,10 dividido por 8)  | 

Utilice la ponderación de instancias de la flota de la siguiente manera para aprovisionar la capacidad objetivo que desea en los grupos con el precio más bajo por unidad en el momento de su tramitación:

1. Establezca la capacidad objetivo de la flota en instancias (opción predeterminada) o en las unidades de su elección, como vCPU, memoria, almacenamiento o rendimiento.

1. Establezca el precio por unidad.

1. Para cada especificación de inicialización, indique la ponderación, que es el número de unidades con el que el tipo de instancia representa la capacidad de destino.

**Ejemplo de ponderación de instancias**  
Considere una solicitud de flota con la siguiente configuración:
+ Una capacidad de destino de 24
+ Una especificación de inicialización con un tipo de instancia `r3.2xlarge` y una ponderación de 6
+ Una especificación de inicialización con un tipo de instancia `c3.xlarge` y una ponderación de 5

La ponderación representa el número de unidades con el que el tipo de instancia representa la capacidad de destino. Si la primera especificación de inicialización proporciona el precio más bajo por unidad (precio para `r3.2xlarge` por hora de instancia dividido entre 6), la flota debería iniciar cuatro de estas instancias (24 dividido entre 6).

Si la segunda especificación de inicialización proporciona el precio por unidad más bajo (precio para `c3.xlarge` por hora de instancia dividido entre 5), la flota debería iniciar cinco de estas instancias (24 dividido entre 5, con el resultado redondeado hacia arriba).

**Ponderación de instancias y estrategia de asignación**  
Considere una solicitud de flota con la siguiente configuración:
+ Una capacidad de destino de 30 instancias de spot
+ Una especificación de inicialización con un tipo de instancia `c3.2xlarge` y una ponderación de 8
+ Una especificación de lanzamiento con un tipo de instancia `m3.xlarge` y una ponderación de 8
+ Una especificación de lanzamiento con un tipo de instancia `r3.xlarge` y una ponderación de 8

La flota debería iniciar cuatro instancias (30 dividido entre 8, con el resultado redondeado hacia arriba). Con la estrategia `diversified`, la flota inicia una instancia en cada uno de los tres grupos y la cuarta instancia en cualquiera de los tres grupos que proporcione el menor precio por unidad.

# Utilice estrategias de asignación para determinar cómo la flota de EC2 o la flota de spot satisfacen la capacidad de spot y bajo demanda
<a name="ec2-fleet-allocation-strategy"></a>

Cuando utiliza varios grupos de capacidad (cada uno compuesto por un tipo de instancia y una zona de disponibilidad) en una flota de EC2 o una flota de spot, puede utilizar una *estrategia de asignación* para gestionar la forma en que Amazon EC2 gestiona sus capacidades de spot y bajo demanda de estos grupos. Las estrategias de asignación permiten optimizar la capacidad disponible, el precio y los tipos de instancias que se van a utilizar. Existen diferentes estrategias de asignación para las instancias de spot y las instancias bajo demanda.

**Topics**
+ [

## Estrategias de asignación de instancias de spot
](#ec2-fleet-allocation-strategies-for-spot-instances)
+ [

## Estrategias de asignación para instancias bajo demanda
](#ec2-fleet-allocation-strategies-for-on-demand-instances)
+ [

## Seleccionar la estrategia de asignación de spot apropiada
](#ec2-fleet-allocation-use-cases)
+ [

## Mantener la capacidad objetivo para las instancias de spot
](#ec2-fleet-maintain-fleet-capacity)
+ [

## Priorizar tipos de instancias para la capacidad bajo demanda
](#ec2-fleet-on-demand-priority)

## Estrategias de asignación de instancias de spot
<a name="ec2-fleet-allocation-strategies-for-spot-instances"></a>

La configuración de inicialización determina todos los grupos de capacidad de spot posibles (tipos de instancias y zonas de disponibilidad) desde los que la flota de EC2 o la flota de spot pueden iniciar instancias de spot. Sin embargo, al iniciar instancias, la flota utiliza la estrategia de asignación que usted especifique para seleccionar los grupos específicos entre todos sus grupos posibles.

**nota**  
(Solo instancias de Linux) Si se configura la instancia de spot para lanzarla con la característica [SEV-SNP de AMD](sev-snp.md) activada, se le cobrará una tarifa de uso por hora adicional que equivale al 10 % de la [tarifa horaria bajo demanda](https://aws.amazon.com/ec2/pricing/on-demand/) del tipo de instancia seleccionado. Si la estrategia de asignación utiliza el precio como variable, la flota no incluye esta tarifa adicional; solo se utiliza el precio de spot.

Puede especificar una de las siguientes estrategias de asignación para las instancias de spot:

**Precio de capacidad optimizada** (recomendado)  
La flota identifica los grupos con la mayor disponibilidad de capacidad para la cantidad de instancias que se van a iniciar. Esto significa que solicitaremos instancias de spot de los grupos que consideremos que tienen menos probabilidades de interrupción a corto plazo. A continuación, la flota solicita instancias de spot con el precio más bajo de estos grupos.  
La estrategia de asignación del **precio de capacidad optimizada** es la mejor opción para la mayoría de las cargas de trabajo de spot, como las aplicaciones en contenedores sin estado, los microservicios, las aplicaciones web, los trabajos de datos y análisis y el procesamiento por lotes.  
Si utiliza la AWS CLI, el nombre del parámetro es `price-capacity-optimized` para la flota de EC2 y `priceCapacityOptimized` para la flota de spot.

**Capacidad optimizada**  
La flota identifica los grupos con la mayor disponibilidad de capacidad para la cantidad de instancias que se van a iniciar. Esto significa que solicitaremos instancias de spot de los grupos que consideremos que tienen menos probabilidades de interrupción a corto plazo.  
Con las instancias de spot, los precios cambian lentamente con el paso del tiempo en función de las tendencias a largo plazo de la oferta y la demanda, pero la capacidad fluctúa en tiempo real. La estrategia de **capacidad optimizada** inicia instancias de spot de forma automática en los grupos con mayor disponibilidad, mediante el análisis de los datos de capacidad en tiempo real y la predicción de cuáles son los que tienen una mayor disponibilidad. Esto funciona bien para las cargas de trabajo que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo, como integración continua (CI) prolongada, representación de imágenes y medios, aprendizaje profundo y computación de alto rendimiento (HPC) que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo. Al ofrecer la posibilidad de experimentar menos interrupciones, la estrategia de **capacidad optimizada** puede reducir el costo total de la carga de trabajo.  
Como alternativa, puede utilizar la estrategia de asignación de **capacidad optimizada priorizada** con un parámetro de prioridad para ordenar los tipos de instancias de la prioridad más alta a la más baja. Puede establecer la misma prioridad para diferentes tipos de instancia. La flota optimizará primero la capacidad, pero respetará las prioridades de tipo de instancias sobre la base del mejor esfuerzo (por ejemplo, si el respeto de las prioridades no afecta significativamente la capacidad de la flota para aprovisionar la capacidad óptima). Esta es una buena opción para cargas de trabajo en las que se debe minimizar la posibilidad de interrupción y también importa la preferencia por ciertos tipos de instancias. Tenga en cuenta que cuando establece la prioridad para los tipos de instancia para su capacidad de spot, la misma prioridad también se aplica a las instancias bajo demanda si la estrategia de asignación bajo demanda se establece en **priorizada**. Para la flota de spot, el uso de prioridades solo se admite si la flota utiliza una plantilla de inicialización.   
Si utiliza la AWS CLI, los nombres de los parámetros son `capacity-optimized` y `capacity-optimized-prioritized` para la flota de EC2 `capacityOptimized` y `capacityOptimizedPrioritized` para la flota de spot.

**Diversificada**  
Las instancias de spot se distribuyen en todos los grupos de capacidad de spot. Si utiliza la AWS CLI, el nombre del parámetro es `diversified` tanto para la flota de EC2 como para la flota de spot.

**El precio más bajo** (no recomendado)  
No recomendamos la estrategia de asignación del **precio más bajo** porque presenta el mayor riesgo de interrupción para las instancias de spot.
Las instancias de spot provienen del grupo con el precio más bajo que tiene capacidad disponible. Cuando se utiliza la AWS CLI, esta es la estrategia predeterminada. Sin embargo, recomendamos que, para anular el valor predeterminado, especifique la estrategia de asignación de **capacidad de precio optimizada**.  
Con la estrategia del precio más bajo si el grupo con el precio más bajo no tiene capacidad disponible, las instancias de spot provienen del siguiente grupo con el precio más bajo que tenga capacidad disponible. Si un grupo se queda sin capacidad antes de cubrir la capacidad deseada, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que se logre la capacidad deseada, es posible que reciba instancias de spot de varios grupos.  
Dado que esta estrategia solo tiene en cuenta el precio de la instancia y no la disponibilidad de capacidad, podría generar tasas de interrupción elevadas.  
La estrategia de asignación del precio más bajo solo está disponible cuando se utiliza la AWS CLI. El nombre del parámetro es `lowest-price` para la flota de EC2 y `lowestPrice` para la flota de spot.

**Número de grupos que se van a utilizar**  
El número de grupos de spot en los que asignar la capacidad de spot de destino. Solo es válido cuando la estrategia de asignación se ha establecido en el **precio más bajo**. La flota selecciona los grupos de spot con el precio más bajo y asigna la capacidad de spot objetivo de manera uniforme entre los grupos de spot que especifique.  
Tenga en cuenta que la flota intentará obtener instancias de spot del número de grupos que usted especifique en la medida de lo posible. Si un grupo se queda sin capacidad de spot antes de cubrir su capacidad objetivo, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que la capacidad de destino se cumpla, es posible que reciba instancias de spot de una cantidad de grupos mayor al número de grupos que usted especificó. Del mismo modo, si la mayoría de los grupos no tienen capacidad de spot, es posible que reciba su capacidad de destino total de menos grupos que el número de grupos que especificó.  
Este parámetro solo está disponible cuando se especifica la estrategia de asignación del **precio más bajo** y solo cuando se utiliza la AWS CLI. El nombre del parámetro es `InstancePoolsToUseCount` para la flota de EC2 y la flota de spot.

## Estrategias de asignación para instancias bajo demanda
<a name="ec2-fleet-allocation-strategies-for-on-demand-instances"></a>

La configuración de inicialización determina todos los grupos de capacidad de spot posibles (tipos de instancias y zonas de disponibilidad) desde los que la flota de EC2 o la flota de spot pueden iniciar instancias bajo demanda. Sin embargo, al iniciar instancias, la flota utiliza la estrategia de asignación que usted especifique para seleccionar los grupos específicos entre todos sus grupos posibles.

Puede especificar una de las siguientes estrategias de asignación para las instancias bajo demanda:

**Precio más bajo**  
Las instancias bajo demanda provienen del grupo con el precio más bajo que tiene capacidad disponible. Esta es la estrategia predeterminada.  
Si el grupo con el precio más bajo no tiene capacidad disponible, las instancias bajo demanda provienen del siguiente grupo con el precio más bajo que tenga capacidad disponible.  
Si un grupo se queda sin capacidad antes de cubrir la capacidad deseada, la flota continuará completando la solicitud al extraer capacidad del siguiente grupo con el precio más bajo. Para garantizar que se logre la capacidad deseada, es posible que reciba instancias bajo demanda de varios grupos.

**Priorizada**  
La flota utiliza la prioridad que ha asignado a cada invalidación de la plantilla de inicialización e inicia primero la prioridad más alta de los tipos de instancia. Esta estrategia no se puede usar con la selección del tipo de instancia basada en atributos. Para ver un ejemplo de cómo utilizar esta estrategia de asignación, consulte [Priorizar tipos de instancias para la capacidad bajo demanda](#ec2-fleet-on-demand-priority).

## Seleccionar la estrategia de asignación de spot apropiada
<a name="ec2-fleet-allocation-use-cases"></a>

Para poder optimizar su flota para su caso de uso, elija la estrategia de asignación de spot adecuada.

### Equilibrio del precio más bajo y la disponibilidad de capacidad
<a name="ec2-fleet-strategy-balance-price-and-capacity-availability"></a>

Para equilibrar las compensaciones entre los grupos de capacidad de spot con el precio más bajo y los grupos de capacidad de spot con la mayor disponibilidad de capacidad, se recomienda utilizar la estrategia de asignación de **capacidad de precio optimizada**. Esta estrategia toma decisiones sobre a qué grupos se van a solicitar instancias de spot en función del precio de los grupos y de la disponibilidad de capacidad de las instancias de spot de esos grupos. Esto significa que solicitaremos instancias de spot a los grupos que consideremos que tienen la menor probabilidad de interrupción a corto plazo, sin dejar de tener en cuenta el precio.

Si la flota ejecuta cargas de trabajo resistentes y sin estado, como aplicaciones en contenedores, microservicios, aplicaciones web, trabajos de datos y análisis, y procesamiento por lotes, utilice la estrategia de asignación de **capacidad de precio optimizada** para obtener ahorros de costos y disponibilidad de capacidad óptimos.

Si la flota ejecuta cargas de trabajo que pueden tener un costo mayor de interrupción asociado al reinicio del trabajo, debe implementar puntos de control para que las aplicaciones puedan reiniciarse desde ese punto en caso de que se interrumpan. Al utilizar puntos de control, la estrategia de asignación de **capacidad de precio optimizada** es una buena opción para estas cargas de trabajo, ya que asigna capacidad de los grupos con el precio más bajo y, además, ofrecen una tasa de interrupción de instancia de spot baja.

Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de **capacidad de precio optimizada**, consulte lo siguiente:
+ Fota de EC2: [Ejemplo 10: inicialización de instancias de spot en una flota price-capacity-optimized](ec2-fleet-examples.md#ec2-fleet-config11)
+ Flota de spot: [Ejemplo 11: inicialización de instancias de spot en una flota priceCapacityOptimized](spot-fleet-examples.md#fleet-config11)

### Cuando las cargas de trabajo tienen un alto costo de interrupción
<a name="ec2-fleet-strategy-capacity-optimized"></a>

Si lo desea, puede utilizar la estrategia de **capacidad optimizada** si ejecuta cargas de trabajo que utilizan tipos de instancias con precios similares o si el costo de la interrupción es tan importante que cualquier ahorro de costos es insuficiente en comparación con un aumento marginal de las interrupciones. Esta estrategia asigna capacidad de los grupos de capacidad de spot de la mayor disponibilidad que ofrecen la posibilidad de sufrir menos interrupciones, lo que puede reducir el costo total de la carga de trabajo.

Cuando se debe minimizar la posibilidad de interrupción, pero la preferencia por determinados tipos de instancia es importante, puede expresar las prioridades del grupo mediante la estrategia de asignación de **capacidad optimizada priorizada** y, luego, establecer el orden de los tipos de instancias que se utilizarán, de la prioridad más alta a la más baja.

Tenga en cuenta que cuando establece prioridades para la **capacidad optimizada priorizada**, estas también se aplican a las instancias bajo demanda si la estrategia de asignación bajo demanda se establece en **priorizada**. Tenga en cuenta que, para la flota de spot, el uso de prioridades solo se admite si la flota utiliza una plantilla de inicialización.

Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de **capacidad de precio optimizada**, consulte lo siguiente:
+ Flota de EC2: [Ejemplo 8: inicialización de instancias de spot en una flota de capacidad optimizada](ec2-fleet-examples.md#ec2-fleet-config9)
+ Flota de spot: [Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada](spot-fleet-examples.md#fleet-config9)

Para ver ejemplos de las configuraciones de JSON que utilizan la estrategia de asignación de **capacidad optimizada priorizada**, consulte lo siguiente:
+ Flota de EC2: [Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades](ec2-fleet-examples.md#ec2-fleet-config10)
+ Flota de spot: [Ejemplo 10: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades](spot-fleet-examples.md#fleet-config10)

### Cuando su carga de trabajo es flexible en el tiempo y la disponibilidad de la capacidad no es un factor
<a name="ec2-fleet-strategy-time-flexible-workload"></a>

Si su flota es pequeña o se ejecuta durante poco tiempo, puede utilizar la **capacidad de precio optimizada **para maximizar el ahorro de costos sin dejar de tener en cuenta la disponibilidad de capacidad.

### Cuando la flota es grande o se ejecuta durante mucho tiempo
<a name="ec2-fleet-strategy-large-workload-long-time"></a>

Si su flota es grande o se ejecuta durante mucho tiempo, puede mejorar su disponibilidad al distribuir las instancias de spot entre varios grupos, al usar la estrategia **diversificada**. Por ejemplo, si la flota especifica 10 grupos y una capacidad objetivo de 100 instancias, la flota inicia 10 instancias de spot en cada grupo. Si el precio de spot de un grupo sobrepasa el precio máximo de ese grupo, solo el 10 % de la flota se ve afectada. El uso de esta estrategia también consigue que su flota sea menos sensible a los aumentos en el precio de spot en cualquiera de los grupos a lo largo del tiempo. Con la estrategia **diversificada**, la flota no inicia instancias de spot; en ningún grupo con un precio de spot que sea mayor o igual que el [precio bajo demanda](https://aws.amazon.com/ec2/pricing/).

## Mantener la capacidad objetivo para las instancias de spot
<a name="ec2-fleet-maintain-fleet-capacity"></a>

Después de que las instancias de spot se terminen debido a un cambio en el precio de spot o en la capacidad disponible de un grupo de capacidad de spot, una flota de tipo `maintain` inicia las instancias de spot de reemplazo. La estrategia de asignación determina los grupos desde los que se inician las instancias de reemplazo, de la siguiente manera:
+ Si la estrategia de asignación es la **capacidad de precio optimizada**, la flota inicia instancias de reemplazo en los grupos que tienen la mayor disponibilidad de capacidad de instancia de spot, sin dejar de tener en cuenta el precio e identifica los grupos con el precio más bajo con alta disponibilidad de capacidad.
+ Si la estrategia de asignación es la **capacidad optimizada**, la flota inicia instancias de reemplazo en los grupos que tienen la mayor disponibilidad de capacidad de instancia de spot.
+ Si la estrategia de asignación es **diversificada**, la flota distribuye las instancias de spot de reemplazo entre los grupos restantes.

## Priorizar tipos de instancias para la capacidad bajo demanda
<a name="ec2-fleet-on-demand-priority"></a>

Cuando una flota de EC2 o una flota de spot intenta cubrir la capacidad bajo demanda, de forma predeterminada inicia primero el tipo de instancia con el precio más bajo. Si la estrategia de asignación bajo demanda se configura como **priorizada**, la flota aplica la prioridad para determinar qué tipo de instancia debe usar primero para cubrir la capacidad bajo demanda. La prioridad se asigna a la invalidación de la plantilla de lanzamiento y la prioridad más alta se lanza primero.

**Ejemplo: priorizar tipos de instancias**

En este ejemplo, se configuran tres invalidaciones de plantilla de inicialización, cada una de ellas con un tipo de instancia distinto.

El precio bajo demanda de los tipos de instancias varía. Los siguientes son los tipos de instancias que se utilizan en este ejemplo, presentados por orden de precio, comenzando por el tipo de instancia menos caro:
+ `m4.large`: menos caro
+ `m5.large`
+ `m5a.large`

Si no se aplica la prioridad para determinar el orden, la flota cubrirá la capacidad bajo demanda comenzando por el tipo de instancia menos caro.

No obstante, supongamos que tiene instancias reservadas `m5.large` sin usar que desea utilizar primero. Puede establecer la prioridad de la invalidación de la plantilla de lanzamiento, de forma que se utilicen los tipos de instancias conforme al orden de prioridad, de la siguiente manera:
+ `m5.large`: prioridad 1
+ `m4.large`: prioridad 2
+ `m5a.large`: prioridad 3

# Utilice el reequilibrio de capacidad en la flota de EC2 y la flota de spot para reemplazar las instancias de spot en riesgo
<a name="ec2-fleet-capacity-rebalance"></a>

Con el reequilibrio de capacidad, su flota de EC2 o su flota de spot puede mantener la capacidad de spot deseada al sustituir de forma proactiva las instancias de spot que corren el riesgo de sufrir interrupciones. Cuando una instancia de spot corre un riesgo elevado de interrupción, Amazon EC2 envía una [recomendación de reequilibrio](rebalance-recommendations.md). Si el reequilibrio de capacidad está activado, la recomendación de reequilibrio desencadena el inicio de una nueva instancia de spot antes de que se interrumpa la instancia en riesgo.

El reequilibrio de capacidad lo ayuda a mantener la disponibilidad de la carga de trabajo al aumentar de manera proactiva su flota con nuevas instancias de spot antes de que las instancias en ejecución sean interrumpidas por Amazon EC2.

**Para configurar la flota de EC2 para utilizar el reequilibrio de capacidad para iniciar una instancia de spot de reemplazo**  
Utilice el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) y los parámetros relevantes en la estructura `MaintenanceStrategies`. Para ver un ejemplo de configuración de JSON, consulte [Ejemplo 7: configuración del reequilibrio de capacidad para iniciar instancias de spot de reemplazo](ec2-fleet-examples.md#ec2-fleet-config8).

**Para configurar la flota de spot para utilizar el reequilibrio de capacidad para iniciar una instancia de spot de reemplazo**  
Puede utilizar la consola Amazon EC2 o la AWS CLI para configurar el reequilibrio de capacidad.

(Consola) Al crear la flota de spot, seleccione la casilla de verificación **Reequilibrio de capacidad**. Para obtener más información, consulte el paso 6.d. en [Creación de una solicitud de flota de spot con los parámetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) utilice el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) y los parámetros relevantes de la estructura `SpotMaintenanceStrategies`. Para ver un ejemplo de configuración de JSON, consulte [Ejemplo 8: configurar el reequilibrio de capacidad para iniciar instancias de spot de reemplazo](spot-fleet-examples.md#fleet-config8).

**Topics**
+ [

## Limitaciones
](#ec2-fleet-capacity-rebalance-limitations)
+ [

## Opciones de configuración
](#ec2-fleet-capacity-rebalance-config-options)
+ [

## Consideraciones
](#ec2-fleet-capacity-rebalance-considerations)

## Limitaciones
<a name="ec2-fleet-capacity-rebalance-limitations"></a>
+ El reequilibrio de capacidad solo está disponible para flotas de tipo `maintain`.
+ Mientras la flota se encuentra en ejecución, no puede modificar la configuración de reequilibrio de capacidad. Para cambiar el ajuste de reequilibrio de capacidad, debe eliminar la flota y crear una nueva.

## Opciones de configuración
<a name="ec2-fleet-capacity-rebalance-config-options"></a>

La `ReplacementStrategy` para la flota de EC2 y la flota de spot admite los siguientes dos valores:

`launch-before-terminate`  
Amazon EC2 termina las instancias de spot que reciben una notificación de reequilibrio después de que se inician nuevas instancias de spot de reemplazo. Cuando especifica `launch-before-terminate`, también debe especificar un valor para `termination-delay`. Después de que se inician las nuevas instancias de reemplazo, Amazon EC2 espera la duración de `termination-delay` y, luego, termina las instancias antiguas. En `termination-delay`, el mínimo es de 120 segundos (2 minutos) y el máximo es de 7200 segundos (2 horas).  
Le recomendamos que utilice `launch-before-terminate` solo si puede predecir cuánto tiempo tardarán en completarse los procedimientos de cierre de instancias. Esto garantizará que las instancias anteriores terminen solo después de que se hayan completado los procedimientos de cierre. Tenga en cuenta que Amazon EC2 puede interrumpir las instancias antiguas con una advertencia de dos minutos antes del `termination-delay`.  
Se recomienda no utilizar la estrategia de asignación `lowest-price` (flota de EC2) o `lowestPrice` (flota de spot) en combinación con `launch-before-terminate` para evitar tener instancias de spot de reemplazo que también tengan un riesgo elevado de interrupción.

`launch`  
Amazon EC2 inicia instancias de spot de reemplazo cuando se emite una notificación de reequilibrio para las instancias de spot existentes. Amazon EC2 no termina las instancias que reciben una notificación de reequilibrio. Puede terminar las instancias anteriores o puede dejarlas en ejecución. Se cobrará por todas las instancias mientras se ejecutan.

## Consideraciones
<a name="ec2-fleet-capacity-rebalance-considerations"></a>

Si configura una flota de EC2 o una flota de spot para el reequilibrio de capacidad, tenga en cuenta lo siguiente:

**Proporcione tantos grupos de capacidades de spot en la solicitud como sea posible**  
Configure su flota para utilizar varios tipos de instancia y zonas de disponibilidad. Esto proporciona la flexibilidad para iniciar instancias de spot en varios grupos de capacidad de spot. Para obtener más información, consulte [Sea flexible con respecto a los tipos de instancia y las zonas de disponibilidad](spot-best-practices.md#be-instance-type-flexible).

**Evite un riesgo elevado de interrupción de instancias de spot de reemplazo**  
Para evitar un alto riesgo de interrupción, recomendamos la estrategia de asignación de `capacity-optimized` o `capacity-optimized-prioritized`. Estas estrategias garantizan que las instancias de spot de reemplazo se inicien en los grupos de capacidad de spot más óptimos; por lo tanto, es menos probable que se interrumpan en un futuro cercano. Para obtener más información, consulte [Utilice la estrategia de asignación optimizada para capacidad y precio](spot-best-practices.md#use-capacity-optimized-allocation-strategy).  
Si utiliza la estrategia de asignación `lowest-price`, sus instancias de spot de reemplazo podrían correr un riesgo elevado de interrupción. Esto se debe a que Amazon EC2 siempre iniciará instancias en el grupo de menor precio que tiene capacidad disponible en ese momento, incluso si es probable que las instancias de spot de reemplazo se interrumpan poco después de iniciarse.

**Amazon EC2 solo iniciará una nueva instancia si la disponibilidad es la misma o superior**  
Uno de los objetivos del reequilibrio de la capacidad es mejorar la disponibilidad de una instancia de spot. Si una instancia de spot existente recibe una recomendación de reequilibrio, Amazon EC2 solo iniciará una nueva instancia si esta ofrece la misma disponibilidad o una mejor que la instancia existente. Si el riesgo de interrupción de una nueva instancia es peor que el de la instancia existente, Amazon EC2 no iniciará ninguna instancia nueva. Sin embargo, Amazon EC2 seguirá evaluando los grupos de capacidad de spot e iniciará una nueva instancia si la disponibilidad mejora.  
Existe la posibilidad de que la instancia existente se interrumpa sin que Amazon EC2 lance una nueva instancia de forma proactiva. Cuando esto ocurre, Amazon EC2 intentará iniciar una nueva instancia, independientemente de si la nueva instancia tiene un alto riesgo de interrupción.

**El reequilibrio de la capacidad no aumenta la tasa de interrupciones de las instancias de spot**  
Cuando habilita el reequilibrio de capacidad, no aumenta la [tasa de interrupciones de las instancias de spot](spot-interruptions.md) (el número de instancias de spot que se reclaman cuando Amazon EC2 necesita recuperar la capacidad). Sin embargo, si el reequilibrio de capacidad detecta que una instancia está en riesgo de interrupción, Amazon EC2 intentará iniciar inmediatamente una nueva instancia. El resultado es que se pueden reemplazar más instancias en lugar de esperar a que Amazon EC2 lance una nueva después de que se interrumpa la instancia en riesgo.  
Si bien es posible que se reemplacen más instancias con el reequilibrio de capacidad habilitado, se beneficia de ser proactivo en lugar de reactivo al disponer de más tiempo para tomar medidas antes de que se interrumpan las instancias. Con un [aviso de interrupción de instancias de spot](spot-instance-termination-notices.md), normalmente solo dispone de dos minutos para apagar correctamente la instancia. Con el reequilibrio de capacidad que inicia una nueva instancia por adelantado, le da a los procesos existentes una mejor oportunidad de completarse en la instancia en riesgo, puede iniciar los procedimientos de apagado de la instancia y evitar que se programen nuevos trabajos en la instancia en riesgo. También puede empezar a preparar la instancia recién iniciada para que se haga cargo de la aplicación. Con el reemplazo proactivo del reequilibrio de capacidad, se beneficia de una continuidad estable.  
Como ejemplo teórico para demostrar los riesgos y beneficios del uso del reequilibrio de capacidad, considere el siguiente escenario:  
+ 14:00 h: se recibe una recomendación de reequilibrio para la instancia A y Amazon EC2 comienza inmediatamente a intentar iniciar una instancia B de reemplazo, lo que le da tiempo para iniciar los procedimientos de apagado.\$1
+ 14:30 h: se recibe una recomendación de reequilibrio para la instancia B, sustituida por la instancia C, lo que le da tiempo para iniciar los procedimientos de apagado.\$1
+ 14:32 h: si el reequilibrio de capacidad no estuviera habilitado y si se hubiera recibido un aviso de interrupción de la instancia de spot a las 14:32 para la instancia A, solo habría tenido hasta dos minutos para actuar, pero la instancia A habría estado funcionando hasta ese momento.
\$1 Si se especifica `launch-before-terminate`, Amazon EC2 terminará la instancia en riesgo después de que se conecte la instancia de reemplazo.

**Amazon EC2 puede iniciar nuevas instancias de spot de reemplazo hasta que la capacidad utilizada sea el doble de la capacidad de destino**  
Cuando una flota se configura para el reequilibrio de capacidad, la flota intenta iniciar una nueva instancia de spot de reemplazo para cada instancia de spot que recibe una recomendación de reequilibrio. Después de que una instancia de spot reciba una recomendación de reequilibrio, ya no se cuenta como parte de la capacidad cumplida. Según la estrategia de reemplazo, Amazon EC2 termina la instancia después de un retraso de terminación preconfigurado o la deja en ejecución. Esto le da la oportunidad de realizar [acciones de reequilibrio](rebalance-recommendations.md#rebalancing-actions) en la instancia.  
Si su flota alcanza el doble de su capacidad de destino, deja de iniciar nuevas instancias de reemplazo, incluso si las propias instancias de reemplazo reciben una recomendación de reequilibrio.  
Por ejemplo, puede crear una flota de spot con una capacidad objetivo de 100 instancias de spot. Todas las instancias de spot reciben una recomendación de reequilibrio, que provoca que Amazon EC2 lance 100 instancias de spot de reemplazo. Esto eleva el número de instancias de spot utilizadas a 200, lo que es el doble de la capacidad de destino. Algunas de las instancias de reemplazo reciben una recomendación de reequilibrio, pero no se inician más instancias de reemplazo porque la flota no puede exceder el doble de su capacidad objetivo.   
Tenga en cuenta que se le cobrarán todas las instancias mientras se ejecutan.

**Se recomienda configurar la flota para que termine las instancias de spot que reciban una recomendación de reequilibrio**  
Si configura su flota para el reequilibrio de capacidad, se recomienda que elija `launch-before-terminate` con un retraso de terminación adecuado solo si puede predecir cuánto tardarán en completarse los procedimientos de cierre de la instancia. Esto garantizará que las instancias anteriores terminen solo después de que se hayan completado los procedimientos de cierre.  
Si elige terminar las instancias recomendadas para reequilibrio, le recomendamos que monitoree la señal de recomendación de reequilibrio recibida por las instancias de spot de la flota. Mediante la supervisión de la señal, puede realizar rápidamente [acciones de reequilibrio](rebalance-recommendations.md#rebalancing-actions) en las instancias afectadas antes de que Amazon EC2 las interrumpa y luego puede finalizarlas manualmente. Si no termina las instancias, continuará pagándolas mientras se ejecuten. Amazon EC2 no termina automáticamente las instancias que reciben una recomendación de reequilibrio.  
Puede configurar notificaciones mediante Amazon EventBridge o metadatos de instancia. Para obtener más información, consulte [Monitorear las señales de recomendación de reequilibrio](rebalance-recommendations.md#monitor-rebalance-recommendations).

**La flota no cuenta las instancias que reciben una recomendación de reequilibrio al calcular la capacidad utilizada durante el reducir o escalar horizontalmente**.  
Si la flota está configurada el para reequilibrio de capacidad y cambia la capacidad objetivo, ya sea para reducir horizontalmente o escalar horizontalmente, la flota no cuenta las instancias marcadas para el reequilibrio como parte de la capacidad utilizada, de la siguiente manera:  
+ Reducción horizontal: si reduce la capacidad de destino deseada, Amazon EC2 termina las instancias que no están marcadas para reequilibrar hasta que se alcance la capacidad deseada. Las instancias marcadas para el reequilibrio no se cuentan para la capacidad utilizada.

  Por ejemplo, puede crear una flota con una capacidad objetivo de 100 instancias de spot. 10 instancias reciben una recomendación de reequilibrio, por lo que Amazon EC2 inicia 10 nuevas instancias de reemplazo, lo que da como resultado una capacidad utilizada de 110 instancias. A continuación, se reduce la capacidad de destino a 50 (reducción horizontal), pero la capacidad utilizada es en realidad de 60 instancias porque Amazon EC2 no termina las 10 instancias marcadas para el reequilibrio. Debe terminar manualmente estas instancias o puede dejarlas en ejecución.
+ Escalado horizontal: si aumenta la capacidad de destino deseada, Amazon EC2 lanza nuevas instancias hasta que se alcance la capacidad deseada. Las instancias marcadas para el reequilibrio no se cuentan para la capacidad utilizada. 

  Por ejemplo, puede crear una flota con una capacidad objetivo de 100 instancias de spot. 10 instancias reciben una recomendación de reequilibrio, por lo que la flota inicia 10 nuevas instancias de reemplazo, lo que da como resultado una capacidad utilizada de 110 instancias. A continuación, aumenta la capacidad de destino a 200 (escalado ascendente), pero la capacidad utilizada es en realidad 210 instancias porque las 10 instancias marcadas para el reequilibrio no son contadas por la flota como parte de la capacidad de destino. Debe terminar manualmente estas instancias o puede dejarlas en ejecución.

# Utilice las reservas de capacidad para reservar capacidad bajo demanda en la flota de EC2
<a name="ec2-fleet-on-demand-capacity-reservations"></a>

Con las reservas de capacidad bajo demanda, puede reservar capacidad informática para sus instancias bajo demanda en una zona de disponibilidad específica para cualquier duración. Puede configurar una flota de EC2 para que utilice primero las reservas de capacidad al iniciar instancias bajo demanda.

Las reservas de capacidad bajo demanda solo están disponibles para la flota de EC2 con el tipo de solicitud establecido para `instant`.

Las reservas de capacidad se establecen en `open` o `targeted`. La flota de EC2 puede iniciar instancias bajo demanda en las reservas de capacidad `open` o `targeted` de la siguiente manera:
+ Si una reserva de capacidad es `open`, las instancias bajo demanda que tengan atributos coincidentes se ejecutarán de forma automática en la capacidad reservada.
+ Si la reserva de capacidad es `targeted`, las instancias bajo demanda deben dirigirse específicamente a ella para ejecutarse en la capacidad reservada. Esto es útil para utilizar reservas de capacidad específicas o a fin de controlar cuándo se deben utilizar reservas de capacidad específicas. 

Si utiliza reservas de capacidad `targeted` en su flota de EC2, debe haber suficientes reservas de capacidad para cumplir con la capacidad de destino bajo demanda; de lo contrario, falla la inicialización. Para evitar un error de inicialización, agregue las reservas de capacidad `targeted` a un grupo de recursos y, a continuación, establezca el grupo de recursos como destino. El grupo de recursos no necesita tener suficientes reservas de capacidad. Si se queda sin reservas de capacidad antes de que se cumpla la capacidad de destino bajo demanda, la flota puede iniciar la capacidad de destino restante a la capacidad bajo demanda normal.

**Para utilizar las reservas de capacidad con flota de EC2**

1. Establezca el tipo de flota en `instant`. No puede utilizar reservas de capacidad para flotas de otros tipos.

1. Establezca la estrategia de uso para las reservas de capacidad en `use-capacity-reservations-first`.

1. En la plantilla de inicialización, en **Reserva de capacidad**, elija **Abrir** o **Destino por grupo**. Si elige **Destino por grupo**, especifique el ID del grupo de recursos de las reservas de capacidad.

Cuando la flota intenta satisfacer la capacidad bajo demanda, si encuentra que varios grupos de instancias tienen reservas de capacidad coincidentes sin utilizar, determina los grupos en los que se iniciarán las instancias bajo demanda en función de la estrategia de asignación bajo demanda (`lowest-price` o `prioritized`).

**Recursos relacionados**
+ Para obtener ejemplos de la CLI de cómo configurar una flota para que utilice reservas de capacidad a fin de satisfacer la capacidad bajo demanda, consulte [Configuraciones de CLI de ejemplo para la flota de EC2](ec2-fleet-examples.md), específicamente, los ejemplos 5, 6 y 7.
+ Para ver un tutorial que explica los pasos para crear reservas de capacidad, utilizarlas en su flota y ver cuántas reservas de capacidad quedan, consulte [Tutorial: Configuración de la flota de EC2 para lanzar instancias bajo demanda con reservas de capacidad específicas](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md)
+ Para obtener información sobre cómo configurar las reservas de capacidad, consulte [Cómo reservar capacidad de computación con las reservas de capacidad bajo demanda de EC2](ec2-capacity-reservations.md) y las [Preguntas frecuentes sobre reservas de capacidad bajo demanda](https://aws.amazon.com/ec2/faqs/#On-Demand_Capacity_Reservation).

# Trabajar con la flota de EC2
<a name="manage-ec2-fleet"></a>

Para comenzar a utilizar una flota de EC2, cree una solicitud que incluya la capacidad objetivo total, la capacidad bajo demanda, la capacidad de spot y una plantilla de inicialización que especifique la configuración de las instancias en la flota. Si lo desea, puede especificar parámetros adicionales o dejar que la flota utilice los valores predeterminados. También puede etiquetar la solicitud de flota, así como sus instancias y volúmenes, al crear la flota.

La flota inicia las instancias bajo demanda cuando hay capacidad disponible e inicia las instancias de spot cuando el precio máximo que ha indicado es superior al precio de spot y hay capacidad disponible.

Una vez iniciada la flota, puede describir la solicitud de flota, las instancias en la flota y cualquier evento de la flota. También puede asignar etiquetas adicionales según sea necesario.

Si necesita cambiar algún parámetro de la flota, como la capacidad total de destino, puede modificar la flota, siempre que se haya configurado para que mantenga la capacidad. Una vez que se ha enviado la solicitud, no se puede modificar la capacidad de una solicitud puntual.

La solicitud de la flota permanece activa hasta que caduca o hasta que usted la elimina. Cuando elimina la solicitud de flota, puede terminar las instancias o dejarlas en ejecución. Si decide dejarlas en ejecución, las instancias bajo demanda se ejecutan hasta que usted las termina y las instancias de spot hasta que se interrumpen o usted las termina.

**Topics**
+ [

# Estados de una solicitud de flota de EC2
](EC2-fleet-states.md)
+ [

# Requisitos previos de flota de EC2
](ec2-fleet-prerequisites.md)
+ [

# Crear una flota de EC2
](create-ec2-fleet.md)
+ [

# Etiquete una solicitud de flota de EC2 nueva o existente y las instancias y los volúmenes que inicia.
](tag-ec2-fleet.md)
+ [

# Describir una flota de EC2, sus instancias y sus eventos
](describe-ec2-fleet.md)
+ [

# Modificar una flota de EC2
](modify-ec2-fleet.md)
+ [

# Eliminar una solicitud de flota de EC2 y las instancias en la flota
](delete-fleet.md)

# Estados de una solicitud de flota de EC2
<a name="EC2-fleet-states"></a>

Una solicitud de flota de EC2 puede tener uno de varios estados y cada estado indica una etapa diferente del ciclo de vida de la solicitud y su gestión de las instancias.

Una solicitud de flota de EC2 puede tener uno de los siguientes estados:

`submitted`  
La solicitud de flota de EC2 está en evaluación y Amazon EC2 se prepara para lanzar el número de instancias de destino. Si una solicitud excede los límites de la flota, se elimina inmediatamente.

`active`  
La solicitud de flota de EC2 se ha validado y Amazon EC2 está intentando mantener el número de destino de instancias de ejecución. La solicitud permanece en este estado hasta que se modifica o se elimina.

`modifying`  
La solicitud de flota de EC2 se está modificando. La solicitud permanece en este estado hasta que la modificación se procesa completamente o se elimina la solicitud. Sólo un tipo de flota `maintain` se puede modificar. Este estado no se aplica a otros tipos de solicitud.

`deleted_running`  
La solicitud de flota de EC2 se ha eliminado y no lanza instancias de spot adicionales. Las instancias existentes de la flota continúan en ejecución hasta que se interrumpen o se terminan manualmente. La solicitud permanece en este estado hasta que se interrumpan o terminen todas las instancias. Solo una flota de EC2 de tipo `maintain` o `request` puede tener instancias de ejecución después de que la solicitud de flota de EC2 sea eliminada. No se admite una flota `instant` eliminada con instancias en ejecución. Este estado no se aplica a `instant` las flotas.

`deleted_terminating`  
La solicitud de flota de EC2 se ha eliminado y sus instancias están en proceso de terminación. La solicitud permanece en este estado hasta que se terminen todas las instancias.

`deleted`  
La flota de EC2 solicitud se ha eliminado y no tiene ninguna instancia en ejecución. La solicitud se elimina dos días después de que todas sus instancias se hayan terminado.

# Requisitos previos de flota de EC2
<a name="ec2-fleet-prerequisites"></a>

**Topics**
+ [

## Plantilla de inicialización
](#ec2-fleet-prerequisites-launch-template)
+ [

## Rol vinculado al servicio de flota de EC2
](#ec2-fleet-service-linked-role)
+ [

## Conceder acceso a las claves administradas por el cliente para su uso con AMI cifradas e instantáneas de EBS
](#ec2-fleet-service-linked-roles-access-to-cmks)
+ [

## Permisos para los usuarios de la flota de EC2
](#ec2-fleet-iam-users)

## Plantilla de inicialización
<a name="ec2-fleet-prerequisites-launch-template"></a>

Una plantilla de inicialización especifica la información de configuración acerca de las instancias que se van a iniciar, como el tipo de instancia y la zona de disponibilidad. Para obtener más información acerca de las plantillas de inicialización, consulte [Almacenamiento de parámetros de inicialización de instancias en plantillas de inicialización de Amazon EC2](ec2-launch-templates.md).

## Rol vinculado al servicio de flota de EC2
<a name="ec2-fleet-service-linked-role"></a>

El rol de `AWSServiceRoleForEC2Fleet` concede permiso a la flota de EC2 para solicitar, iniciar, terminar y etiquetar instancias en su nombre. Amazon EC2 utiliza este rol vinculado al servicio para completar las siguientes acciones:
+ `ec2:RunInstances`: para iniciar las instancias.
+ `ec2:RequestSpotInstances`: solicitar instancias de spot.
+ `ec2:TerminateInstances`: para terminar las instancias.
+ `ec2:DescribeImages`: para describir imágenes de máquina de Amazon (AMI) para las instancias.
+ `ec2:DescribeInstanceStatus`: para describir el estado de las instancias.
+ `ec2:DescribeSubnets`: para describir las subredes de las instancias.
+ `ec2:CreateTags`: agregar etiquetas a la flota de EC2, instancias y volúmenes.

Asegúrese de que este rol exista antes de utilizar la AWS CLI o una API para crear una flota de EC2.

**nota**  
Una flota de EC2 `instant` no requiere este rol.

Para crear el rol, use la consola de IAM como se indica a continuación.

**Para crear el rol AWSServiceRoleForEC2Fleet para la flota de EC2**

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 **Creación de rol**.

1. En la página **Seleccionar entidad de confianza**, haga lo siguiente:

   1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**.

   1. En la sección **Caso de uso**, en **Servicio o caso de uso**, elija **EC2 - Flota**.
**sugerencia**  
Asegúrese de elegir **EC2 - Flota**. Si elige **EC2**, el caso de uso **EC2 - Flota** no aparece en la lista de **Caso de uso**. El caso de uso **EC2 - Flota** creará automáticamente una política con los permisos de IAM necesarios y sugerirá **AWSServiceRoleForEC2Fleet** como nombre del rol.

   1. Elija **Siguiente**.

1. En la página **Agregar permisos**, elija **Siguiente**.

1. En la página **Nombrar, revisar y crear**, elija **Crear rol**.

Si ya no tiene que utilizar la flota de EC2, le recomendamos que elimine el rol **AWSServiceRoleForEC2Fleet**. Después de haber eliminado este rol de la cuenta, podrá volver a crearlo si crea otra flota.

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

## Conceder acceso a las claves administradas por el cliente para su uso con AMI cifradas e instantáneas de EBS
<a name="ec2-fleet-service-linked-roles-access-to-cmks"></a>

Si especifica una [AMI cifrada](AMIEncryption.md) o una instantánea de Amazon EBS cifrada en la flota de EC2 y utiliza una clave de AWS KMS para el cifrado, debe conceder permiso al rol **AWSServiceRoleForEC2Fleet** para que utilice la clave administrada por el cliente a fin de que Amazon EC2 pueda iniciar instancias 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 AWSServiceRoleForEC2Fleet para que use la clave administrada por el cliente**
+ Utilice 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 **AWSServiceRoleForEC2Fleet**.

  ```
  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/AWSServiceRoleForEC2Fleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## Permisos para los usuarios de la flota de EC2
<a name="ec2-fleet-iam-users"></a>

Si los usuarios van a crear o administrar una flota de EC2, asegúrese de concederles los permisos necesarios.

**Creación de una política para la flota de EC2**

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

1. En el panel de navegación, seleccione **Políticas**.

1. Elija **Crear política**.

1. En la página **Crear política**, elija la pestaña **JSON**, sustituya el texto por lo siguiente y, a continuación, elija **Revisar política**.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:*"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                 "iam:ListRoles",
                 "iam:PassRole",
                 "iam:ListInstanceProfiles"
               ],
               "Resource":"arn:aws:iam::123456789012:role/DevTeam*"
           }
       ]
   }
   ```

------

   `ec2:*` concede a un usuario permiso para llamar a todas las acciones de la API de Amazon EC2. Para limitar las acciones del usuario a unas determinadas acciones de la API de Amazon EC2, especifique dichas acciones.

   El usuario debe tener permiso para llamar a la acción `iam:ListRoles` para enumerar los roles de IAM existentes, a la acción `iam:PassRole` para especificar el rol de la flota de EC2 y a la acción `iam:ListInstanceProfiles` para enumerar los perfiles de instancia existentes.

   (Opcional) Para permitir a un usuario crear roles o perfiles de instancia mediante la consola de IAM, también tiene que agregar las siguientes acciones a la política:
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. En la página **Revisar política**, escriba un nombre y descripción de política y, a continuación, elija **Crear política**.

1. 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*.

# Crear una flota de EC2
<a name="create-ec2-fleet"></a>

Para crear una flota de EC2, defina la configuración de la flota en un archivo JSON y haga referencia al archivo con el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html). En el archivo JSON, especifique la capacidad objetivo total de la flota, las capacidades objetivo separadas para instancias de spot e instancias bajo demanda y una plantilla de inicialización que defina la configuración de las instancias de la flota, como una AMI, un tipo de instancia, una subred o una zona de disponibilidad, y uno o varios grupos de seguridad. Si lo desea, puede especificar configuraciones adicionales, como parámetros para anular la configuración de la plantilla de inicialización, estrategias de asignación para seleccionar instancias de spot e instancias bajo demanda de los grupos de capacidad de EC2 y el importe máximo que está dispuesto a pagar por la flota. Para obtener más información, consulte [Opciones de configuración para la flota de EC2 o la flota de spot](ec2-fleet-configuration-strategies.md).

La flota de EC2 inicia instancias bajo demanda cuando hay capacidad disponible e inicia instancias de spot cuando el precio máximo es superior al precio de spot y hay capacidad disponible.

Si la flota incluye instancias de spot y es de tipo `maintain`, Amazon EC2 intentará mantener la capacidad objetivo de la flota cuando las instancias de spot se interrumpan.

## Limitaciones de la flota de EC2
<a name="EC2-fleet-limitations"></a>

Las limitaciones siguientes son aplicables a la flota de EC2:
+ La creación de un flota de EC2 solo está disponible a través de la [API de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html), [SDK de AWS](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html#API_CreateFleet_SeeAlso) y [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html).
+ Una solicitud de flota de EC2 no puede abarcar varias regiones de AWS. Es preciso crear una flota de EC2 independiente para cada región.
+ Una solicitud de flota de EC2 no puede abarcar diferentes subredes de la misma zona de disponibilidad.

## Crear una flota de EC2
<a name="create-ec2-fleet-procedure"></a>

Para iniciar una flota de instancias con la flota de EC2, solo necesita especificar los siguientes parámetros en su solicitud de flota, y la flota utilizará los valores predeterminados para los demás parámetros:
+ `LaunchTemplateId` o `LaunchTemplateName`: especifica la plantilla de inicialización que se va a utilizar (que contiene los parámetros de las instancias que se van a iniciar, como el tipo de instancia y la zona de disponibilidad)
+ `TotalTargetCapacity`: especifica la capacidad objetivo total de la flota
+ `DefaultTargetCapacityType`: especifica si la opción de compra predeterminada es bajo demanda o spot

Para reemplazar los parámetros especificados en la plantilla de inicialización, puede especificar una o varias anulaciones. Cada anulación puede variar según el tipo de instancia, la zona de disponibilidad, la subred y el precio máximo. Además, pueden incluir una capacidad ponderada distinta. Como alternativa para especificar el tipo de instancia, puede especificar los atributos que debe tener una instancia y Amazon EC2 identificará todos los tipos de instancias con esos atributos. Para obtener más información, consulte [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).

Para las flotas de EC2 de tipo `instant`, puede especificar un parámetro Systems Manager en lugar del ID de AMI. Puede especificar el parámetro Systems Manager en la plantilla de anulación o de inicialización. Para obtener más información, consulte [Uso de un parámetro de Systems Manager en lugar de un ID de AMI](create-launch-template.md#use-an-ssm-parameter-instead-of-an-ami-id).

Puede especificar los parámetros de flota en un archivo JSON. Para obtener información sobre todos los parámetros posibles que puede especificar, consulte [Ver todas las opciones de configuración de la flota de EC2](#ec2-fleet-cli-skeleton). 

Para obtener ejemplos de configuración de flota, consulte [Configuraciones de CLI de ejemplo para la flota de EC2](ec2-fleet-examples.md).

En este momento, no hay compatibilidad con la consola para crear una flota de EC2.

**Para crear una flota de EC2**  
Utilice el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para crear la flota y especificar el archivo JSON que contiene los parámetros de configuración de flota.

```
aws ec2 create-fleet --cli-input-json file://file_name.json
```

A continuación se muestra un resultado de ejemplo para una flota de tipo `request` o `maintain`.

```
{
    "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE"
}
```

A continuación se muestra un resultado de ejemplo para una flota de tipo `instant` que lanzó la capacidad de destino.

```
{
  "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
  "Errors": [],
  "Instances": [
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c5.large",
          "AvailabilityZone": "us-east-1a"
        }
      },
      "Lifecycle": "on-demand",
      "InstanceIds": [
        "i-1234567890abcdef0",
        "i-9876543210abcdef9" 
      ],
      "InstanceType": "c5.large",
      "Platform": null
    },
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c4.large",
          "AvailabilityZone": "us-east-1a"
        }
      },
      "Lifecycle": "on-demand",
      "InstanceIds": [
        "i-5678901234abcdef0",
        "i-5432109876abcdef9" 
      ]
  ]
}
```

A continuación se muestra un resultado de ejemplo para una flota de tipo `instant` que lanzó parte de la capacidad de destino con errores para instancias que no se habían iniciado.

```
{
  "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
  "Errors": [
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c4.xlarge",
          "AvailabilityZone": "us-east-1a",
        }
      },
      "Lifecycle": "on-demand",
      "ErrorCode": "InsufficientInstanceCapacity",
      "ErrorMessage": ""
    },
  ],
  "Instances": [
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c5.large",
          "AvailabilityZone": "us-east-1a"
        }
      },
      "Lifecycle": "on-demand",
      "InstanceIds": [
        "i-1234567890abcdef0",
        "i-9876543210abcdef9" 
      ]
  ]
}
```

A continuación se muestra un resultado de ejemplo para una flota de tipo `instant` que lanzó sin instancias.

```
{
  "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE",
  "Errors": [
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c4.xlarge",
          "AvailabilityZone": "us-east-1a",
        }
      },
      "Lifecycle": "on-demand",
      "ErrorCode": "InsufficientCapacity",
      "ErrorMessage": ""
    },
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c5.large",
          "AvailabilityZone": "us-east-1a",
        }
      },
      "Lifecycle": "on-demand",
      "ErrorCode": "InsufficientCapacity",
      "ErrorMessage": ""
    },
  ],
  "Instances": []
}
```

## Crear una flota de EC2 que sustituya instancias de spot en mal estado
<a name="ec2-fleet-health-checks"></a>

La flota de EC2 comprueba el estado de las instancias de la flota cada dos minutos. El estado de una instancia puede ser `healthy` o `unhealthy`.

La flota de EC2 determina el estado de una instancia a partir de las comprobaciones de estado que proporciona Amazon EC2. Una instancia se determina como `unhealthy` cuando el estado de la comprobación del estado de la instancia o de la comprobación del estado del sistema es `impaired` durante tres comprobaciones de estado de mantenimiento consecutivas. Para obtener más información, consulte [Comprobaciones de estado de las instancias de Amazon EC2](monitoring-system-instance-status-check.md).

Puede configurar la flota para sustituir la Instancias de spot en mal estado. Después de establecer `ReplaceUnhealthyInstances` en `true`, se sustituye una instancia de spot cuando se informa como `unhealthy`. La flota puede ver reducida su capacidad de destino durante unos minutos mientras se sustituye una instancia de spot en mal estado.

**Requisitos**
+ El reemplazo por comprobación de estado se admite solo para flotas de EC2 que mantengan una capacidad de destino (flotas de tipo `maintain`) y no para flotas de tipo `request` o `instant`.
+ Solo se admite el reemplazo por comprobación de estado para instancias de spot. Esta función no es compatible con instancias bajo demanda.
+ Solo puede configurar una flota de EC2 para sustituir instancias en mal estado al crearla.
+ Los usuarios pueden utilizar el reemplazo por comprobación de estado únicamente si tienen permiso para llamar a la acción `ec2:DescribeInstanceStatus`.

**Para configurar una flota de EC2 que sustituya instancias de spot en mal estado**

1. Utilice la información en [Crear una flota de EC2](#create-ec2-fleet-procedure) para crear una flota de EC2.

1. Para configurar la flota que sustituya instancias de spot en mal estado, en el archivo JSON, para `ReplaceUnhealthyInstances`, especifique `true`. 

## Ver todas las opciones de configuración de la flota de EC2
<a name="ec2-fleet-cli-skeleton"></a>

Para ver la lista completa de los parámetros de configuración de la flota de EC2 puede generar un archivo JSON. Para obtener una descripción de cada parámetro, consulte [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

**Para generar un archivo JSON con todos los parámetros de la flota de EC2 posibles**  
Ejecute el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) (AWS CLI) y el parámetro `--generate-cli-skeleton` para generar un archivo JSON de flota de EC2 y dirija el resultado a un archivo para guardarlo.

```
aws ec2 create-fleet \
    --generate-cli-skeleton input > ec2createfleet.json
```

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

```
{
    "DryRun": true,
    "ClientToken": "",
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized",
        "MaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch"
            }
        },
        "InstanceInterruptionBehavior": "hibernate",
        "InstancePoolsToUseCount": 0,
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 0,
        "MaxTotalPrice": ""
    },
    "OnDemandOptions": {
        "AllocationStrategy": "prioritized",
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        },
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 0,
        "MaxTotalPrice": ""
    },
    "ExcessCapacityTerminationPolicy": "termination",
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "",
                "LaunchTemplateName": "",
                "Version": ""
            },
            "Overrides": [
                {
                    "InstanceType": "r5.metal",
                    "MaxPrice": "",
                    "SubnetId": "",
                    "AvailabilityZone": "",
                    "WeightedCapacity": 0.0,
                    "Priority": 0.0,
                    "Placement": {
                        "AvailabilityZone": "",
                        "Affinity": "",
                        "GroupName": "",
                        "PartitionNumber": 0,
                        "HostId": "",
                        "Tenancy": "dedicated",
                        "SpreadDomain": "",
                        "HostResourceGroupArn": ""
                    },
                    "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": "included",
                        "BurstablePerformance": "required",
                        "RequireHibernateSupport": true,
                        "NetworkInterfaceCount": {
                            "Min": 0,
                            "Max": 0
                        },
                        "LocalStorage": "excluded",
                        "LocalStorageTypes": [
                            "ssd"
                        ],
                        "TotalLocalStorageGB": {
                            "Min": 0.0,
                            "Max": 0.0
                        },
                        "BaselineEbsBandwidthMbps": {
                            "Min": 0,
                            "Max": 0
                        },
                        "AcceleratorTypes": [
                            "inference"
                        ],
                        "AcceleratorCount": {
                            "Min": 0,
                            "Max": 0
                        },
                        "AcceleratorManufacturers": [
                            "amd"
                        ],
                        "AcceleratorNames": [
                            "a100"
                        ],
                        "AcceleratorTotalMemoryMiB": {
                            "Min": 0,
                            "Max": 0
                        }
                    }
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 0,
        "OnDemandTargetCapacity": 0,
        "SpotTargetCapacity": 0,
        "DefaultTargetCapacityType": "on-demand",
        "TargetCapacityUnitType": "memory-mib"
    },
    "TerminateInstancesWithExpiration": true,
    "Type": "instant",
    "ValidFrom": "1970-01-01T00:00:00",
    "ValidUntil": "1970-01-01T00:00:00",
    "ReplaceUnhealthyInstances": true,
    "TagSpecifications": [
        {
            "ResourceType": "fleet",
            "Tags": [
                {
                    "Key": "",
                    "Value": ""
                }
            ]
        }
    ],
    "Context": ""
}
```

# Etiquete una solicitud de flota de EC2 nueva o existente y las instancias y los volúmenes que inicia.
<a name="tag-ec2-fleet"></a>

Para ayudarlo a categorizar y a administrar las solicitudes de flota de EC2 y las instancias y los volúmenes que inicia, puede etiquetarlas con metadatos personalizados. Puede asignar una etiqueta a una solicitud de flota de EC2 cuando la cree o posteriormente. Del mismo modo, puede asignar una etiqueta a las instancias y los volúmenes cuando la flota los inicie o después.

Al etiquetar una solicitud de flota, las instancias y volúmenes iniciados por la flota no se etiquetan automáticamente. Tiene que etiquetar explícitamente las instancias y volúmenes iniciados por la flota. Puede elegir asignar etiquetas solo a la solicitud de flota, solo a las instancias iniciadas por la flota, solo a los volúmenes asociados a las instancias iniciadas por la flota o a todas ellas.

**nota**  
Para los tipos de flota `instant`, puede etiquetar volúmenes asociados a instancias bajo demanda e instancias de spot. Para los tipos de flota `request` o `maintain`, solo puede etiquetar volúmenes asociados a instancias bajo demanda.

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

**Requisito previo**

Otorgue al usuario el permiso para etiquetar recursos. Para obtener más información, consulte [Ejemplo: Etiquetar recursos](ExamplePolicies_EC2.md#iam-example-taggingresources).

**Para conceder a un usuario el permiso para etiquetar recursos**  
Cree una política de IAM que incluya lo siguiente:
+ La acción `ec2:CreateTags`. Esto concede al usuario permiso para crear etiquetas.
+ La acción `ec2:CreateFleet`. De esta forma, se concede al usuario permiso para crear una solicitud de flota de EC2.
+ Para `Resource`, le recomendamos que especifique `"*"`. Esto permite a los usuarios etiquetar todos los tipos de recursos.

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

**Para etiquetar una nueva solicitud de flota de EC2**  
Para etiquetar una solicitud de flota de EC2 al crearla, especifique el par clave-valor en el [archivo JSON](create-ec2-fleet.md#ec2-fleet-cli-skeleton) utilizado para crear la flota. El valor para `ResourceType` debe ser `fleet`. Si especifica otro valor, la solicitud de flota devuelve un error.

**Para etiquetar instancias y volúmenes iniciados por una flota de EC2**  
Para etiquetar instancias y volúmenes cuando los inicia la flota, especifique las etiquetas en la [plantilla de inicialización](create-launch-template.md) a la que se hace referencia en la solicitud de flota de EC2.

**nota**  
No puede etiquetar volúmenes asociados a los instancias de spot que se inicien por un tipo de flota `request` o `maintain`.

**Para etiquetar una solicitud, una instancia y un volumen de flota de EC2 existentes**  
Utilice el comando [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) para etiquetar recursos existentes.

```
aws ec2 create-tags \
    --resources fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE i-1234567890abcdef0 vol-1234567890EXAMPLE \
    --tags Key=purpose,Value=test
```

# Describir una flota de EC2, sus instancias y sus eventos
<a name="describe-ec2-fleet"></a>

Puede describir la configuración de la flota de EC2, sus instancias en la flota y el historial de eventos de dicha flota.

**Topics**
+ [

## Describir la flota de EC2
](#describe-all-ec2-fleets)
+ [

## Descripción de todas las instancias en la flota de EC2
](#describe-instances-in-ec2-fleet)
+ [

## Descripción del historial de eventos de la flota de EC2
](#describe-ec2-fleet-event-history)

## Describir la flota de EC2
<a name="describe-all-ec2-fleets"></a>

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

**Para describir la flota de EC2**  
Utilice el comando [describe-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleets.html).

```
aws ec2 describe-fleets \
    --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

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

```
{
    "Fleets": [
        {
            "ActivityStatus": "fulfilled",
            "CreateTime": "2022-02-09T03:35:52+00:00",
            "FleetId": "fleet-364457cd-3a7a-4ed9-83d0-7b63e51bb1b7",
            "FleetState": "active",
            "ExcessCapacityTerminationPolicy": "termination",
            "FulfilledCapacity": 2.0,
            "FulfilledOnDemandCapacity": 0.0,
            "LaunchTemplateConfigs": [
                {
                    "LaunchTemplateSpecification": {
                        "LaunchTemplateName": "my-launch-template",
                        "Version": "$Latest"
                    }
                }
            ],
            "TargetCapacitySpecification": {
                "TotalTargetCapacity": 2,
                "OnDemandTargetCapacity": 0,
                "SpotTargetCapacity": 2,
                "DefaultTargetCapacityType": "spot"
            },
            "TerminateInstancesWithExpiration": false,
            "Type": "maintain",
            "ReplaceUnhealthyInstances": false,
            "SpotOptions": {
                "AllocationStrategy": "capacity-optimized",
                "InstanceInterruptionBehavior": "terminate"
            },
            "OnDemandOptions": {
                "AllocationStrategy": "lowestPrice"
            }
        }
    ]
}
```

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

**Para describir la flota de EC2**  
Utilice el cmdlet [Get-EC2FleetList](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetList.html).

```
Get-EC2FleetList `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

------

## Descripción de todas las instancias en la flota de EC2
<a name="describe-instances-in-ec2-fleet"></a>

La lista devuelta de instancias en ejecución se actualiza periódicamente y podría no estar actualizada.

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

**Para describir las instancias para la flota de EC2 especificada**  
Utilice el comando [describe-fleet-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleet-instances.html).

```
aws ec2 describe-fleet-instances \
    --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

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

```
{
    "ActiveInstances": [
        {
            "InstanceId": "i-09cd595998cb3765e", 
            "InstanceHealth": "healthy", 
            "InstanceType": "m4.large", 
            "SpotInstanceRequestId": "sir-86k84j6p"
        }, 
        {
            "InstanceId": "i-09cf95167ca219f17", 
            "InstanceHealth": "healthy", 
            "InstanceType": "m4.large", 
            "SpotInstanceRequestId": "sir-dvxi7fsm"
        }
    ], 
    "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
}
```

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

**Para describir las instancias para la flota de EC2 especificada**  
Utilice el cmdlet [Get-EC2FleetInstanceList](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetInstanceList.html).

```
Get-EC2FleetInstanceList `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

------

## Descripción del historial de eventos de la flota de EC2
<a name="describe-ec2-fleet-event-history"></a>

Para obtener más información sobre los eventos en el historial de eventos, consulte [Flota de EC2 tipos de eventos](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-event-types).

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

**Para describir los eventos para la flota de EC2 especificada**  
Utilice el comando [describe-fleet-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleet-history.html).

```
aws ec2 describe-fleet-history \
    --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --start-time 2020-06-01T00:00:00Z
```

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

```
{
    "HistoryRecords": [
        {
            "EventInformation": {
                "EventSubType": "submitted"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:05.000Z"
        },
        {
            "EventInformation": {
                "EventSubType": "active"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:15.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "t2.small, ami-07c8bc5c1ce9598c3, ...",
                "EventSubType": "progress"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "{\"instanceType\":\"t2.small\", ...}",
                "EventSubType": "launched",
                "InstanceId": "i-083a1c446e66085d2"
            },
            "EventType": "instanceChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "{\"instanceType\":\"t2.small\", ...}",
                "EventSubType": "launched",
                "InstanceId": "i-090db02406cc3c2d6"
            },
            "EventType": "instanceChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        }
    ], 
    "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", 
    "LastEvaluatedTime": "1970-01-01T00:00:00.000Z", 
    "StartTime": "2020-06-01T00:00:00.000Z"
}
```

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

**Para describir los eventos para la flota de EC2 especificada**  
Utilice el cmdlet [Get-EC2FleetHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetHistory.html).

```
Get-EC2FleetHistory `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE `
    -UtcStartTime 2020-06-01T00:00:00Z
```

------

# Modificar una flota de EC2
<a name="modify-ec2-fleet"></a>

Puede modificar la capacidad de objetivo total, la capacidad puntual y la capacidad bajo demanda de una flota de EC2. También puede modificar si las instancias en ejecución deben terminarse si se reduce la capacidad de objetivo total por debajo del tamaño actual de la flota.

## Consideraciones
<a name="modify-ec2-fleet-considerations"></a>

Tenga en cuenta lo siguiente cuando modifique una flota de EC2:
+ **Tipo de flota**: solo se puede modificar una flota de EC2 que sea de tipo `maintain`. No se puede modificar una flota de EC2 de tipo `request` o `instant`.
+ **Parámetros de la flota**: puede modificar los siguientes parámetros de una flota de EC2:
  + `target-capacity-specification`: aumenta o reduce la capacidad de objetivo para:
    + `TotalTargetCapacity`
    + `OnDemandTargetCapacity`
    + `SpotTargetCapacity`
  + `excess-capacity-termination-policy`: permite indicar si las instancias de ejecución deberán terminarse si se reduce la capacidad de destino total de la flota de EC2 por debajo del tamaño actual de la flota. Los valores válidos son:
    + `no-termination`
    + `termination`
+ **Comportamiento de la flota cuando se aumenta la capacidad de objetivo total**: cuando se aumenta la capacidad de objetivo total, la flota de EC2 lanza instancias adicionales de acuerdo con la opción de compra de la instancia especificada para `DefaultTargetCapacityType`, que pueden ser instancias bajo demanda o instancias de spot, y de acuerdo con la [estrategia de asignación](ec2-fleet-allocation-strategy.md) especificada.
+ **Comportamiento de la flota cuando se reduce la capacidad de objetivo de spot**: cuando se reduce la capacidad de objetivo de spot, la flota de EC2 elimina todas las solicitudes abiertas que superen la nueva capacidad de objetivo. Puede solicitar que la flota termine las instancias de spot hasta que el tamaño de la flota alcance la nueva capacidad objetivo. Cuando una flota de EC2 termina una instancia de spot porque se ha reducido la capacidad de destino, la instancia recibe un aviso de interrupción de instancia de spot.

  Las instancias se seleccionan para su terminación en función de la estrategia de asignación:
  + `capacity-optimized`: finaliza las instancias de los grupos con la menor capacidad disponible.
  + `price-capacity-optimized`: utiliza una combinación de precio y capacidad disponible: finaliza las instancias de los grupos con la menor capacidad disponible y que son las más caras entre estos grupos.
  + `diversified`: finaliza las instancias en todos los grupos.
  + `lowest-price`:finaliza las instancias de los grupos con precios más altos.

  Como alternativa, puede solicitar que la flota de EC2 mantenga la flota en su tamaño actual, pero que no reemplace las instancias de spot que se interrumpan o que finalice manualmente.
+ **Estado de la flota**: puede modificar una flota de EC2 que se encuentre en el estado `submitted` o `active`. Al modificar una flota, esta pasa al estado `modifying`.

## Comandos para modificar una flota de EC2
<a name="modify-ec2-fleet-commands"></a>

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

**Para modificar la capacidad objetivo total de una flota de EC2**  
Utilice el comando [modify-fleet.](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-fleet.html)

```
aws ec2 modify-fleet \
    --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity-specification TotalTargetCapacity=20
```

Si va a reducir la capacidad de destino, pero quiere conservar la flota con su tamaño actual, puede modificar el ejemplo anterior como se indica a continuación.

```
aws ec2 modify-fleet \
    --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity-specification TotalTargetCapacity=10 \
    --excess-capacity-termination-policy no-termination
```

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

**Para modificar la capacidad objetivo total de una flota de EC2**  
Utilice el cmdlet [Edit-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Fleet.html).

```
Edit-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacitySpecification_TotalTargetCapacity 20
```

Si va a reducir la capacidad de destino, pero quiere conservar la flota con su tamaño actual, puede modificar el ejemplo anterior como se indica a continuación.

```
Edit-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -ExcessCapacityTerminationPolicy "NoTermination"
```

------

# Eliminar una solicitud de flota de EC2 y las instancias en la flota
<a name="delete-fleet"></a>

Si ya no necesita una flota de EC2, puede eliminarla. Tras eliminar una solicitud de flota, todas las solicitudes de spot asociadas con la flota se cancelan, de forma que no se iniciará ninguna instancia de spot nueva.

Al eliminar una solicitud de flota de EC2, debe especificar si también desea terminar todas sus instancias. Esto incluye tanto las instancias bajo demanda como las instancias de spot. Para las flotas `instant`, la flota de EC2 debe terminar las instancias cuando se elimine la flota. No se admite una flota `instant` eliminada con instancias en ejecución.

**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 especifica que se terminen las instancias cuando se elimine la solicitud de flota, esta pasará al estado `deleted_terminating`. En caso contrario, pasará al estado `deleted_running` y las instancias seguirán ejecutándose hasta que se interrumpan o usted las termine manualmente.

**Restricciones**
+ Puede eliminar hasta 25 flotas de tipo `instant` en una sola solicitud.
+ Puede eliminar hasta 100 flotas de tipo `maintain` o `request` en una sola solicitud.
+ Puede eliminar hasta 125 flotas en una sola solicitud, siempre que no supere la cuota para cada tipo de flota, como se especificó anteriormente.
+ Si supera la cantidad especificada de flotas para eliminar, no se eliminan las flotas.
+ No se admite una flota `instant` eliminada con instancias en ejecución. Al eliminar una flota de `instant`, Amazon EC2 termina automáticamente todas sus instancias. En el caso de las flotas `instant` con más de 1000 instancias, se podría producir un error en la solicitud de eliminación. Si la flota tiene más de 1000 instancias, primero termine la mayoría de las instancias manualmente y deje 1000 o menos. A continuación, elimine la flota y las instancias restantes se terminarán automáticamente.

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

**Para eliminar una solicitud de flota de EC2 y terminar sus instancias**  
Utilice el comando [delete-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-fleets.html) con la opción `--terminate-instances`.

```
aws ec2 delete-fleets \
    --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --terminate-instances
```

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

```
{
    "UnsuccessfulFleetDeletions": [], 
    "SuccessfulFleetDeletions": [
        {
            "CurrentFleetState": "deleted_terminating", 
            "PreviousFleetState": "active", 
            "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
        }
    ]
}
```

**Para eliminar una solicitud de flota de EC2 sin terminar sus instancias**  
Modifique el ejemplo anterior con la opción `--no-terminate-instances` en su lugar. Tenga en cuenta que `--no-terminate-instances` no es compatible con las flotas `instant`.

```
aws ec2 delete-fleets \
    --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --no-terminate-instances
```

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

```
{
    "UnsuccessfulFleetDeletions": [], 
    "SuccessfulFleetDeletions": [
        {
            "CurrentFleetState": "deleted_running", 
            "PreviousFleetState": "active", 
            "FleetId": "fleet-4b8aaae8-dfb5-436d-a4c6-3dafa4c6b7dcEXAMPLE"
        }
    ]
}
```

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

**Para eliminar una solicitud de flota de EC2 y terminar sus instancias**  
Utilice el cmdlet [Remove-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Fleet.html) con el parámetro `-TerminateInstance`.

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**Para eliminar una solicitud de flota de EC2 sin terminar sus instancias**  
Modifique el ejemplo anterior cambiando el valor del parámetro `-TerminateInstance`.

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

## Solucionar problemas cuando una flota no se puede eliminar
<a name="troubleshoot-delete-fleet"></a>

Si una solicitud de flota de EC2 no se puede eliminar, `UnsuccessfulFleetDeletions` devuelve el ID de la solicitud de flota de EC2, un código de error y un mensaje de error en el resultado.

Los códigos de error son:
+ `ExceededInstantFleetNumForDeletion`
+ `fleetIdDoesNotExist`
+ `fleetIdMalformed`
+ `fleetNotInDeletableState`
+ `NoTerminateInstancesNotSupported`
+ `UnauthorizedOperation`
+ `unexpectedError`

**Solucionar `ExceededInstantFleetNumForDeletion`**  
Si intenta eliminar más de 25 flotas `instant` en una sola solicitud, se devuelve el error `ExceededInstantFleetNumForDeletion`. A continuación, se muestra un ejemplo del resultado de este error.

```
{
    "UnsuccessfulFleetDeletions": [
     {
          "FleetId": " fleet-5d130460-0c26-bfd9-2c32-0100a098f625",
          "Error": {
                  "Message": "Can’t delete more than 25 instant fleets in a single request.",
                  "Code": "ExceededInstantFleetNumForDeletion"
           }
     },
     {
           "FleetId": "fleet-9a941b23-0286-5bf4-2430-03a029a07e31",
           "Error": {
                  "Message": "Can’t delete more than 25 instant fleets in a single request.",
                  "Code": "ExceededInstantFleetNumForDeletion"
            }
     }
     .
     .
     .
     ],
     "SuccessfulFleetDeletions": []
}
```

**Solucionar `NoTerminateInstancesNotSupported`**  
Si especifica que las instancias de una flota `instant` no deben finalizarse al eliminar la flota, se devuelve el error `NoTerminateInstancesNotSupported`. `--no-terminate-instances` no es compatible con las flotas `instant`. A continuación, se muestra un ejemplo del resultado de este error.

```
{
      "UnsuccessfulFleetDeletions": [
            {
                  "FleetId": "fleet-5d130460-0c26-bfd9-2c32-0100a098f625",
                  "Error": {
                          "Message": "NoTerminateInstances option is not supported for instant fleet",
                          "Code": "NoTerminateInstancesNotSupported"
                   }
            }
       ],
       "SuccessfulFleetDeletions": []
}
```

**Solucionar `UnauthorizedOperation`**  
Si no tiene permiso para terminar instancias, aparece el error `UnauthorizedOperation` al eliminar una flota que debe terminar sus instancias. La siguiente es la respuesta al error.

```
<Response><Errors><Error><Code>UnauthorizedOperation</Code><Message>You are not authorized to perform this 
operation. Encoded authorization failure message: VvuncIxj7Z_CPGNYXWqnuFV-YjByeAU66Q9752NtQ-I3-qnDLWs6JLFd
KnSMMiq5s6cGqjjPtEDpsnGHzzyHasFHOaRYJpaDVravoW25azn6KNkUQQlFwhJyujt2dtNCdduJfrqcFYAjlEiRMkfDHt7N63SKlweKUl
BHturzDK6A560Y2nDSUiMmAB1y9UNtqaZJ9SNe5sNxKMqZaqKtjRbk02RZu5V2vn9VMk6fm2aMVHbY9JhLvGypLcMUjtJ76H9ytg2zRlje
VPiU5v2s-UgZ7h0p2yth6ysUdhlONg6dBYu8_y_HtEI54invCj4CoK0qawqzMNe6rcmCQHvtCxtXsbkgyaEbcwmrm2m01-EMhekLFZeJLr
DtYOpYcEl4_nWFX1wtQDCnNNCmxnJZAoJvb3VMDYpDTsxjQv1PxODZuqWHs23YXWVywzgnLtHeRf2o4lUhGBw17mXsS07k7XAfdPMP_brO
PT9vrHtQiILor5VVTsjSPWg7edj__1rsnXhwPSu8gI48ZLRGrPQqFq0RmKO_QIE8N8s6NWzCK4yoX-9gDcheurOGpkprPIC9YPGMLK9tug
</Message></Error></Errors><RequestID>89b1215c-7814-40ae-a8db-41761f43f2b0</RequestID></Response>
```

Para resolver el error, debe agregar la acción `ec2:TerminateInstances` a la política de IAM, como se muestra en el siguiente ejemplo.

# Trabajar con flota de spot
<a name="work-with-spot-fleets"></a>

Para comenzar a utilizar una flota de spot, cree una solicitud que incluya la capacidad de destino total para las instancias de spot, una parte opcional bajo demanda, y especifique manualmente una AMI y un par de claves, o especifique una plantilla de inicialización que incluya la configuración de las instancias de la flota. Si lo desea, puede especificar parámetros adicionales o dejar que la flota utilice los valores predeterminados. También puede etiquetar la solicitud de flota, así como sus instancias y volúmenes, al crear la flota.

La flota inicia las instancias bajo demanda cuando hay capacidad disponible e inicia las instancias de spot cuando el precio máximo que ha indicado es superior al precio de spot y hay capacidad disponible.

Una vez iniciada la flota, puede describir la solicitud de flota, las instancias en la flota y cualquier evento de la flota. También puede asignar etiquetas adicionales según sea necesario.

Si necesita cambiar algún parámetro de la flota, como la capacidad total de destino, puede modificar la flota, siempre que se haya configurado para que mantenga la capacidad. Una vez que se ha enviado la solicitud, no se puede modificar la capacidad de una solicitud puntual.

La solicitud de la flota permanece activa hasta que caduca o hasta que usted la cancela (elimina). Cuando cancela la solicitud de flota, puede terminar las instancias o dejarlas en ejecución. Si decide dejarlas en ejecución, las instancias bajo demanda se ejecutan hasta que usted las termina y las instancias de spot hasta que se interrumpen o usted las termina.

**Topics**
+ [

# Estados de una solicitud de flota de spot
](spot-fleet-states.md)
+ [

# Permisos de flota de spot
](spot-fleet-prerequisites.md)
+ [

# Crear una flota de spot
](create-spot-fleet.md)
+ [

# Etiquetado de una solicitud de flota de spot nueva o existente y las instancias y los volúmenes que inicia
](tag-spot-fleet.md)
+ [

# Descripción de una solicitud de flota de spot, sus instancias y el historial de eventos
](manage-spot-fleet.md)
+ [

# Modificación de una solicitud de flota de spot
](modify-spot-fleet.md)
+ [

# Cancelación (eliminación) de una solicitud de flota de spot
](cancel-spot-fleet.md)
+ [

# Descripción del escalado automático para las flotas de spot
](spot-fleet-automatic-scaling.md)

# Estados de una solicitud de flota de spot
<a name="spot-fleet-states"></a>

Una solicitud de flota de spot puede tener uno de varios estados y cada estado indica una etapa diferente del ciclo de vida de la solicitud y su administración de las instancias.

Una solicitud de flota de spot puede tener uno de los siguientes estados:

`submitted`  
Se está evaluando la solicitud de la flota de spot y Amazon EC2 se está preparando para iniciar el número de instancias de destino. Si una solicitud excede las cuotas de la flota de spot, se cancela inmediatamente.

`active`  
La flota de spot se validó y Amazon EC2 intenta mantener el número de destino de instancias de spot en ejecución. La solicitud permanece en este estado hasta que se modifica o se cancela.

`modifying`  
Se está modificando la solicitud de la flota de spot. La solicitud permanece en este estado hasta que la modificación se procese completamente o se cancele la solicitud. Sólo un tipo de flota `maintain` se puede modificar. Este estado no se aplica a un tipo de flota de `request` puntual.

`cancelled_running`  
La flota de spot se cancela (elimina) y no inicia instancias de spot adicionales. Las instancias existentes de la flota continúan en ejecución hasta que se interrumpen o se terminan manualmente. La solicitud permanece en este estado hasta que se interrumpan o terminen todas las instancias.

`cancelled_terminating`  
La flota de spot se cancela (elimina) y sus instancias están terminando. La solicitud permanece en este estado hasta que se terminen todas las instancias.

`cancelled`  
La flota de spot se ha cancelado (eliminado) y no tiene ninguna instancia en ejecución. La solicitud se elimina dos días después de que todas sus instancias se hayan terminado.

# Permisos de flota de spot
<a name="spot-fleet-prerequisites"></a>

Si los usuarios van a crear o administrar una flota de spot, tiene que concederles los permisos necesarios.

Si utiliza la consola de Amazon EC2 para crear una flota de spot, se crean dos roles vinculados a servicios denominados `AWSServiceRoleForEC2SpotFleet` y `AWSServiceRoleForEC2Spot` y un rol denominado `aws-ec2-spot-fleet-tagging-role` que otorgan a la flota de spot los permisos para solicitar, iniciar, terminar y etiquetar recursos en su nombre. Si utiliza la AWS CLI o una API, debe asegurarse de que existen estos roles.

Siga las instrucciones siguientes para conceder los permisos necesarios y crear los roles.

**Topics**
+ [

## Concesión de permisos a los usuarios para la flota de spot
](#spot-fleet-iam-users)
+ [

## Rol vinculado a servicios de flota de spot
](#service-linked-roles-spot-fleet-requests)
+ [

## Rol vinculado a un servicio para instancias de spot
](#service-linked-roles-spot-instances)
+ [

## Rol de IAM para etiquetar una flota de spot
](#spot-fleet-service-linked-role)

## Concesión de permisos a los usuarios para la flota de spot
<a name="spot-fleet-iam-users"></a>

Si los usuarios van a crear o administrar una flota de spot, asegúrese de concederles los permisos necesarios.

**Para crear una política para la flota de spot**

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

1. En el panel de navegación, seleccione **Policies (Políticas)**, **Create policy (Crear política)**.

1. En la página **Crear política** elija **JSON** y reemplace el texto por el siguiente.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:RunInstances",
                   "ec2:CreateTags",
                   "ec2:RequestSpotFleet",
                   "ec2:ModifySpotFleetRequest",
                   "ec2:CancelSpotFleetRequests",
                   "ec2:DescribeSpotFleetRequests",
                   "ec2:DescribeSpotFleetInstances",
                   "ec2:DescribeSpotFleetRequestHistory"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::*:role/aws-ec2-spot-fleet-tagging-role"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:CreateServiceLinkedRole",
                   "iam:ListRoles",
                   "iam:ListInstanceProfiles"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   La política de ejemplo anterior concede a un usuario los permisos necesarios para la mayoría de los casos de uso de la flota de spot. Para limitar las acciones del usuario a unas determinadas acciones de la API, especifique dichas acciones de la API en su lugar.

   **API de IAM y EC2 requeridas**

   Las siguientes API deben incluirse en la política:
   + `ec2:RunInstances`: se necesita para iniciar instancias en una flota de spot
   + `ec2:CreateTags`: se necesita para etiquetar la solicitud, las instancias o los volúmenes de la flota de spot
   + `iam:PassRole`: se necesita para especificar el rol de la flota de spot
   + `iam:CreateServiceLinkedRole`: se necesita para crear el rol vinculado a servicios
   + `iam:ListRoles`: se necesita para enumerar los roles de IAM existentes
   + `iam:ListInstanceProfiles`: se necesita para enumerar los perfiles de instancia existentes
**importante**  
Si especifica un rol para el perfil de instancia de IAM en la especificación de inicialización o en la plantilla de inicialización, debe conceder al usuario el permiso para pasar el rol al servicio. Para ello, incluya `"arn:aws:iam::*:role/IamInstanceProfile-role"` como recurso en la política de IAM para la acción `iam:PassRole`. Para obtener más información, consulte [Concesión de permisos a un usuario para transferir un rol a un servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) en la *Guía del usuario de IAM*.

   **API de flota de spot**

   Agregue las siguientes acciones de API de flota de spot a su política, según sea necesario:
   + `ec2:RequestSpotFleet`
   + `ec2:ModifySpotFleetRequest`
   + `ec2:CancelSpotFleetRequests`
   + `ec2:DescribeSpotFleetRequests`
   + `ec2:DescribeSpotFleetInstances`
   + `ec2:DescribeSpotFleetRequestHistory`

   **API de IAM opcionales**

   (Opcional) Para permitir a un usuario crear roles o perfiles de instancia mediante la consola de IAM, debe agregar las siguientes acciones a la política:
   + `iam:AddRoleToInstanceProfile`
   + `iam:AttachRolePolicy`
   + `iam:CreateInstanceProfile`
   + `iam:CreateRole`
   + `iam:GetRole`
   + `iam:ListPolicies`

1. Elija **Review policy**.

1. En la página **Revisar política**, escriba un nombre y descripción de política y, a continuación, elija **Crear política**.

1. 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*.

## Rol vinculado a servicios de flota de spot
<a name="service-linked-roles-spot-fleet-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 los 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 **AWSServiceRoleForEC2SpotFleet** para iniciar y administrar instancias en su nombre.

**importante**  
Si especifica una [AMI cifrada](AMIEncryption.md) o una instantánea de Amazon EBS cifrada en su flota de spot, debe conceder permiso al rol **AWSServiceRoleForEC2SpotFleet** para utilizar la CMK a fin de que Amazon EC2 pueda iniciar instancias en su nombre. Para obtener más información, consulte [Conceder acceso a CMK para su uso con AMI cifradas e instantáneas de EBS](#spot-fleet-service-linked-roles-access-to-cmks).

### Permisos concedidos por AWSServiceRoleForEC2SpotFleet
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2SpotFleet"></a>

El rol **AWSServiceRoleForEC2SpotFleet** concede permiso a la flota de spot para solicitar, iniciar, terminar y etiquetar instancias en su nombre. Amazon EC2 utiliza este rol vinculado al servicio para completar las siguientes acciones:
+ `ec2:RequestSpotInstances`: solicitar instancias de spot
+ `ec2:RunInstances`: para iniciar las instancias
+ `ec2:TerminateInstances`: para terminar las instancias
+ `ec2:DescribeImages`: para describir imágenes de Amazon Machine (AMI) para las instancias
+ `ec2:DescribeInstanceStatus`: para describir el estado de las instancias
+ `ec2:DescribeSubnets`: describen las subredes de las instancias
+ `ec2:CreateTags`: agrega etiquetas a la solicitud, las instancias y los volúmenes de la flota de spot
+ `elasticloadbalancing:RegisterInstancesWithLoadBalancer`: para agregar las instancias especificadas al equilibrador de carga especificado
+ `elasticloadbalancing:RegisterTargets`: para registrar los destinos especificados con el grupo de destino especificado

### Creación del rol vinculado a servicio
<a name="service-linked-role-creating-for-spot-fleet"></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 **AWSServiceRoleForEC2SpotFleet** la primera vez que se crea una flota de spot con la consola. 

Si tenía una solicitud de flota de spot activa antes de octubre de 2017, cuando Amazon EC2 comenzó a respaldar este rol vinculado a un servicio, Amazon EC2 creó el rol **AWSServiceRoleForEC2SpotFleet** en su cuenta de AWS. Para obtener más información, consulte [Un nuevo rol ha aparecido en la cuenta de AWS](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 crear una flota de spot, primero debe asegurarse de que este rol existe.

**Creación del rol AWSServiceRoleForEC2SpotFleet para la flota de spot 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 **Creación de rol**.

1. En la página **Seleccionar entidad de confianza**, haga lo siguiente:

   1. En **Tipo de entidad de confianza**, elija **Servicio de AWS**.

   1. En la sección **Caso de uso**, en **Servicio o caso de uso**, elija **EC2**.

   1. En **Caso de uso**, elija **EC2 - Flota de spot**.
**nota**  
El caso de uso **EC2 - Flota de spot** creará automáticamente una política con los permisos de IAM necesarios y sugerirá **AWSEC2SpotFleetServiceRolePolicy** como nombre del rol.

   1. Elija **Siguiente**.

1. En la página **Agregar permisos**, elija **Siguiente**.

1. En la página **Nombrar, revisar y crear**, elija **Crear rol**.

**Creación del rol AWSServiceRoleForEC2SpotFleet para la flota de spot mediante 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 spotfleet.amazonaws.com
```

Si ya no tiene que utilizar la flota de spot, le recomendamos que elimine el rol **AWSServiceRoleForEC2SpotFleet**. Después de eliminar este rol de su cuenta, Amazon EC2 volverá a crearlo si solicita una flota de spot mediante la consola. Para obtener más información, consulte [Eliminación de un rol vinculado a servicios](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) en la *Guía del usuario de IAM*.

### Conceder acceso a CMK para su uso con AMI cifradas e instantáneas de EBS
<a name="spot-fleet-service-linked-roles-access-to-cmks"></a>

Si especifica una [AMI cifrada](AMIEncryption.md) o una instantánea de Amazon EBS cifrada en su solicitud de flota de spot y usa una clave administrada por el cliente para el cifrado, debe conceder permiso al rol **AWSServiceRoleForEC2SpotFleet** para que use la CMK a fin de que Amazon EC2 pueda iniciar instancias en su nombre. Para ello, debe añadir una concesión a la CMK, 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 AWSServiceRoleForEC2SpotFleet para que use la CMK**
+ Use el comando [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) para añadir una concesión a la CMK y para especificar la entidad principal (el rol vinculado a un servicio **AWSServiceRoleForEC2SpotFleet**) que recibe permiso para realizar las operaciones que permite la concesión.cin La CMK se especifica con el parámetro `key-id` y el ARN de la CMK. La entidad principal se especifica con el parámetro `grantee-principal` y el ARN del rol vinculado a un servicio **AWSServiceRoleForEC2SpotFleet**.

  ```
  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/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## Rol vinculado a un servicio para instancias de spot
<a name="service-linked-roles-spot-instances"></a>

Amazon EC2 usa el rol vinculado a un servicio denominado **AWSServiceRoleForEC2Spot** para iniciar y administrar instancias de spot en su nombre. Para obtener más información, consulte [Rol vinculado al servicio para solicitudes de instancias de spot](service-linked-roles-spot-instance-requests.md).

## Rol de IAM para etiquetar una flota de spot
<a name="spot-fleet-service-linked-role"></a>

El rol de IAM `aws-ec2-spot-fleet-tagging-role` concede el permiso de flota de spot para etiquetar la solicitud, las instancias y los volúmenes de la flota de spot. Para obtener más información, consulte [Etiquetado de una solicitud de flota de spot nueva o existente y las instancias y los volúmenes que inicia](tag-spot-fleet.md).

**importante**  
Si decide etiquetar las instancias de la flota y mantener la capacidad de destino (la solicitud de flota de spot es de tipo `maintain`), las diferencias de los permisos que se configuran para el usuario e `IamFleetRole` pueden provocar un comportamiento de etiquetado incoherente de las instancias de la flota. Si el `IamFleetRole` no incluye el permiso `CreateTags`, es posible que algunas de las instancias iniciadas por la flota no estén etiquetadas. Mientras trabajamos para corregir esta incoherencia, para asegurarnos de que todas las instancias iniciadas por la flota estén etiquetadas, recomendamos que utilice el rol `aws-ec2-spot-fleet-tagging-role` para el `IamFleetRole`. Como alternativa, para utilizar un rol existente, asocie la política administrada `AmazonEC2SpotFleetTaggingRole` de AWS al rol existente. De lo contrario, debe agregar manualmente el permiso `CreateTags` a la política existente.

**Para crear el rol de IAM para etiquetar una flota de spot**

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 **Creación de rol**.

1. En la página **Seleccionar entidad de confianza**, en **Tipo de entidad de confianza**, elija **Servicio de AWS**.

1. En **Caso de uso**, en **Casos de uso para otros servicios de AWS**, elija **EC2** y, a continuación, **EC2: etiquetado de flota de spot**.

1. Elija **Siguiente**.

1. En la página **Agregar permisos**, elija **Siguiente**.

1. En la página **Name, review, and create** (Nombrar, revisar y crear), en **Role name** (Nombre del rol), ingrese un nombre para el rol (por ejemplo, **aws-ec2-spot-fleet-tagging-role**).

1. Revise la información de la página, y luego elija **Create role** (Crear rol).

### Prevención de la sustitución confusa entre servicios
<a name="cross-service-confused-deputy-prevention"></a>

El [problema de la sustitución confusa](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) es un problema de seguridad en el que una entidad que no tiene permiso para realizar una acción puede obligar a una entidad con más privilegios a realizar la acción. Se recomienda utilizar las claves de contexto de condición global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) en la política de confianza `aws-ec2-spot-fleet-tagging-role` con el fin de limitar los permisos que la flota de spot concede a otro servicio para el recurso.

**Para agregar las claves de condición aws:SourceArn y aws:SourceAccount a la política de confianza `aws-ec2-spot-fleet-tagging-role`**

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. Busque el `aws-ec2-spot-fleet-tagging-role` que haya creado anteriormente y elija el enlace (no la casilla de verificación).

1. En **Resumen**, elija la pestaña **Relaciones de confianza**, y luego **Editar política de confianza**.

1. En la instrucción JSON, agregue un elemento `Condition` que contenga las claves de contexto de condición global `aws:SourceAccount` y `aws:SourceArn` para evitar el [problema del suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) de la siguiente manera:

   ```
   "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
   ```
**nota**  
Si el valor `aws:SourceArn` contiene el ID de la cuenta y utiliza ambas claves de contexto de condición global, el valor `aws:SourceAccount` y la cuenta del valor `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se empleen en la misma instrucción de política.

   La política de confianza final será como sigue:

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": {
       "Sid": "ConfusedDeputyPreventionExamplePolicy",
       "Effect": "Allow",
       "Principal": {
         "Service": "spotfleet.amazonaws.com"
       },
       "Action": "sts:AssumeRole",
       "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
       }
     }
   }
   ```

------

1. Elija **Actualizar política**.

La siguiente tabla proporciona los valores potenciales de `aws:SourceArn` para limitar el alcance de `aws-ec2-spot-fleet-tagging-role` en distintos grados de especificidad.


****  

| Operación de la API | Servicio llamado | Ámbito | `aws:SourceArn` | 
| --- | --- | --- | --- | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limite la capacidad de AssumeRole en aws-ec2-spot-fleet-tagging-role a las solicitudes de flota de spot en la cuenta especificada. | arn:aws:ec2:\$1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limite la capacidad de AssumeRole en aws-ec2-spot-fleet-tagging-role a las solicitudes de flota de spot en la cuenta especificada y en la región especificada. Tenga en cuenta que este rol no se podrá utilizar en otras regiones. | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-\$1 | 
| RequestSpotFleet | AWS STS (AssumeRole) | Limite la capacidad de AssumeRole en aws-ec2-spot-fleet-tagging-role solo a las acciones que afecten a la flota sfr-11111111-1111-1111-1111-111111111111. Tenga en cuenta que es posible que este rol no se pueda utilizar para otras flotas de spot. Además, este rol no se puede utilizar para iniciar ninguna nueva flota de spot a través de request-spot-fleet. | arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-11111111-1111-1111-1111-111111111111 | 

# Crear una flota de spot
<a name="create-spot-fleet"></a>

Con la Consola de administración de AWS, puede crear rápidamente una solicitud de flota de spot mediante la selección de una AMI y la capacidad de destino total que desee. Amazon EC2 configurará una flota que mejor se ajuste a sus necesidades y siga las prácticas recomendadas de spot. Como alternativa, puede modificar la configuración predeterminada.

Si desea incluir instancias bajo demanda en su flota, debe especificar una plantilla de lanzamiento en la solicitud y especificar la capacidad bajo demanda que desee.

La flota inicia instancias bajo demanda cuando hay capacidad disponible e inicia instancias de spot cuando el precio máximo es superior al precio de spot y hay capacidad disponible.

Si la flota incluye instancias de spot y es de tipo `maintain`, Amazon EC2 intentará mantener la capacidad objetivo de la flota cuando las instancias de spot se interrumpan.

**Permisos necesarios**  
Para obtener más información, consulte [Permisos de flota de spot](spot-fleet-prerequisites.md).

**Topics**
+ [

## Creación rápida de una solicitud de flota de spot
](#create-spot-fleet-quick)
+ [

## Creación de una solicitud de flota de spot con los parámetros definidos
](#create-spot-fleet-advanced)
+ [

## Creación de una flota de spot que sustituya instancias de spot en mal estado
](#spot-fleet-health-checks)

## Creación rápida de una solicitud de flota de spot
<a name="create-spot-fleet-quick"></a>

Siga los pasos que se indican a continuación para crear rápidamente una solicitud de flota de spot mediante la consola de Amazon EC2.

**Creación de una solicitud de flota de spot con la configuración recomendada**

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. Si es la primera vez que utiliza instancias de spot, aparecerá una página de bienvenida; elija **Comenzar**. De lo contrario, elija **Crear solicitud de flota de spot**.

1. En **Parámetros de inicialización**, elija **Configurar los parámetros de inicialización de forma manual**.

1. En **AMI**, elija una AMI.

1. En **Capacidad de destino**, para **Capacidad total de destino**, especifique el número de unidades que desea solicitar. Para el tipo de unidad, puede elegir **instancias**, **vCPU** o **memoria (GiB)**.

1. En **La solicitud de flota de un vistazo**, revise la configuración de la flota y elija **Inicialización**.

## Creación de una solicitud de flota de spot con los parámetros definidos
<a name="create-spot-fleet-advanced"></a>

Puede crear una flota de spot con los parámetros que defina.

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

**Creación de una solicitud de flota de spot con los parámetros definidos**

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. Si es la primera vez que utiliza instancias de spot, aparecerá una página de bienvenida; elija **Comenzar**. De lo contrario, elija **Crear solicitud de flota de spot**.

1. Para los **parámetros de inicialización**, puede configurar manualmente los parámetros de inicialización o puede utilizar una plantilla de inicialización de la siguiente manera:

   1. [Configurar manualmente] Para definir los parámetros de inicialización en la consola Amazon EC2, elija **Configurar manualmente los parámetros de inicialización** y, a continuación, haga lo siguiente:

      1. En **AMI**, elija una de las AMI básicas que proporciona AWS, o bien elija **Buscar AMI** para utilizar una AMI de nuestra comunidad de usuarios, del AWS Marketplace o una suya propia.
**nota**  
Si se anula o inhabilita una AMI especificada en los parámetros de inicialización, no se podrán iniciar nuevas instancias desde la AMI. En el caso de las flotas configuradas para mantener la capacidad de destino, esta capacidad no se mantendrá.

      1. (Opcional) En **Nombre del par de claves**, seleccione un par de claves existente o cree uno nuevo.

         [Par de claves existente] Elija el par de claves.

         [Nuevo par de claves] Elija **Crear un nuevo par de claves** para ir a la página de **Pares de claves**. Cuando haya terminado, regrese a la página **Solicitudes de spot** y actualice la lista.

      1. (Opcional) Expanda **Entradas de inicialización adicionales** y haga lo siguiente.

         1. (Opcional) Para habilitar la optimización de Amazon EBS, elija **Iniciar instancias optimizadas para EBS** en **Optimizada para EBS**.

         1. (Opcional) Para añadir almacenamiento por bloques temporal para las instancias, elija **Asociar al iniciar** para **Almacén de instancias**.

         1. (Opcional) Para agregar almacenamiento, elija **Agregar nuevo volumen** y especifique volúmenes de almacenamiento de instancias o volúmenes de Amazon EBS adicionales según el tipo de instancia.

         1. (Opcional) De forma predeterminada, se habilita la monitorización básica para sus instancias. Para habilitar el monitoreo detallado, en **Supervisión**, elija **Habilitar monitoreo detallado de CloudWatch**.

         1. (Opcional) Para ejecutar una instancia de spot dedicada, elija **Dedicada: ejecutar una instancia dedicada** en **Tenencia**.

         1. (Opcional) En **Grupos de seguridad**, elija uno o varios grupos de seguridad o cree uno nuevo.

            [Grupo de seguridad existente] Elija uno o varios grupos de seguridad.

            [Nuevo grupo de seguridad] Elija **Crear nuevo grupo de seguridad** para ir a la página **Grupos de seguridad**. Cuando haya terminado, vuelva a **Solicitudes de spot** y actualice la lista.

         1. (Opcional) Para poder acceder a las instancias desde Internet, elija **Habilitar** para **Asignar IP pública IPv4 de forma automática**.

         1. (Opcional) Para iniciar las instancias de spot con un rol de IAM, elija el rol para **Perfil de instancia de IAM**.

         1. (Opcional) Para ejecutar un script de inicio, cópielo en **Datos de usuario**.

         1. (Opcional) Para agregar una etiqueta, elija **Crear etiqueta**, ingrese la clave y el valor de la etiqueta y elija **Crear**. Repita este proceso para cada etiqueta.

            Para cada etiqueta, y a fin de etiquetar las instancias y la solicitud de flota de spot con la misma etiqueta, asegúrese de que tanto **Instancias** como **Flota** estén seleccionadas. Para solo etiquetar las instancias que inicia la flota, desmarque **Flota**. Para etiquetar solo la solicitud de flota de spot, desmarque **Instancias**.

   1. [Plantilla de inicialización] Para utilizar una configuración que haya creado en una plantilla de inicialización, elija **Utilizar una plantilla de inicialización** y, en **Plantilla de inicialización**, elija una plantilla de inicialización.
**nota**  
Si desea capacidad bajo demanda en su flota de spot, debe especificar una plantilla de inicialización.

1. Para **Detalles adicionales de la solicitud**, haga lo siguiente:

   1. Revise los detalles adicionales de la solicitud. Para realizar cambios, borre **Aplicar valores predeterminados**.

   1. (Opcional) Para **Rol de flota de IAM**, puede usar el rol predeterminado o elegir un rol distinto. Elija **Usar rol predeterminado** para utilizar el rol predeterminado tras modificar el rol.

   1. (Opcional) Para crear una solicitud que solo sea válida durante un periodo específico, edite **Solicitud válida desde** y **Solicitud válida hasta**.

   1. (Opcional) De forma predeterminada, Amazon EC2 termina las instancias de spot cuando caduca la solicitud de flota de spot. Para que sigan ejecutándose después de que caduque la solicitud, desactive **Terminar las instancias cuando caduque la solicitud**.

   1. (Opcional) Para registrar las instancias de spot con un equilibrador de carga, elija **Recibir tráfico de uno o varios balanceadores de carga** y, a continuación, seleccione uno o varios Classic Load Balancers o grupos de destino.

1. En **Capacidad de destino**, haga lo siguiente:

   1. En **Capacidad de destino total**, especifique el número de unidades que desea solicitar. Para el tipo de unidad, puede elegir **Instances** (Instancias), **vCPU** o **Memory (MiB)** (Memoria [MiB]). Para especificar una capacidad objetivo de 0 y añadir capacidad más tarde, primero elija **Mantener capacidad objetivo**.

   1. (Opcional) En **Incluir la capacidad base bajo demanda**, especifique el número de unidades bajo demanda que desea solicitar. El número debe ser menor que la **capacidad total de destino**. Amazon EC2 calcula la diferencia y la asigna a unidades de spot para la solicitud.
**importante**  
 Para especificar la capacidad bajo demanda opcional, primero debe elegir una plantilla de inicialización.

   1. (Opcional) De forma predeterminada, Amazon EC2 termina las instancias de spot cuando se interrumpen. Para mantener la capacidad de destino, seleccione **Mantener la capacidad de destino**. A continuación podrá especificar que Amazon EC2 finalice, detenga o hiberne las instancias de spot cuando se interrumpan. Para hacerlo, elija la opción correspondiente en **Comportamiento de interrupción**.
**nota**  
Si se anula o inhabilita una AMI especificada en los parámetros de inicialización, no se podrán iniciar nuevas instancias desde la AMI. En el caso de las flotas configuradas para mantener la capacidad objetivo, esta capacidad no se mantendrá.

   1. (Opcional) Para permitir que la flota de spot lance una instancia de spot de reemplazo cuando se emite una notificación de reequilibrio de instancia para una instancia de spot existente en la flota, seleccione **Reequilibrio de capacidad** y luego elija una estrategia de reemplazo de instancia. Si elige **iniciar antes de terminar**, especifique el retraso (en segundos) antes de que Amazon EC2 termine las instancias anteriores. Para obtener más información, consulte [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).

   1. (Opcional) A fin de controlar la cantidad que paga por hora por todas las instancias de spot de su flota, seleccione **Establecer el costo máximo para las instancias de spot** y luego, ingrese la cantidad total máxima que está dispuesto a pagar por hora. Cuando se alcanza la cantidad total máxima, la flota de spot detiene la inicialización de instancias de spot, incluso si no se ha alcanzado la capacidad de destino. Para obtener más información, consulte [Establezca un límite de gasto para la flota de EC2 o la flota de spot](ec2-fleet-control-spending.md).

1. En **Red**, haga lo siguiente:

   1. En **Red**, seleccione una VPC existente o cree una nueva.

      [VPC existente] Elija el VPC.

      [Nueva VPC] Elija **Crear nueva VPC** para ir a la consola de Amazon VPC. Cuando haya terminado, vuelva a esta página y actualice la lista.

   1. (Opcional) En **Zona de disponibilidad**, deje que Amazon EC2 elija las zonas de disponibilidad para las instancias de spot o especifique una o más zonas de disponibilidad.

      Si tiene más de una subred en una zona de disponibilidad, elija la subred adecuada en **Subred**. Para añadir subredes, elija **Crear subred nueva** para ir a la consola de Amazon VPC. Cuando haya terminado, vuelva a esta página y actualice la lista.

1. En **Requisitos de tipo de instancia**, puede especificar atributos de instancia y permitir que Amazon EC2 identifique los tipos de instancias óptimos con estos atributos, o puede especificar una lista de instancias. Para obtener más información, consulte [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).

   1. Si elige **Especificar los atributos de instancia que coinciden con los requisitos de computación**, especifique los atributos de instancia de la siguiente manera:

      1. En **vCPU**, ingrese el número mínimo y máximo deseado de vCPU. Para no especificar ningún límite, seleccione **sin mínimo**, **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 **sin mínimo**, **sin máximo**, o ambos.

      1. (Opcional) En **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 **Vista previa de los tipos de instancia que coinciden**. Para excluir que los tipos de instancias se utilicen en la solicitud, seleccione las instancias y, a continuación, elija **Excluir los tipos de instancias seleccionados**.

   1. Si elige **Seleccionar los tipos de instancias de forma manual**, la flota de spot proporciona una lista predeterminada de tipos de instancias. Para seleccionar más tipos de instancia, elija **Agregar tipos de instancia**, seleccione los tipos de instancias que desea utilizar en la solicitud y elija **Seleccionar**. Para eliminar tipos de instancias, seleccione los tipos de instancias y elija **Eliminar**.

1. Para la **Estrategia de asignación**, elija una estrategia de asignación de spot y una estrategia de asignación bajo demanda que se adapten a sus necesidades. Para obtener más información, consulte [Utilice estrategias de asignación para determinar cómo la flota de EC2 o la flota de spot satisfacen la capacidad de spot y bajo demanda](ec2-fleet-allocation-strategy.md).

1. En **Resumen de su solicitud de flota**, revise la configuración de la flota y realice los ajustes si es necesario.

1. (Opcional) Para descargar una copia de la configuración de inicialización para utilizarla con la AWS CLI, elija **Configuración de JSON**.

1. Cuando esté listo para iniciar su flota de spot, elija **Iniciar**.

   El tipo de solicitud de flota de spot es `fleet`. Cuando se atiende la solicitud, se añaden solicitudes de tipo `instance`, donde el estado es `active` y `fulfilled`.

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

**Creación de una solicitud de flota de spot**  
Utilice el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html).

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

Para ver archivos de configuración de ejemplo, consulte [Ejemplos de configuraciones de CLI de flota de spot](spot-fleet-examples.md).

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

**Creación de una solicitud de flota de spot**  
Utilice el cmdlet [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html). En el siguiente ejemplo se inicializan instancias de spot en una flota de capacidad optimizada.

```
Request-EC2SpotFleet `
    -SpotFleetRequestConfig_TargetCapacity 50 `
    -SpotFleetRequestConfig_AllocationStrategy "CapacityOptimized" `
    -SpotFleetRequestConfig_IamFleetRole "arn:aws:iam::123456789012:role/my-spot-fleet-role" `
    -SpotFleetRequestConfig_LaunchTemplateConfig @($launchConfig)
```

Defina la configuración de lanzamiento de la siguiente manera, configurando la plantilla de lanzamiento y anulando las propiedades que necesite. Para ver configuraciones de ejemplo, consulte [Ejemplos de configuraciones de CLI de flota de spot](spot-fleet-examples.md).

```
$lcSpec = Amazon.EC2.Model.FleetLaunchTemplateSpecification
# To do - Set FleetLaunchTemplateSpecification properties
$lcOverrides = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
# To do - Set LaunchTemplateOverrides properties
$launchConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchConfig.LaunchTemplateSpecification $lcSpec
$launchConfig.Overrides @($lcOverrides)
```

------

## Creación de una flota de spot que sustituya instancias de spot en mal estado
<a name="spot-fleet-health-checks"></a>

La flota de spot verifica el estado de las instancias de spot de la flota cada dos minutos. El estado de una instancia puede ser `healthy` o `unhealthy`.

La flota de spot determina el estado de una instancia a partir de las verificaciones de estado que proporciona Amazon EC2. Una instancia se determina como `unhealthy` cuando el estado de la comprobación del estado de la instancia o de la comprobación del estado del sistema es `impaired` durante tres comprobaciones de estado consecutivas. Para obtener más información, consulte [Comprobaciones de estado de las instancias de Amazon EC2](monitoring-system-instance-status-check.md).

Puede configurar la flota para sustituir la Instancias de spot en mal estado. Después de habilitar el reemplazo de la comprobación de estado, se reemplaza una instancia de spot cuando se notifica como `unhealthy`. La flota podría ver reducida su capacidad de destino durante algunos minutos mientras se reemplaza una instancia de spot en mal estado.

**Requisitos**
+ El reemplazo por comprobación de estado se admite solo para que Flotas de spot mantenga una capacidad de destino (flotas de tipo `maintain`), no para Flotas de spot puntual (flotas de tipo `request`).
+ Solo se admite el reemplazo por comprobación de estado para Instancias de spot. Esta función no es compatible con Instancias bajo demanda.
+ Solo puede configurar una flota de spot para reemplazar instancias en mal estado al momento de crearla.
+ Los usuarios pueden utilizar el reemplazo por comprobación de estado únicamente si tienen permiso para llamar a la acción `ec2:DescribeInstanceStatus`.

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

**Configuración de una flota de spot que sustituya instancias de spot en mal estado**

1. Siga los pasos para crear una flota de spot en [Creación de una solicitud de flota de spot con los parámetros definidos](#create-spot-fleet-advanced).

1. Para configurar la flota para reemplazar las instancias de spot en mal estado, expanda **Parámetros de lanzamiento adicionales** y, en **Comprobación de estado**, seleccione **Reemplazar instancias con errores**. Para habilitar esta opción, primero debe elegir **Mantener capacidad de destino**.

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

**Configuración de una flota de spot que sustituya instancias de spot en mal estado**  
Utilice el comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) con la propiedad `ReplaceUnhealthyInstances` de `SpotFleetRequestConfig`.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "lowestPrice",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "TargetCapacity": 10,
        "ReplaceUnhealthyInstances": true
    }
}
```

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

**Configuración de una solicitud de flota de spot que sustituya instancias de spot en mal estado**  
Utilice el cmdlet [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html) con el parámetro `-SpotFleetRequestConfig_ReplaceUnhealthyInstance`.

```
-SpotFleetRequestConfig_ReplaceUnhealthyInstance $true
```

------

# Etiquetado de una solicitud de flota de spot nueva o existente y las instancias y los volúmenes que inicia
<a name="tag-spot-fleet"></a>

Para ayudarlo a categorizar y a administrar las solicitudes de flota de spot y las instancias y los volúmenes que inicia, puede etiquetarlas con metadatos personalizados. Puede asignar una etiqueta a una solicitud de flota de spot cuando la cree o posteriormente. Del mismo modo, puede asignar una etiqueta a las instancias y los volúmenes cuando la flota los inicie o después.

Al etiquetar una solicitud de flota, las instancias y volúmenes iniciados por la flota no se etiquetan automáticamente. Tiene que etiquetar explícitamente las instancias y volúmenes iniciados por la flota. Puede elegir asignar etiquetas solo a la solicitud de flota, solo a las instancias iniciadas por la flota, solo a los volúmenes asociados a las instancias iniciadas por la flota o a todas ellas.

**nota**  
Solo puede etiquetar volúmenes asociados a instancias bajo demanda. No se pueden etiquetar los volúmenes que están asociados a instancias de spot.

Puede asignar etiquetas mediante la consola de Amazon EC2 o una herramienta de línea de comandos.

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

**Topics**
+ [

## Requisito previo
](#tag-spot-fleet-prereqs)
+ [

## Etiquetado de una flota de spot nueva y las instancias y los volúmenes que inicia
](#tag-new-spot-fleet-and-resources)
+ [

## Etiquetado de una flota de spot existente
](#tag-existing-spot-fleet)
+ [

## Visualización de etiquetas de solicitud de flota de spot
](#view-spot-fleet-tags)

## Requisito previo
<a name="tag-spot-fleet-prereqs"></a>

Otorgue al usuario el permiso para etiquetar recursos. Para obtener más información, consulte [Ejemplo: Etiquetar recursos](ExamplePolicies_EC2.md#iam-example-taggingresources).

**Para conceder a un usuario el permiso para etiquetar recursos**  
Cree una política de IAM que incluya lo siguiente:
+ La acción `ec2:CreateTags`. Esto concede al usuario permiso para crear etiquetas.
+ La acción `ec2:RequestSpotFleet`. Esto concede al usuario de IAM permiso para crear una solicitud de flota de spot.
+ Para `Resource`, debe especificar `"*"`. Esto permite a los usuarios etiquetar todos los tipos de recursos.

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

****  

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

------

**importante**  
Actualmente, no admitimos permisos de nivel de recursos para el recurso `spot-fleet-request`. Si especifica `spot-fleet-request` como recurso, obtendrá una excepción no autorizada cuando intente etiquetar la flota. En el ejemplo siguiente se muestra cómo *no* establecer la política.   

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateTags",
        "ec2:RequestSpotFleet"
    ],
    "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*"
}
```

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

## Etiquetado de una flota de spot nueva y las instancias y los volúmenes que inicia
<a name="tag-new-spot-fleet-and-resources"></a>

**Etiquetado de una solicitud nueva de flota de spot y las instancias y los volúmenes que inicia mediante la consola**

1. Siga el procedimiento indicado en [Creación de una solicitud de flota de spot con los parámetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

1. La forma de agregar una etiqueta depende de si se ha configurado manualmente la flota o se ha utilizado una plantilla de inicialización.
   + Si configuró la flota de forma manual, realice el siguiente procedimiento:

     Para agregar una etiqueta, expanda **Parámetros de lanzamiento adicionales**, elija **Crear etiqueta** y escriba la clave y el valor de la etiqueta. Repita este proceso para cada etiqueta.

     Para cada etiqueta, puede etiquetar la solicitud de flota de spot y las instancias con la misma etiqueta. Para etiquetar ambas, asegúrese de que **Intancias** y **Flota** estén seleccionadas. Para etiquetar solo la solicitud de flota de spot, desmarque **Instancias**. Para solo etiquetar las instancias que inicia la flota, desmarque **Flota**.
**nota**  
Al configurar manualmente una flota, no existe la opción de etiquetar los volúmenes. Las etiquetas de volumen solo se admiten para los volúmenes a los que se asocian Instancias bajo demanda. Al configurar manualmente una flota no puede especificar instancias bajo demanda.
   + Si ha utilizado una plantilla de inicialización, realice el siguiente procedimiento:

     Para agregar una etiqueta a la solicitud de flota, en **Etiquetas**, elija **Crear etiqueta** y escriba la clave y el valor de la etiqueta. Repita este proceso para cada etiqueta.

     Para etiquetar los recursos de su flota, debe especificar las etiquetas en la [plantilla de inicialización](create-launch-template.md).

**Para etiquetar una solicitud nueva de flota de spot y las instancias y los volúmenes que inicia mediante la AWS CLI**  
Para etiquetar una solicitud de flota de spot al momento de crearla y para etiquetar las instancias y los volúmenes cuando la flota los inicia, ajuste la configuración de la solicitud de flota de spot de la siguiente manera:

**Etiquetas de solicitud de flota de spot:**
+ Especifique las etiquetas para la solicitud de flota de spot en `SpotFleetRequestConfig`.
+ En `ResourceType`, especifique `spot-fleet-request`. Si especifica otro valor, la solicitud de flota devolverá un error.
+ Para `Tags`, especifique el par clave-valor. Puede especificar más de un par clave-valor.

**Etiquetas de instancia:**
+ Especifique las etiquetas para las instancias en `LaunchSpecifications`.
+ En `ResourceType`, especifique `instance`. Si especifica otro valor, la solicitud de flota devolverá un error.
+ Para `Tags`, especifique el par clave-valor. Puede especificar más de un par clave-valor.

  También puede especificar las etiquetas de la instancia en la [plantilla de inicialización](create-launch-template.md) a la que se hace referencia en la solicitud de flota de spot.

**Etiquetas de volumen:**
+ Especifique las etiquetas para los volúmenes de la [plantilla de inicialización](create-launch-template.md) a la que se hace referencia en la solicitud de flota de spot. No se admite el etiquetado de volumen en `LaunchSpecifications`.

En el ejemplo siguiente, la solicitud de flota de spot se etiqueta con dos etiquetas: Key=Environment y Value=Production, y Key=Cost-Center y Value=123. Las instancias iniciadas por la flota están etiquetadas con una etiqueta (que es la misma que una de las etiquetas para la solicitud de flota de spot): Key=Cost-Center y Value=123.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1,
        "TagSpecifications": [
            {
                "ResourceType": "spot-fleet-request",
                "Tags": [
                    {
                        "Key": "Environment",
                        "Value":"Production"
                    },
                    {
                        "Key": "Cost-Center",
                        "Value":"123"
                    }
                ]
            }
        ]
    }
}
```

**Para etiquetar instancias iniciadas por una flota de spot mediante la AWS CLI**  
Para etiquetar instancias cuando la flota las inicia, puede especificar las etiquetas en la [plantilla de inicialización](create-launch-template.md) a la que se hace referencia en la solicitud de flota de spot, o bien especificar las etiquetas en la configuración de la solicitud de flota de spot de la siguiente manera:
+ Especifique las etiquetas para las instancias en `LaunchSpecifications`.
+ En `ResourceType`, especifique `instance`. Si especifica otro valor, la solicitud de flota devolverá un error.
+ Para `Tags`, especifique el par clave-valor. Puede especificar más de un par clave-valor.

En el ejemplo siguiente, las instancias iniciadas por la flota se etiquetan con una etiqueta: Key=Cost-Center y Value=123.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchSpecifications": [
            {
                "ImageId": "ami-0123456789EXAMPLE",
                "InstanceType": "c4.large",
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "Cost-Center",
                                "Value": "123"
                            }
                        ]
                    }
                ]
            }
        ],
        "SpotPrice": "5",
        "TargetCapacity": 2,
        "TerminateInstancesWithExpiration": true,
        "Type": "maintain",
        "ReplaceUnhealthyInstances": true,
        "InstanceInterruptionBehavior": "terminate",
        "InstancePoolsToUseCount": 1
    }
}
```

**Para etiquetar volúmenes adjuntados a instancias bajo demanda iniciadas por una flota de spot mediante la AWS CLI**  
Para etiquetar volúmenes cuando los crea la flota, debe especificar las etiquetas en la [plantilla de inicialización](create-launch-template.md) a la que se hace referencia en la solicitud de flota de spot.

**nota**  
Las etiquetas de volumen solo se admiten para los volúmenes a los que se asocian Instancias bajo demanda. No se pueden etiquetar los volúmenes que están asociados a Instancias de spot.  
No se admite el etiquetado de volumen en `LaunchSpecifications`.

## Etiquetado de una flota de spot existente
<a name="tag-existing-spot-fleet"></a>

**Para etiquetar una solicitud de flota de spot existente mediante la consola**

Después de crear una solicitud de flota de spot, puede agregar etiquetas a la solicitud de flota mediante 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 **Spot Requests (Solicitudes de spot)**.

1. Seleccione la solicitud de flota de spot.

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

**Para etiquetar una solicitud de flota de spot existente mediante la AWS CLI**  
Puede utilizar el comando [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) para etiquetar recursos existentes. En el ejemplo siguiente, la solicitud de flota de spot existente se etiqueta con Key=purpose y Value=test.

```
aws ec2 create-tags \
    --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \
    --tags Key=purpose,Value=test
```

## Visualización de etiquetas de solicitud de flota de spot
<a name="view-spot-fleet-tags"></a>

**Para ver las etiquetas de solicitud de flota de spot mediante 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 flota de spot y elija la pestaña **Etiquetas**.

**Para describir las etiquetas de solicitud de flota de spot**  
Utilice el comando [describe-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html) para ver las etiquetas del recurso especificado. En el siguiente ejemplo, describe las etiquetas para la solicitud de flota de spot especificada.

```
aws ec2 describe-tags \
    --filters "Name=resource-id,Values=sfr-11112222-3333-4444-5555-66666EXAMPLE"
```

```
{
    "Tags": [
        {
            "Key": "Environment",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Production"
        },
        {
            "Key": "Another key",
            "ResourceId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "ResourceType": "spot-fleet-request",
            "Value": "Another value"
        }
    ]
}
```

También puede ver las etiquetas de una solicitud de flota de spot mediante la descripción de la solicitud de flota de spot.

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

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
```

```
{
    "SpotFleetRequestConfigs": [
        {
            "ActivityStatus": "fulfilled",
            "CreateTime": "2020-02-13T02:49:19.709Z",
            "SpotFleetRequestConfig": {
                "AllocationStrategy": "capacityOptimized",
                "OnDemandAllocationStrategy": "lowestPrice",
                "ExcessCapacityTerminationPolicy": "Default",
                "FulfilledCapacity": 2.0,
                "OnDemandFulfilledCapacity": 0.0,
                "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role",
                "LaunchSpecifications": [
                    {
                        "ImageId": "ami-0123456789EXAMPLE",
                        "InstanceType": "c4.large"
                    }
                ],
                "TargetCapacity": 2,
                "OnDemandTargetCapacity": 0,
                "Type": "maintain",
                "ReplaceUnhealthyInstances": false,
                "InstanceInterruptionBehavior": "terminate"
            },
            "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE",
            "SpotFleetRequestState": "active",
            "Tags": [
                {
                    "Key": "Environment",
                    "Value": "Production"
                },
                {
                    "Key": "Another key",
                    "Value": "Another value"
                }
            ]
        }
    ]
}
```

# Descripción de una solicitud de flota de spot, sus instancias y el historial de eventos
<a name="manage-spot-fleet"></a>

Puede describir la configuración de la flota de spot, las instancias de la flota de spot y el historial de eventos de la flota de spot.

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

**Para describir la 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 la solicitud de flota de spot. El ID comienza por **sfr-**. Para ver los detalles de configuración, elija **Descripción**.

1. Para enumerar las instancias de spot de la flota de spot, elija **Instancias**.

1. Para ver el historial de la flota de spot, elija **Historial**.

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

**Para describir la solicitud de flota de spot**  
Utilice el comando [describe-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html).

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

**Para describir las instancias en ejecución para la solicitud de flota de spot especificada**  
Utilice el comando [describe-spot-fleet-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-instances.html).

```
aws ec2 describe-spot-fleet-instances \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

**Para describir el historial de eventos de la solicitud de flota de spot especificada**  
Utilice el comando [describe-spot-fleet-request-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-request-history.html).

```
aws ec2 describe-spot-fleet-request-history \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --start-time 2024-05-18T00:00:00Z
```

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

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

```
Get-EC2SpotFleetRequest
```

**Para describir las instancias en ejecución para la solicitud de flota de spot especificada**  
Utilice el cmdlet [Get-EC2SpotFleetInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetInstance.html).

```
Get-EC2SpotFleetInstance `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
```

**Para describir el historial de eventos de la solicitud de flota de spot especificada**  
Utilice el cmdlet [Get-EC2SpotFleetRequestHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetRequestHistory.html).

```
Get-EC2SpotFleetRequestHistory `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -UtcStartTime 2024-05-18T00:00:00Z
```

------

# Modificación de una solicitud de flota de spot
<a name="modify-spot-fleet"></a>

Puede modificar una solicitud de flota de spot activa para completar las siguientes tareas:
+ Aumentar la capacidad objetivo total y la parte bajo demanda
+ Disminuir la capacidad objetivo total y la parte bajo demanda

Cuando aumenta la capacidad objetivo total, la flota de spot inicializa las instancias de spot adicionales de acuerdo con la [estrategia de asignación](ec2-fleet-allocation-strategy.md) para su solicitud de la flota de spot. Cuando se aumenta la parte bajo demanda, la flota de spot inicia instancias bajo demanda adicionales.

Cuando se reduce la capacidad objetivo total, la flota de spot cancela cualquier solicitud abierta que supere la nueva capacidad objetivo. Puede solicitar que la flota de spot termine las instancias de spot hasta que el tamaño de la flota alcance la nueva capacidad de destino. Si la estrategia de asignación es `diversified`, la flota de spot termina instancias de los distintos grupos. También puede solicitar que la flota de spot mantenga la flota con su tamaño actual, pero que no reemplace ninguna de las instancias de spot que se hayan interrumpido ni que el usuario haya terminado manualmente.

**Consideraciones**
+ No se puede modificar una solicitud de flota de spot puntual. Solo puede modificar una solicitud de flota de spot si seleccionó **Mantener la capacidad de destino** cuando creó la solicitud de flota de spot.
+ Cuando una flota de spot termina una instancia porque se ha reducido la capacidad de destino, la instancia recibe un aviso de interrupción de instancia de spot.

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

**Para modificar una solicitud de 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 la solicitud de flota de spot.

1. Elija **Acciones** y, a continuación, **Modificar capacidad de destino**.

1. En **Modificar capacidad de destino**, haga lo siguiente:

   1. Introduzca la nueva capacidad de destino y la parte bajo demanda

   1. (Opcional) Si está disminuyendo la capacidad de destino, pero quiere conservar el tamaño actual de la flota, borre **Terminar instancias**.

   1. Seleccione **Enviar**.

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

**Para modificar una solicitud de flota de spot**  
Utilice el comando [modify-spot-fleet-request](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-spot-fleet-request.html) para actualizar la capacidad de destino de la solicitud de flota de spot especificada.

```
aws ec2 modify-spot-fleet-request \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity 20
```

Puede modificar el comando anterior de la siguiente manera para disminuir la capacidad de destino de la flota de spot especificada sin que ello suponga terminar ninguna de las instancias de spot.

```
aws ec2 modify-spot-fleet-request \
    --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --target-capacity 10 \
    --excess-capacity-termination-policy NoTermination
```

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

**Para modificar una solicitud de flota de spot**  
Utilice el cmdlet [Edit-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SpotFleetRequest.html) para actualizar la capacidad de destino de la solicitud de flota de spot especificada.

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 20
```

Puede modificar el comando anterior de la siguiente manera para disminuir la capacidad de destino de la flota de spot especificada sin que ello suponga terminar ninguna de las instancias de spot.

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 20 `
    -ExcessCapacityTerminationPolicy "NoTermination"
```

------

# Cancelación (eliminación) de una solicitud de flota de spot
<a name="cancel-spot-fleet"></a>

Si ya no necesita una flota de spot, puede cancelar la solicitud de la flota de spot. Esta acción eliminará la solicitud. Tras cancelar una solicitud de flota, todas las solicitudes de spot asociadas con la flota también se cancelan, de forma que no se iniciará ninguna instancia de spot nueva.

Al cancelar una solicitud de flota de spot, debe especificar si desea terminar también todas sus instancias. Esto incluye tanto las instancias bajo demanda como las instancias de spot.

**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 especifica que se terminen las instancias cuando se cancele la solicitud de flota, esta pasará al estado `cancelled_terminating`. En caso contrario, pasará al estado `cancelled_running` y las instancias seguirán ejecutándose hasta que se interrumpan o usted las termine manualmente.

**Restricciones**
+ Puede cancelar hasta 100 flotas en una sola solicitud. Si supera la cantidad especificada, no se cancelan las flotas.

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

**Para cancelar (eliminar) una solicitud de 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 la solicitud de flota de spot.

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

1. En el cuadro de diálogo **Cancelar solicitudes de spot**, haga lo siguiente:

   1. Para terminar las instancias asociadas al mismo tiempo que se cancela la solicitud de flota de spot, deje seleccionada la casilla **Terminar instancias**. Para cancelar la solicitud de flota de spot sin terminar las instancias asociadas, desmarque la casilla **Terminar instancias**.

   1. Elija **Confirmar**.

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

**Para cancelar (eliminar) una solicitud de flota de spot y finalizar sus instancias**  
Utilice el comando [cancel-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-fleet-requests.html) con la opción `--terminate-instances`.

```
aws ec2 cancel-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --terminate-instances
```

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

```
{
    "SuccessfulFleetRequests": [
        {
            "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
            "CurrentSpotFleetRequestState": "cancelled_terminating",
            "PreviousSpotFleetRequestState": "active"
        }
    ],
    "UnsuccessfulFleetRequests": []
}
```

**Para cancelar (eliminar) una solicitud de flota de spot sin finalizar sus instancias**  
Modifique el ejemplo anterior con la opción `--no-terminate-instances` en su lugar.

```
aws ec2 cancel-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --no-terminate-instances
```

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

```
{
    "SuccessfulFleetRequests": [
        {
            "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
            "CurrentSpotFleetRequestState": "cancelled_running",
            "PreviousSpotFleetRequestState": "active"
        }
    ],
    "UnsuccessfulFleetRequests": []
}
```

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

**Para cancelar (eliminar) una solicitud de flota de spot y finalizar sus instancias**  
Utilice el cmdlet [Stop-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotFleetRequest.html) con el parámetro `-TerminateInstance`.

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**Para cancelar (eliminar) una solicitud de flota de spot sin finalizar sus instancias**  
Modifique el ejemplo anterior cambiando el valor del parámetro `-TerminateInstance`.

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

# Descripción del escalado automático para las flotas de spot
<a name="spot-fleet-automatic-scaling"></a>

El *escalado automático* permite que su flota de spot pueda aumentar o disminuir la capacidad de destino de forma automática en función de la demanda. Con el escalado automático, una flota de spot puede iniciar instancias (escalado horizontal) o terminar instancias (reducción horizontal) dentro del rango especificado en respuesta a una o varias políticas de escalado.

El escalado automático para la flota de spot es posible gracias a una combinación de las API de Amazon EC2, Amazon CloudWatch y Application Auto Scaling. Las solicitudes de flota de spot se crean con Amazon EC2, las alarmas se crean con CloudWatch y las políticas de escalado se crean con Application Auto Scaling.

**Tipos de escalado automático**

La flota de spot admite los siguientes tipos de escalado automático:
+ [Escalado del seguimiento de destino](spot-fleet-target-tracking.md): permite aumentar o reducir la capacidad actual de la flota en función de un valor de destino especificado en una métrica determinada. Funciona de forma similar a los termostatos, que mantienen la temperatura del hogar: el usuario selecciona la temperatura deseada y el termostato hace el resto.
+ [Escalado por pasos](spot-fleet-step-scaling.md): permite aumentar o reducir la capacidad actual de la flota en función de una serie de ajustes de escalado, denominados ajustes por pasos, que varían en función del tamaño de la interrupción de alarma.
+ [Escalado programado](spot-fleet-scheduled-scaling.md): permite aumentar o reducir la capacidad actual de la flota en función de la fecha y la hora.

## Consideraciones
<a name="considerations-for-spot-fleet-automatic-scaling"></a>

Cuando utilice el escalado automático para su flota de spot, tenga en cuenta lo siguiente:
+ **Ponderación de instancias**: si utiliza la [ponderación de instancias](ec2-fleet-instance-weighting.md), recuerde que la flota de spot puede superar la capacidad de destino según sea necesario. La capacidad utilizada puede ser un número de coma flotante, pero la capacidad de destino debe ser un número entero, por lo que la flota de spot redondea hacia arriba al siguiente entero. Debe tener en cuenta estos comportamientos cuando observe los resultados de una política de escalado después de dispararse una alarma. Por ejemplo, suponga que la capacidad de destino es de 30, la capacidad atendida es de 30,1 y la política de escalado resta 1. Cuando se dispara la alarma, el proceso de escalado automático resta 1 a 30,1, que da 29,1; así que al redondear hacia arriba, el resultado es 30, por lo que no se realiza ninguna acción de escalado. Veamos otro ejemplo: supongamos que seleccionó ponderaciones de instancias de 2, 4 y 8, y una capacidad de destino de 10, pero no había disponible ninguna instancia con ponderación 2, por lo que la flota de spot aprovisionó instancias de ponderaciones 4 y 8, que producen una capacidad utilizada de 12. Si la política de escalado disminuye la capacidad de destino en un 20 % y se dispara una alarma, el proceso de escalado automático resta 12\$10,2 de 12, que es igual a 9,6 y, al redondear hacia arriba, da 10, por lo que no se realiza ninguna acción de escalado.
+ **Periodo de recuperación**: las políticas de escalado que crea para la flota de spot admiten un periodo de recuperación. Es el número de segundos después de completarse una actividad de escalado en que las actividades del escalado anterior relacionadas con un disparador pueden influir en los futuros eventos de escalado. Para políticas de escalado ascendente, mientras el periodo de recuperación está en vigor, la capacidad que se agregó en el anterior evento de escalado ascendente que inició la recuperación se calcula como parte de la capacidad deseada para el siguiente escalado ascendente. La intención es realizar continuamente (pero no excesivamente) un escalado ascendente. Para políticas de escalado descendente, el periodo de recuperación se usa para bloquear subsiguientes solicitudes de escalado descendente hasta que haya caducado. La intención es realizar un escalado descendente de manera conservadora para proteger la disponibilidad de la aplicación. No obstante, si otra alarma dispara una política de escalado ascendente durante el periodo de recuperación después de un escalado descendente, el escalado automático realiza inmediatamente un escalado ascendente del destino escalable.
+ **Use la monitorización detallada**: le recomendamos realizar el escalado según métricas de instancia cuya frecuencia sea de un minuto, ya que esto garantiza una respuesta más rápida a los cambios de utilización. Realizar el escalado utilizando métricas con una frecuencia de 5 minutos puede generar un tiempo de respuesta más lento y hacer que el escalado se realice con datos de métricas que están obsoletos. Para enviar los datos de las métricas de la instancia a CloudWatch en periodos de 1 minuto, puede habilitar una monitorización detallada específicamente para la instancia. Para obtener más información, consulte [Administración del monitoreo detallado para sus instancias de EC2](manage-detailed-monitoring.md) y [Creación de una solicitud de flota de spot con los parámetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).
+ **AWS CLI**: si utiliza la AWS CLI para configurar el escalado de la flota de spot, utilizará los comandos [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling).

# Permisos de IAM necesarios para el escalado automático de la flota de spot
<a name="spot-fleet-auto-scaling-IAM"></a>

El escalado automático para la flota de spot es posible gracias a una combinación de las API de Amazon EC2, Amazon CloudWatch y Application Auto Scaling. Las solicitudes de flota de spot se crean con Amazon EC2, las alarmas se crean con CloudWatch y las políticas de escalado se crean con Application Auto Scaling. Además de los [permisos de IAM necesarios para usar la flota de spot](spot-fleet-prerequisites.md#spot-fleet-iam-users) y Amazon EC2, el usuario que accede a la configuración de escalado de la flota debe tener los permisos adecuados para los servicios que admiten el escalado automático.

Para utilizar el escalado automático para flota de spot, los usuarios deben tener permisos para utilizar las acciones que se muestran en la siguiente política de ejemplo. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:*",
                "ec2:DescribeSpotFleetRequests",
                "ec2:ModifySpotFleetRequest",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:DisableAlarmActions",
                "cloudwatch:EnableAlarmActions",
                "iam:CreateServiceLinkedRole",
                "sns:CreateTopic",
                "sns:Subscribe",
                "sns:Get*",
                "sns:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

También puede crear sus propias políticas de IAM que permitan permisos más precisos para las llamadas a la API de Auto Scaling de aplicaciones. Para obtener más información, consulte [Identity and Access Management for Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html) en la *Guía del usuario de Application Auto Scaling*.

El servicio Application Auto Scaling también necesita permiso para describir sus flotas de spot y las alarmas de CloudWatch, así como permisos para modificar su capacidad de destino de la flota de spot en su nombre. Si habilita el escalado automático para su flota de spot, crea un rol vinculado a un servicio denominado `AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest`. Este rol vinculado a servicio concede a Auto Scaling de aplicaciones permiso para describir las alarmas de sus políticas, monitorizar la capacidad actual de la flota y modificar la capacidad de esta. El rol de flota de spot original administrado para Application Auto Scaling era `aws-ec2-spot-fleet-autoscale-role`, pero ya no es necesario. El rol vinculado al servicio es el rol predeterminado para Auto Scaling de aplicaciones. Para obtener más información, consulte [Roles vinculados a servicios de Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) en la *Guía del usuario de Application Auto Scaling*.

# Escalado del seguimiento de destino: escalado de la flota de spot especificando un valor en una métrica específica
<a name="spot-fleet-target-tracking"></a>

Con el escalado del seguimiento de destino, puede crear una política de escalado del seguimiento de destino al seleccionar una métrica de escalado y establecer un valor de destino. Entonces, la flota de spot crea y administra las alarmas de CloudWatch que activan la política de escalado y calcula el ajuste de escalado en función de la métrica y el valor de destino escogidos. La política de escalado ajusta la capacidad al agregar o eliminar instancias en función de las necesidades para mantener la métrica en el valor de destino especificado o en un valor próximo. La política de escalado del seguimiento de destino no solo mantiene la métrica próxima al valor de destino sino que también se ajusta a las fluctuaciones de la métrica producidas por patrones de carga fluctuante y minimiza las fluctuaciones de capacidad rápidas.

Puede crear varias políticas de escalado del seguimiento de destino en una flota de spot, siempre que cada una de las políticas utilice una métrica diferente. La flota se escala en función de la política que especifica la mayor capacidad de flota. Esto le permite abordar varios escenarios para garantizar una capacidad suficiente para las cargas de trabajo de la aplicación.

Para garantizar la disponibilidad de la aplicación, la flota se escala en horizontal proporcionalmente a la métrica tan rápido como puede, pero se escala de forma descendente más gradualmente.

Cuando una flota de spot termina una instancia de spot porque se ha reducido la capacidad de destino, la instancia recibe un aviso de interrupción de la instancia de spot.

**nota**  
No modifique ni elimine las alarmas de CloudWatch que la flota de spot administra para las políticas de escalado de seguimiento de destino. La flota de spot elimina automáticamente las alarmas cuando se elimina la política de escalado de seguimiento de destino.

**Requisitos previos**
+ La solicitud de flota de spot debe tener un tipo de solicitud de `maintain`. El escalado automático no se admite para solicitudes de tipo `request`.
+ Configure la [Permisos de IAM necesarios para el escalado automático de la flota de spot](spot-fleet-auto-scaling-IAM.md).
+ Consulte el [Consideraciones](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Para configurar una política de seguimiento de destino**

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 la solicitud de flota de spot.

1. Seleccione la pestaña **Escalado automático** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado automático**.

1. Si el escalado automático no está configurado, elija **Configurar**.

1. Utilice **Capacidad de escalado entre** para establecer la capacidad mínima y máxima de la flota. El escalado automático no escalará la flota ni por debajo de la capacidad mínima ni por encima de la capacidad máxima.

1. En **Nombre de política**, escriba un nombre para la política.

1. Elija una métrica de destino en **Métrica de destino**.

1. Introduzca un **Valor de destino** para la métrica.

1. En **Periodo de recuperación**, especifique un nuevo valor (en segundos) o mantenga el valor predeterminado.

1. (Opcional) Para omitir el paso de creación de una política de reducción horizontal basada en la configuración actual, seleccione **Deshabilitar escalado descendente**. Puede crear una política de escalado descendente con una configuración diferente.

1. Seleccione **Save**.

**Para configurar una política de escalado de seguimiento de destino mediante la AWS CLI**

1. Registre la solicitud de flota de spot como un destino escalable mediante el comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html).

1. Cree una política de escalado mediante el comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html).

# Escalado por pasos: escalado de la flota de spot mediante políticas de escalado por pasos
<a name="spot-fleet-step-scaling"></a>

Mediante políticas de escalado por pasos, puede especificar alarmas de CloudWatch para disparar el proceso de escalado. Por ejemplo, si desea realizar un escalado ascendente cuando el uso de la CPU alcance un determinado nivel, cree una alarma usando la métrica `CPUUtilization` que proporciona Amazon EC2.

Al crear una política de escalado por pasos, debe especificar uno de los siguientes tipos de ajuste de escalado:
+ **Agregar**: permite aumentar la capacidad de destino de la flota en un número especificado de unidades de capacidad o un porcentaje especificado de la capacidad actual.
+ **Eliminar**: permite disminuir la capacidad de destino de la flota en un número especificado de unidades de capacidad o un porcentaje especificado de la capacidad actual.
+ **Establecer en**: permite establecer la capacidad de destino de la flota en el número especificado de unidades de capacidad.

Cuando se dispara una alarma, el proceso de escalado automático calcula la nueva capacidad de destino usando la capacidad atendida y la política de escalado y, a continuación, actualiza la capacidad de destino en consecuencia. Por ejemplo, suponga que la capacidad de destino y la capacidad atendida suman 10 y la política de escalado suma 1. Cuando se dispara la alarma, el proceso de escalado automático le agrega 1 a 10 para llegar a 11, de manera que la flota de spot inicia 1 instancia.

Cuando una flota de spot termina una instancia de spot porque se ha reducido la capacidad de destino, la instancia recibe un aviso de interrupción de la instancia de spot.

**Requisitos previos**
+ La solicitud de flota de spot debe tener un tipo de solicitud de `maintain`. El escalado automático no se admite para solicitudes de tipo `request`.
+ Configure la [Permisos de IAM necesarios para el escalado automático de la flota de spot](spot-fleet-auto-scaling-IAM.md).
+ Determine qué métricas CloudWatch son importantes para su aplicación. Puede crear alarmas de CloudWatch basadas en métricas proporcionadas por AWS o en sus propias métricas personalizadas.
+ Para las métricas de AWS que utilizara en las políticas de escalado, habilite la recopilación de métricas de CloudWatch si el servicio que proporciona las métricas no la habilita de forma predeterminada.
+ Consulte el [Consideraciones](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Para crear una alarma de CloudWatch**

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

1. En el panel de navegación, amplíe **Alarmas** y seleccione **Todas las alarmas**.

1. Elija **Create alarm (Crear alarma)**.

1. En la página **Especificar métricas y condiciones**, elija **Seleccionar métrica**. 

1. Elija **EC2 Spot** y **Métricas de solicitud de flota**, seleccione una métrica (por ejemplo, **TargetCapacity**) y, a continuación, **Seleccionar métrica**.

   Aparece la página **Especificar métrica y condiciones**, que muestra un gráfico y otra información sobre la métrica que ha seleccionado. 

1. En **Periodo**, elija el periodo de evaluación para la alarma, por ejemplo, **1 minuto**. Al evaluar la alarma, cada periodo se agrega a un punto de datos. 
**nota**  
Un periodo más corto crea una alarma con más sensibilidad. 

1. En **Condiciones**, defina la alarma definiendo la condición del umbral. Por ejemplo, puede definir un umbral para activar la alarma cuando el valor de la métrica sea superior o igual al 80 %.

1. En **Configuración adicional**, para **Puntos de datos para alarma**, especifique el número de puntos de datos (periodos de evaluación) que debe haber en el estado ALARM para activar la alarma, por ejemplo, 1 período de evaluación o 2 de 3 períodos de evaluación. Esto crea una alarma que pasa al estado ALARM si se sobrepasan muchas periodos consecutivos. Para obtener más información, consulte [Evaluación de una alarma](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) en la *Guía del usuario de Amazon CloudWatch*.

1. Para **Tratamiento de datos que faltan**, elija una de las opciones (o deje el valor predeterminado de **Tratar los datos que faltan como ausentes**). Para obtener más información, consulte [Configuración de cómo las alarmas de CloudWatch tratan los datos faltantes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) en la *Guía del usuario de Amazon CloudWatch*.

1. Seleccione **Siguiente**.

1. De forma opcional, para recibir una notificación de un evento de escalado, en **Notificación**, puede elegir o crear el tema de Amazon SNS que desea usar para recibir notificaciones. De lo contrario, puede eliminar la notificación ahora y añadir una más adelante si es necesario.

1. Seleccione **Siguiente**.

1. En **Agregar nombre y descripción**, escriba el nombre y la descripción de la alarma y haga clic en **Siguiente**.

1. Elija **Crear alarma**.

**Para configurar una política de escalado por pasos para su 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 la solicitud de flota de spot.

1. Seleccione la pestaña **Escalado automático** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado automático**.

1. Si el escalado automático no está configurado, elija **Configurar**.

1. Utilice **Capacidad de escalado entre** para establecer la capacidad mínima y máxima de la flota. Las políticas de escalado no reducirán la flota por debajo de la capacidad mínima ni la aumentarán por encima de la capacidad máxima.

1. En **Políticas de escalado**, en **Tipo de política**, elija **Política de escalado por pasos**.

1. En un principio, **Políticas de escalado** contiene políticas de escalado por pasos denominadas **ScaleUp** y **ScaleDown**. Puede completar estas políticas o elegir **Quitar política** para eliminarlas. También puede elegir **Añadir política**.

1. Para definir una política, haga lo siguiente:

   1. En **Policy name** (Nombre de política), escriba un nombre para la política.

   1. En **Disparador de política**, seleccione una alarma ya establecida o elija **Crear alarma** para abrir la consola de Amazon CloudWatch y crear una alarma.

   1. En **Modificar la capacidad**, defina la cantidad que desea tener y los límites inferior y superior del ajuste por pasos. Puede agregar o eliminar un número específico de instancias o un porcentaje del tamaño de la flota existente, o establecer un tamaño exacto para la flota. 

      Por ejemplo, para crear una política de escalado por pasos que aumente la capacidad de la flota en un 30 por ciento, elija **Agregar**, escriba **30** en el siguiente campo y, a continuación, elija **porcentaje**. De forma predeterminada, el límite inferior para Agregar política es el umbral de la alarma y el límite superior es infinito positivo (\$1). De forma predeterminada, el límite superior de Quitar política es el límite de la alarma y el límite inferior es infinito negativo (-).

   1. (Opcional) Para agregar otro paso, elija **Agregar paso**.

   1. En **Periodo de recuperación**, especifique un nuevo valor (en segundos) o mantenga el valor predeterminado.

1. Seleccione **Save**.

**Para configurar políticas de escalado por pasos para la flota de spot mediante la AWS CLI**

1. Registre la solicitud de flota de spot como un destino escalable mediante el comando [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html).

1. Cree una política de escalado mediante el comando [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html).

1. Cree una alarma que active la política de escalado mediante el comando [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html).

# Escalado programado: escalado de la flota de spot según una programación
<a name="spot-fleet-scheduled-scaling"></a>

El escalado de su flota según una programación le permite escalar la aplicación en respuesta a los cambios previstos en la demanda. Al crear *acciones programadas*, puede indicar a la flota de spot que realice actividades de escalado en momentos específicos. Para crear una acción programada, debe especificar una flota de spot existente, el tiempo en que debe ocurrir la actividad de escalado, la capacidad mínima y la capacidad máxima deseadas. Las acciones programadas se pueden configurar para que se escalen una sola vez o de forma periódica. Si necesita un cambio, puede editar o eliminar las acciones programadas.

**Requisitos previos**
+ Las acciones programadas solo se pueden crear para flotas de spot existentes. No puede crear una acción programada al crear una flota de spot.
+ La solicitud de flota de spot debe tener un tipo de solicitud de `maintain`. El escalado automático no se admite para solicitudes de tipo `request`.
+ Configure la [Permisos de IAM necesarios para el escalado automático de la flota de spot](spot-fleet-auto-scaling-IAM.md).
+ Consulte el [Consideraciones](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Para crear una acción programada puntual**

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 la solicitud de flota de spot.

1. Elija la pestaña **Escalado programado** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado programado**.

1. Elija **Crear acción programada**.

1. En **Nombre**, especifique un nombre para la acción programada.

1. Escriba un valor para **Capacidad mínima**, **Capacidad máxima** o para ambas.

1. En **Recurrencia**, elija **Una vez**.

1. (Opcional) Elija una fecha y una hora para **Hora de inicio**, **Hora de finalización** o para ambas.

1. Seleccione **Crear**.

**Creación de una acción periódica programada**

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 la solicitud de flota de spot.

1. Elija la pestaña **Escalado programado** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado programado**.

1. En **Nombre**, especifique un nombre para la acción programada.

1. Escriba un valor para **Capacidad mínima**, **Capacidad máxima** o para ambas.

1. En **Recurrencia**, elija una de las programaciones predefinidas (por ejemplo, **Todos los días**) o elija **Personalizada** y escriba una expresión cron. Para obtener más información sobre las expresiones cron compatibles con el escalado programado, consulte [Expresiones Cron](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions) en la *Guía del usuario de Amazon EventBridge*.

1. (Opcional) Elija una fecha y una hora para **Hora de inicio**, **Hora de finalización** o para ambas.

1. Elija **Submit**.

**Para editar una acción programada**

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 la solicitud de flota de spot.

1. Elija la pestaña **Escalado programado** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado programado**.

1. Seleccione la acción programada y elija **Acciones**, **Editar**.

1. Introduzca los cambios necesarios y elija **Enviar**.

**Para eliminar una acción programada**

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 la solicitud de flota de spot.

1. Elija la pestaña **Escalado programado** cerca de la parte inferior de la pantalla. Si seleccionó el enlace para su flota de spot, no habrá ninguna pestaña; en su lugar, desplácese hacia abajo hasta la sección **Escalado programado**.

1. Seleccione la acción programada y elija **Acciones**, **Eliminar**.

1. Cuando se le pida confirmación, seleccione **Delete (Eliminar)**.

**Para administrar el escalado programado mediante la AWS CLI**

Use los siguientes comandos:
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html)
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html)
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html)

# Supervisión de la flota de EC2 o flota de spot
<a name="fleet-monitor"></a>

La supervisión eficaz de su flota de EC2 o de su flota de spot es esencial para mantener un rendimiento óptimo y garantizar la fiabilidad. Existen varias herramientas que le ayudarán a lograrlo, como Amazon CloudWatch y Amazon EventBridge, que se tratan en este tema.

Con CloudWatch, puede recopilar y realizar un seguimiento de las métricas, establecer alarmas y reaccionar de forma automática a los cambios del estado de la flota.

Con EventBridge, puede supervisar y responder mediante programación a los eventos emitidos por su flota. Al definir reglas en EventBridge, puede automatizar las respuestas a eventos específicos de la flota, como la cancelación de instancias o los cambios de estado de la flota, lo que mejora su eficiencia operativa.

**Topics**
+ [

# Supervisar su flota de EC2 o flota de spot con CloudWatch
](ec2-fleet-cloudwatch-metrics.md)
+ [

# Supervise y responda mediante programación a los eventos emitidos por su flota de EC2 o su flota de spot mediante Amazon EventBridge
](monitor-ec2-fleet-using-eventbridge.md)

# Supervisar su flota de EC2 o flota de spot con CloudWatch
<a name="ec2-fleet-cloudwatch-metrics"></a>

Puede supervisar su flota de EC2 o su flota de spot mediante las métricas de Amazon CloudWatch que se describen en esta sección.

**importante**  
Para asegurar la precisión, le recomendamos que habilite la monitorización detallada al usar estas métricas. Para obtener más información, consulte [Administración del monitoreo detallado para sus instancias de EC2](manage-detailed-monitoring.md).

Para obtener más información acerca del uso de CloudWatch, consulte [Monitorear las instancias con CloudWatch](using-cloudwatch.md).

## Métricas de la flota de EC2 y de la flota de spot
<a name="ec2-fleet-metrics"></a>

El espacio de nombres `AWS/EC2Spot` incluye las siguientes métricas para su flota, además de las métricas de CloudWatch para las instancias de spot en su flota. Para obtener más información, consulte [Métricas de la instancia](viewing_metrics_with_cloudwatch.md#ec2-cloudwatch-metrics).


| Métrica | Descripción | 
| --- | --- | 
| AvailableInstancePoolsCount |  Los grupos de capacidad de spot especificados en la solicitud de flota. Unidades: recuento  | 
| BidsSubmittedForCapacity |  La capacidad por la que Amazon EC2 ha enviado solicitudes de flota. Unidades: recuento  | 
| EligibleInstancePoolCount |  Los grupos de capacidad de spot especificados en la solicitud de flota en los que Amazon EC2 pueda gestionar solicitudes. Amazon EC2 no gestiona las solicitudes de grupos en los que el precio máximo que esté dispuesto a pagar por instancias de spot sea menor que el precio de spot o en los que el precio de spot sea mayor que el precio de las instancias bajo demanda. Unidades: recuento  | 
| FulfilledCapacity |  La capacidad satisfecha por Amazon EC2. Unidades: recuento  | 
| MaxPercentCapacityAllocation |  El valor máximo de `PercentCapacityAllocation` en todos los grupos de flota especificados en la solicitud de flota. Unidad: porcentaje  | 
| PendingCapacity |  La diferencia entre `TargetCapacity` y `FulfilledCapacity`. Unidades: recuento  | 
| PercentCapacityAllocation |  La capacidad asignada al grupo para las dimensiones especificadas. Para obtener el valor máximo registrado en todos los grupos de capacidad de spot, use `MaxPercentCapacityAllocation`. Unidad: porcentaje  | 
| TargetCapacity |  La capacidad objetivo de la solicitud de flota. Unidades: recuento  | 
| TerminatingCapacity |  Capacidad que se va a terminar debido a que la capacidad aprovisionada es superior a la capacidad de destino. Unidades: recuento  | 

Si la unidad de medida de una métrica es `Count`, la estadística más útil es `Average`.

## Dimensiones de la flota de EC2 y la flota de spot
<a name="ec2-fleet-dimensions"></a>

Para filtrar los datos para su flota, utilice las siguientes dimensiones.


| Dimensiones | Descripción | 
| --- | --- | 
| AvailabilityZone |  Filtra los datos por zona de disponibilidad.  | 
| FleetRequestId |  Filtre los datos por solicitud de flota.  | 
| InstanceType |  Filtra los datos por tipo de instancia.  | 

## Vea las métricas de CloudWatch para su flota de EC2 o flota de spot
<a name="view-ec2-fleet-metrics"></a>

Puede ver las métricas de CloudWatch para su flota en la consola de Amazon CloudWatch. Estas métricas se muestran en gráficos de monitorización. Estos gráficos muestran puntos de datos si la flota está activa.

Las métricas se agrupan en primer lugar por el espacio de nombres y, a continuación, por las diversas combinaciones de dimensiones dentro de cada espacio de nombres. Por ejemplo, puede ver todas las métricas de la flota o de los grupos de métricas de la flota por ID de solicitud, tipo de instancia o zona de disponibilidad.

**Para ver las métricas de la flota**

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

1. En el panel de navegación, expanda **Métricas** y elija **Todas las métricas**.

1. Elija el espacio de nombres de métrica de **EC2 Spot**.
**nota**  
Si no se muestra el espacio de nombres de **EC2 Spot**, puede haber dos motivos. Nunca ha utilizado la flota de EC2 o la flota de spot en la región, solo los servicios de AWS que está utilizando envían métricas a Amazon CloudWatch. O bien, si ha utilizado la flota de EC2 o la flota de spot en la región, pero no durante las últimas dos semanas, el espacio de nombres no aparecerá.

1. Para filtrar las métricas por dimensión, seleccione una de las siguientes opciones:
   + **Métricas de solicitud de flota**: agrupar por solicitud de flota
   + **Por zona de disponibilidad**: agrupar por solicitud de flota y zona de disponibilidad
   + **Por tipo de instancia**: agrupar por solicitud de flota y tipo de instancia
   + **Por zona de disponibilidad/tipo de instancia**: agrupar por solicitud de flota, zona de disponibilidad y tipo de instancia

1. Para ver los datos para una métrica, active la casilla de verificación situada junto a esta.

# Supervise y responda mediante programación a los eventos emitidos por su flota de EC2 o su flota de spot mediante Amazon EventBridge
<a name="monitor-ec2-fleet-using-eventbridge"></a>

Cuando el estado de una flota de EC2 o de una flota de spot cambia, emite una notificación. La notificación se pone a disposición como un evento que se envía a Amazon EventBridge (antes conocido como Amazon CloudWatch Events). Los eventos se emiten en la medida de lo posible.

Puede usar Amazon EventBridge para crear reglas que desencadenen acciones programáticas en respuesta a un evento. Por ejemplo, puede crear dos reglas de EventBridge, una que se activa cuando cambia el estado de la flota y otra que se activa cuando se termina una instancia de la flota. En este ejemplo, puede configurar la primera regla para que, si el estado de la flota cambia, la regla invoque un tema de SNS para enviarle una notificación por email. Puede configurar la segunda regla para que, si una instancia de la flota se termina, la regla invoque una función de Lambda para iniciar una nueva instancia.

**nota**  
Sólo las flotas de tipo `maintain` y `request` emiten eventos. Las flotas de tipo `instant` no emiten eventos porque envían solicitudes sincrónicas únicas y el estado de la flota se conoce inmediatamente en la respuesta. Para utilizar Amazon EventBridge para supervisar los eventos de la flota, el tipo de solicitud debe ser `maintain` o `request`.

Para obtener instrucciones acerca de cómo describir el historial de eventos de una flota, consulte [Descripción del historial de eventos de la flota de EC2](describe-ec2-fleet.md#describe-ec2-fleet-event-history).

**Topics**
+ [

## Creación de reglas de Amazon EventBridge para supervisar los eventos de la flota de EC2 o la flota de spot
](#fleet_create-eventbridge-rules)
+ [

## Flota de EC2 tipos de eventos
](#ec2-fleet-event-types)
+ [

## Tipos de eventos de flota de spot
](#spot-fleet-event-types)

## Creación de reglas de Amazon EventBridge para supervisar los eventos de la flota de EC2 o la flota de spot
<a name="fleet_create-eventbridge-rules"></a>

Cuando se emite una notificación de un cambio de estado en una flota de EC2 o una flota de spot, el evento de la notificación se envía a Amazon EventBridge como archivo JSON. Si EventBridge detecta un patrón de eventos que coincide con un patrón definido en una regla, EventBridge invoca un destino (o destinos) especificado(s) en la regla.

Puede escribir reglas de EventBridge para automatizar las acciones en función de los patrones de eventos coincidentes. 

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

`"source": "aws.ec2fleet"`  
Identifica que el evento es de flota de EC2.

`"detail-type": "EC2 Fleet State Change"`  
Identifica el tipo de evento.

`"detail": { "sub-type": "submitted" }`  
Identifica el subtipo de evento.

Para obtener la lista de eventos de la flota de EC2 y de la flota de spot y datos de eventos de ejemplo, consulte [Flota de EC2 tipos de eventos](#ec2-fleet-event-types) y [Tipos de eventos de flota de spot](#spot-fleet-event-types).

**Topics**
+ [

### Crear una regla de EventBridge para enviar una notificación
](#eventbridge-send-notification)
+ [

### Crear una regla de EventBridge para desencadenar una función de Lambda
](#eventbridge-trigger-lambda)

### Crear una regla de EventBridge para enviar una notificación
<a name="eventbridge-send-notification"></a>

En el ejemplo siguiente se crea una regla de EventBridge para enviar un email, un mensaje de texto o una notificación push móvil cada vez que Amazon EC2 emite una notificación de cambio de estado de EC2 Fleet. La señal de este ejemplo se emite como un evento de `EC2 Fleet State Change`, lo que desencadena la acción definida por la regla.

**Requisito previo**  
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 EventBridge para enviar una notificación cuando cambia el estado de una flota de EC2**

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 **Patrón del evento**, en este ejemplo, especificará el siguiente patrón de evento para que coincida con el evento `EC2 Fleet Instance Change`.

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"]
      }
      ```

      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 EC2**.

         1. En **Tipo de evento**, elija **Cambio de instancia de la flota 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*.

### Crear una regla de EventBridge para desencadenar una función de Lambda
<a name="eventbridge-trigger-lambda"></a>

En el ejemplo siguiente se crea una regla de EventBridge para desencadenar una función de Lambda cada vez que Amazon EC2 emite una notificación de cambio de instancia de EC2 Fleet cuando se inicia una instancia. La señal de este ejemplo se emite como un evento de `EC2 Fleet Instance Change`, subtipo `launched`, lo que desencadena la acción definida por la regla.

Antes de crear la regla de EventBridge, debe crear la función de Lambda.

**Para crear la función de Lambda que se utilizará en la regla de EventBridge**

1. Abra la consola de AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Elija **Crear función**.

1. Ingrese un nombre para su función, configure el código y luego elija **Crear función**.

   Para obtener más información, consulte [Creación de su primera función de Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) en la *Guía para desarrolladores de AWS Lambda*.

**Para crear una regla EventBridge para activar una función de Lambda cuando cambia el estado de una instancia de una flota de EC2**

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 **Patrón del evento**, en este ejemplo, especificará el siguiente patrón de evento para que coincida con el evento `EC2 Fleet Instance Change` y el subtipo `launched`.

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"],
       "detail": {
         "sub-type": ["launched"]
      }
      ```

      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 EC2**.

         1. En **Event type** (Tipo de evento), elija **EC2 Fleet Instance Change** (Cambio de instancia de la flota de EC2).

         1. Elija **Editar patrón** y agregue `"detail": {"sub-type": ["launched"]` para que coincida con el patrón de evento de ejemplo. Para obtener el formato JSON adecuado, inserte una coma (`,`) después del corchete anterior (`]`).

      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 **Función de Lambda** y en **Función**, elija la función que creó para responder cuando se produzca el evento.

   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 un tutorial sobre cómo crear una función de Lambda y una regla de EventBridge que ejecute la función de Lambda, consulte [Tutorial: registrar el estado de una instancia de Amazon EC2 mediante EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html) en la *Guía para desarrolladores de AWS Lambda*.

## Flota de EC2 tipos de eventos
<a name="ec2-fleet-event-types"></a>

Hay cinco Flota de EC2 tipos de eventos. Para cada tipo de evento, hay varios subtipos.

**Topics**
+ [

### Cambio de estado de flota EC2
](#ec2-fleet-state-change)
+ [

### Cambio de solicitud de instancia de spot de flota EC2
](#ec2-fleet-spot-instance-request-change)
+ [

### Cambio de instancia de flota de EC2
](#ec2-fleet-instance-change)
+ [

### Información sobre la flota EC2
](#ec2-fleet-info)
+ [

### Error de flota EC2
](#ec2-fleet-config-not-valid)

### Cambio de estado de flota EC2
<a name="ec2-fleet-state-change"></a>

La flota de EC2 envía un evento `EC2 Fleet State Change` a Amazon EventBridge cuando una flota de EC2 cambia el estado.

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

```
{
    "version": "0",
    "id": "715ed6b3-b8fc-27fe-fad6-528c7b8bf8a2",
    "detail-type": "EC2 Fleet State Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "sub-type": "active"
    }
}
```

Los valores posibles de `sub-type` son:

`active`  
La solicidud de flota de EC2 se ha validado y Amazon EC2 está intentando mantener el número de destino de instancias en ejecución.

`deleted`  
La flota de EC2 solicitud se ha eliminado y no tiene ninguna instancia en ejecución. La flota de EC2 se elimina dos días después de que todas sus instancias se hayan terminado.

`deleted_running`  
La Flota de EC2 solicitud se ha eliminado y no lanza instancias adicionales. Las instancias existentes de la flota continúan ejecutándose hasta que se interrumpen o terminan. La solicitud permanece en este estado hasta que se interrumpan o terminen todas las instancias. 

`deleted_terminating`  
La solicitud de flota de EC2 se ha eliminado y sus instancias están en proceso de terminación. La solicitud permanece en este estado hasta que se terminen todas las instancias. 

`expired`  
La solicitud de flota de EC2 ha caducado. Si la solicitud se creó con el conjunto de `TerminateInstancesWithExpiration`, un evento `terminated` posterior indica que las instancias han terminado.

`modify_in_progress`  
La solicitud de flota de EC2 se está modificando. La solicitud permanece en este estado hasta que la modificación se procese completamente.

`modify_succeeded`  
Se modificó la solicitud de flota de EC2.

`submitted`  
La solicitud de flota de EC2 está en evaluación y Amazon EC2 se prepara para lanzar el número de instancias de destino. 

`progress`  
La solicitud de flota de EC2 está en proceso de cumplirse.

### Cambio de solicitud de instancia de spot de flota EC2
<a name="ec2-fleet-spot-instance-request-change"></a>

La flota de EC2 envía un evento `EC2 Fleet Spot Instance Request Change` a Amazon EventBridge cuando una solicitud de instancia de spot en la flota cambia de estado.

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

```
{
    "version": "0",
    "id": "19331f74-bf4b-a3dd-0f1b-ddb1422032b9",
    "detail-type": "EC2 Fleet Spot Instance Request Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-83fd4e48-552a-40ef-9532-82a3acca5f10"
    ],
    "detail": {
        "spot-instance-request-id": "sir-rmqske6h",
        "description": "SpotInstanceRequestId sir-rmqske6h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

Los valores posibles de `sub-type` son:

`active`  
La solicitud de instancia de spot se ha completado y tiene una instancia de spot asociada.

`cancelled`  
Ha cancelado la solicitud de instancia de spot o la solicitud de instancia de spot caducó.

`disabled`  
Detuvo la instancia de spot.

`submitted`  
Se ha enviado la solicitud de instancia de spot.

### Cambio de instancia de flota de EC2
<a name="ec2-fleet-instance-change"></a>

La flota de EC2 envía un evento `EC2 Fleet Instance Change` a Amazon EventBridge cuando una instancia de la flota cambia de estado.

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

```
{
    "version": "0",
    "id": "542ce428-c8f1-0608-c015-e8ed6522c5bc",
    "detail-type": "EC2 Fleet Instance Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:23Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "instance-id": "i-0c594155dd5ff1829",
        "description": "{\"instanceType\":\"c5.large\",\"image\":\"ami-6057e21a\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1d\"}",
        "sub-type": "launched"
    }
}
```

Los valores posibles de `sub-type` son:

`launched`  
Se lanzó una nueva instancia.

`terminated`  
La instancia se terminó.

`termination_notified`  
Se envió una notificación de terminación de instancia cuando Amazon EC2 terminó una instancia de spot durante la reducción de escala, cuando la capacidad de destino de la flota se modificó hacia abajo; por ejemplo, de una capacidad de destino de 4 a una capacidad de destino de 3.

### Información sobre la flota EC2
<a name="ec2-fleet-info"></a>

La flota de EC2 envía un evento `EC2 Fleet Information` a Amazon EventBridge cuando hay un error durante el cumplimiento. El evento de información no impide que la flota intente cumplir su capacidad de destino.

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

```
{
    "version": "0",
    "id": "76529817-d605-4571-7224-d36cc1b2c0c4",
    "detail-type": "EC2 Fleet Information",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T08:17:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-8becf5fe-bb9e-415d-8f54-3fa5a8628b91"
    ],
    "detail": {
        "description": "c4.xlarge, ami-0947d2ba12ee1ff75, Linux/UNIX, us-east-1a, Spot price in either SpotFleetRequestConfigData or SpotFleetLaunchSpecification or LaunchTemplate or LaunchTemplateOverrides is less than Spot market price $0.0619",
        "sub-type": "launchSpecUnusable"
    }
}
```

Los valores posibles de `sub-type` son:

`fleetProgressHalted`  
El precio de cada especificación de inicialización no es válido porque está por debajo del precio de spot (todas las especificaciones de inicialización han producido eventos `launchSpecUnusable`). Una especificación de inicialización podría volverse válida si cambia el precio de spot.

`launchSpecTemporarilyBlacklisted`  
La configuración no es válida y varios intentos de iniciar instancias han fallado. Para obtener más información, consulte la descripción del evento.

`launchSpecUnusable`  
El precio de una especificación de inicialización no es válido porque está por debajo del precio de spot.

`registerWithLoadBalancersFailed`  
Error al intentar registrar instancias con equilibradores de carga. Para obtener más información, consulte la descripción del evento.

### Error de flota EC2
<a name="ec2-fleet-config-not-valid"></a>

La flota de EC2 envía un evento `EC2 Fleet Error` a Amazon EventBridge cuando hay un error durante el cumplimiento. El evento de error impide que la flota intente cumplir su capacidad de destino.

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

```
{
    "version": "0",
    "id": "69849a22-6d0f-d4ce-602b-b47c1c98240e",
    "detail-type": "EC2 Fleet Error",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-10-07T01:44:24Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-9bb19bc6-60d3-4fd2-ae47-d33e68eafa08"
    ],
    "detail": {
        "description": "m3.large, ami-00068cd7555f543d5, Linux/UNIX: IPv6 is not supported for the instance type 'm3.large'. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

Los valores posibles de `sub-type` son:

`iamFleetRoleInvalid`  
La flota de EC2 no tiene los permisos necesarios para iniciar o terminar una instancia.

`allLaunchSpecsTemporarilyBlacklisted`  
Ninguna de las configuraciones es válida y varios intentos de iniciar instancias han fallado. Para obtener más información, consulte la descripción del evento.

`spotInstanceCountLimitExceeded`  
Ha alcanzado el límite del número de instancias de spot que puede iniciar.

`spotFleetRequestConfigurationInvalid`  
La configuración no es válida. Para obtener más información, consulte la descripción del evento.

## Tipos de eventos de flota de spot
<a name="spot-fleet-event-types"></a>

Hay cinco tipos de eventos de flota de spot. Para cada tipo de evento, hay varios subtipos.

**Topics**
+ [

### Cambio de estado de la flota de spot de EC2
](#spot-fleet-state-change)
+ [

### Cambio de solicitud de instancia de spot de flota de spot de EC2
](#spot-fleet-spot-instance-request-change)
+ [

### Cambio de instancia de flota de spot de EC2
](#spot-fleet-instance-change)
+ [

### Información sobre la flota de spot de EC2
](#spot-fleet-info)
+ [

### Error de flota de spot de EC2
](#spot-fleet-config-not-valid)

### Cambio de estado de la flota de spot de EC2
<a name="spot-fleet-state-change"></a>

La flota de spot envía un evento de `EC2 Spot Fleet State Change` a Amazon EventBridge cuando la flota de spot cambia de estado.

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

```
{
    "version": "0",
    "id": "d1af1091-6cc3-2e24-203a-3b870e455d5b",
    "detail-type": "EC2 Spot Fleet State Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:57:06Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-4b6d274d-0cea-4b2c-b3be-9dc627ad1f55"
    ],
    "detail": {
        "sub-type": "submitted"
    }
}
```

Los valores posibles de `sub-type` son:

`active`  
La solicitud de flota de spot se ha validado y Amazon EC2 está intentando mantener el número de destino de instancias de ejecución.

`cancelled`  
La solicitud de flota de spot se ha cancelado y no tiene ninguna instancia de ejecución. La flota de spot se eliminará dos días después de que se terminen las instancias.

`cancelled_running`  
La solicitud de flota de spot se ha cancelado y no inicia instancias adicionales. Las instancias existentes de la flota continúan ejecutándose hasta que se interrumpen o terminan. La solicitud permanece en este estado hasta que se interrumpan o terminen todas las instancias. 

`cancelled_terminating`  
La solicitud de flota de spot se ha cancelado y sus instancias están en proceso de terminación. La solicitud permanece en este estado hasta que se terminen todas las instancias. 

`expired`  
La solicitud de la flota de spot ha caducado. Si la solicitud se creó con el conjunto de `TerminateInstancesWithExpiration`, un evento `terminated` posterior indica que las instancias han terminado.

`modify_in_progress`  
Se está modificando la solicitud de la flota de spot. La solicitud permanece en este estado hasta que la modificación se procese completamente.

`modify_succeeded`  
Se modificó la solicitud de la flota de spot.

`submitted`  
Se está evaluando la solicitud de la flota de spot y Amazon EC2 se está preparando para iniciar el número de instancias de destino. 

`progress`  
La solicitud de flota de spot está en proceso de cumplirse.

### Cambio de solicitud de instancia de spot de flota de spot de EC2
<a name="spot-fleet-spot-instance-request-change"></a>

La flota de spot envía un evento de `EC2 Spot Fleet Spot Instance Request Change` a Amazon EventBridge cuando una solicitud de instancia de spot en la flota cambia de estado.

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

```
{
    "version": "0",
    "id": "cd141ef0-14af-d670-a71d-fe46e9971bd2",
    "detail-type": "EC2 Spot Fleet Spot Instance Request Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:53:21Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-a98d2133-941a-47dc-8b03-0f94c6852ad1"
    ],
    "detail": {
        "spot-instance-request-id": "sir-a2w9gc5h",
        "description": "SpotInstanceRequestId sir-a2w9gc5h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

Los valores posibles de `sub-type` son:

`active`  
La solicitud de instancia de spot se ha completado y tiene una instancia de spot asociada.

`cancelled`  
Ha cancelado la solicitud de instancia de spot o la solicitud de instancia de spot caducó.

`disabled`  
Detuvo la instancia de spot.

`submitted`  
Se ha enviado la solicitud de instancia de spot.

### Cambio de instancia de flota de spot de EC2
<a name="spot-fleet-instance-change"></a>

La flota de spot envía un evento de `EC2 Spot Fleet Instance Change` a Amazon EventBridge cuando una instancia en la flota cambia de estado.

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

```
{
    "version": "0",
    "id": "11591686-5bd7-bbaa-eb40-d46529c2710f",
    "detail-type": "EC2 Spot Fleet Instance Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T07:25:02Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-c8a764a4-bedc-4b62-af9c-0095e6e3ba61"
    ],
    "detail": {
        "instance-id": "i-08b90df1e09c30c9b",
        "description": "{\"instanceType\":\"r4.2xlarge\",\"image\":\"ami-032930428bf1abbff\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1a\"}",
        "sub-type": "launched"
    }
}
```

Los valores posibles de `sub-type` son:

`launched`  
Se lanzó una nueva instancia.

`terminated`  
La instancia se terminó.

`termination_notified`  
Se envió una notificación de terminación de instancia cuando Amazon EC2 terminó una Instancia de spot durante la reducción de escala, cuando la capacidad de destino de la flota se modificó hacia abajo; por ejemplo, de una capacidad de destino de 4 a una capacidad de destino de 3.

### Información sobre la flota de spot de EC2
<a name="spot-fleet-info"></a>

La flota de spot envía un evento de `EC2 Spot Fleet Information` a Amazon EventBridge cuando hay un error durante el cumplimiento. El evento de información no impide que la flota intente cumplir su capacidad de destino.

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

```
{
    "version": "0",
    "id": "73a60f70-3409-a66c-635c-7f66c5f5b669",
    "detail-type": "EC2 Spot Fleet Information",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-08T20:56:12Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-2531ea06-af18-4647-8757-7d69c94971b1"
    ],
    "detail": {
        "description": "r3.8xlarge, ami-032930428bf1abbff, Linux/UNIX, us-east-1a, Spot bid price is less than Spot market price $0.5291",
        "sub-type": "launchSpecUnusable"
    }
}
```

Los valores posibles de `sub-type` son:

`fleetProgressHalted`  
El precio de cada especificación de inicialización no es válido porque está por debajo del precio de spot (todas las especificaciones de inicialización han producido eventos `launchSpecUnusable`). Una especificación de inicialización podría volverse válida si cambia el precio de spot.

`launchSpecTemporarilyBlacklisted`  
La configuración no es válida y varios intentos de iniciar instancias han fallado. Para obtener más información, consulte la descripción del evento.

`launchSpecUnusable`  
El precio de una especificación de inicialización no es válido porque está por debajo del precio de spot.

`registerWithLoadBalancersFailed`  
Error al intentar registrar instancias con equilibradores de carga. Para obtener más información, consulte la descripción del evento.

### Error de flota de spot de EC2
<a name="spot-fleet-config-not-valid"></a>

La flota de spot envía un evento de `EC2 Spot Fleet Error` a Amazon EventBridge cuando hay un error durante el cumplimiento. El evento de error impide que la flota intente cumplir su capacidad de destino.

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

```
{
    "version": "0",
    "id": "10adc4e7-675c-643e-125c-5bfa1b1ba5d2",
    "detail-type": "EC2 Spot Fleet Error",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T06:56:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-38725d30-25f1-4f30-83ce-2907c56dba17"
    ],
    "detail": {
        "description": "r4.2xlarge, ami-032930428bf1abbff, Linux/UNIX: The associatePublicIPAddress parameter can only be specified for the network interface with DeviceIndex 0. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

Los valores posibles de `sub-type` son:

`iamFleetRoleInvalid`  
La flota de spot no tiene los permisos necesarios para iniciar o terminar una instancia.

`allLaunchSpecsTemporarilyBlacklisted`  
Ninguna de las configuraciones es válida y varios intentos de iniciar instancias han fallado. Para obtener más información, consulte la descripción del evento.

`spotInstanceCountLimitExceeded`  
Ha alcanzado el límite del número de instancias de spot que puede iniciar.

`spotFleetRequestConfigurationInvalid`  
La configuración no es válida. Para obtener más información, consulte la descripción del evento.

# Tutoriales para la flota de EC2
<a name="fleet-tutorials"></a>

Hay diferentes formas de configurar una flota de EC2. La configuración que elija depende de su caso de uso específico.

En los siguientes tutoriales se describen algunos de los posibles casos de uso y se proporcionan las tareas necesarias para implementarlos.


| Caso de uso | Enlace al tutorial | 
| --- | --- | 
|  **Uso de la ponderación de instancias para administrar la disponibilidad y el rendimiento de la flota de EC2.** Con la ponderación de instancias, puede asignar una ponderación a cada tipo de instancia en su flota de EC2 para representar su capacidad de computación y su rendimiento en relación con los demás. En función de las ponderaciones, la flota puede utilizar cualquier combinación de los tipos de instancias especificados, siempre que pueda cumplir con la capacidad objetivo deseada.  | [Tutorial: Configuración de la flota de EC2 para usar ponderación de instancias](ec2-fleet-instance-weighting-walkthrough.md) | 
|  **Uso de la capacidad bajo demanda para garantizar la disponibilidad durante los periodos de mayor actividad, pero aprovechar la capacidad de spot adicional a un costo menor.** Configure su flota de EC2 para utilizar las instancias bajo demanda como capacidad principal a fin de garantizar la capacidad disponible durante los periodos de mayor actividad. Además, asigne cierta capacidad a las instancias de spot para beneficiarse de un descuento en los precios, teniendo en cuenta que las instancias de spot se pueden interrumpir si Amazon EC2 necesita de nuevo la capacidad.  | [Tutorial: Configuración de la flota de EC2 para usar las instancias bajo demanda como capacidad principal](ec2-fleet-on-demand-walkthrough.md) | 
|  **Uso de las reservas de capacidad para reservar capacidad de computación para sus instancias bajo demanda.** Configure su flota de EC2 para que utilice primero las reservas de capacidad de `targeted` al iniciar instancias bajo demanda. Si tiene requisitos de capacidad estrictos y ejecuta cargas de trabajo críticas para la empresa que requieren cierto nivel de garantía de capacidad a corto o largo plazo, le recomendamos que cree una reserva de capacidad para garantizar que siempre tendrá acceso a la capacidad de Amazon EC2 cuando la necesite y durante el tiempo que la necesite.  | [Tutorial: Configuración de la flota de EC2 para lanzar instancias bajo demanda con reservas de capacidad específicas](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md) | 
|  **Uso de los bloques de capacidad para reservar instancias de GPU muy solicitadas para sus cargas de trabajo de machine learning.** Configure su flota de EC2 para lanzar instancias en bloques de capacidad.  | [Tutorial: Configuración de la flota de EC2 para lanzar instancias en bloques de capacidad](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md) | 
|  **Utilice las reservas de capacidad interrumpibles para reutilizar de forma temporal la capacidad inactiva en toda la organización de AWS y ahorrar costos.** Configuración de la flota de EC2 para lanzar instancias en reservas de capacidad interrumpibles, que representan la capacidad de sobra de su organización de AWS. Los propietarios de la capacidad pueden recuperar la capacidad en cualquier momento. Una vez recuperada, EC2 cierra las instancias con dos minutos de antelación.  | [Tutorial: Configuración de la flota de EC2 para lanzar instancias en reservas de capacidad interrumpibles](ec2-fleet-launch-instances-interruptible-cr-walkthrough.md) | 

# Tutorial: Configuración de la flota de EC2 para usar ponderación de instancias
<a name="ec2-fleet-instance-weighting-walkthrough"></a>

Este tutorial utiliza una compañía ficticia llamada Example Corp para ilustrar el proceso de solicitud de una flota de EC2 mediante la ponderación de instancias.

## Objetivo
<a name="ec2-fleet-instance-weighting-walkthrough-objective"></a>

Example Corp es una compañía farmacéutica que desea usar la potencia computacional de Amazon EC2 para realizar el cribado de compuestos químicos que podrían utilizarse para combatir el cáncer.

## Planificación
<a name="ec2-fleet-instance-weighting-walkthrough-planning"></a>

Example Corp primero consulta las [Prácticas recomendadas para instancias de spot](https://aws.amazon.com/ec2/spot/getting-started/#bestpractices). A continuación, Example Corp determina los siguientes requisitos para la flota de EC2.

**Tipos de instancias**  
Example Corp tiene una aplicación que requiere un uso intensivo de memoria y de recursos informáticos que responde mejor con 60 GB de memoria, como mínimo, y ocho CPU virtuales (vCPU). Desean maximizar estos recursos para la aplicación al precio más bajo posible. Example Corp decide que cualquiera de los siguientes tipos de instancias EC2 podría satisfacer sus necesidades:


| Tipo de instancia | Memoria (GiB) | vCPU | 
| --- | --- | --- | 
|  r3.2xlarge  |  61  |  8  | 
|  r3.4xlarge  |  122  |  16  | 
|  r3.8xlarge  |  244  |  32  | 

**Capacidad de destino en unidades**  
Con ponderación de instancias, la capacidad de destino puede ser igual a un número de instancias (opción predeterminada) o a una combinación de factores como núcleos (vCPU), memoria (GiB) y almacenamiento (GB). Considerando la base para su aplicación (60 GB de RAM y ocho vCPU) como una unidad, Example Corp decide que 20 veces esta cantidad satisfaría sus necesidades. Así que la empresa establece la capacidad de destino de la solicitud de la flota de EC2 en 20 unidades.

**Ponderaciones de instancias**  
Después de determinar la capacidad de destino, Example Corp calcula las ponderaciones de instancias. Para calcularlas para cada tipo de instancia, determinan las unidades de cada tipo de instancia que son necesarias para alcanzar la capacidad de destino de la siguiente manera:
+ r3.2xlarge (61,0 GB, 8 vCPU) = 1 unidad de 20
+ r3.4xlarge (122,0 GB, 16 vCPU) = 2 unidades de 20
+ r3.8xlarge (244,0 GB, 32 vCPU) = 4 unidades de 20

Por consiguiente, Example Corp asigna ponderaciones de instancias de 1, 2 y 4 a las respectivas configuraciones de inicialización en la solicitud de flota de EC2.

**Precio por hora de unidad**  
Example Corp usa el [precio bajo demanda](https://aws.amazon.com/ec2/pricing/) por hora de instancia como punto de inicio de su precio. También podrían usar precios de spot recientes o una combinación de ambos. Para calcular el precio por hora de unidad, dividen el precio inicial por hora de instancia entre la ponderación. Por ejemplo:


| Tipo de instancia | Precio bajo demanda | Ponderación de instancia | Precio por hora de unidad | 
| --- | --- | --- | --- | 
|  r3.2xLarge  |  0,7 USD  |  1  |  0,7 USD  | 
|  r3.4xLarge  |  1,4 USD  |  2  |  0,7 USD  | 
|  r3.8xLarge  |  2,8 USD  |  4  |  0,7 USD  | 

Example Corp podría usar un precio global por hora de unidad de 0,7 USD y ser competitivos para los tres tipos de instancias. También podrían usar un precio global por hora de unidad de 0,7 USD y un precio específico por hora de unidad de 0,9 USD en la especificación de inicialización `r3.8xlarge`.

## Verificar permisos
<a name="ec2-fleet-instance-weighting-walkthrough-permissions"></a>

Antes de crear una flota de EC2, Example Corp comprueba que tiene un rol de IAM con los permisos necesarios. Para obtener más información, consulte [Requisitos previos de flota de EC2](ec2-fleet-prerequisites.md).

## Crear una plantilla de lanzamiento
<a name="ec2-fleet-instance-weighting-create-launch-template"></a>

A continuación, Example Corp crea una plantilla de inicialización. El ID de la plantilla de inicio se utiliza en el paso siguiente. Para obtener más información, consulte [Creación de una plantilla de inicialización de Amazon EC2](create-launch-template.md).

## Crear la flota de EC2
<a name="ec2-fleet-instance-weighting-walkthrough-request"></a>

Example Corp crea un archivo, `config.json`, con la siguiente configuración para su flota de EC2. En el ejemplo siguiente, reemplace los identificadores de recursos por sus propios identificadores de recursos.

```
{ 
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851", 
                "Version": "1"
            }, 
            "Overrides": [
                {
                    "InstanceType": "r3.2xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 1
                },
                {
                    "InstanceType": "r3.4xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 2
                },
                {
                    "InstanceType": "r3.8xlarge", 
                    "MaxPrice": "0.90", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 4
                }
            ]
        }
    ], 
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20, 
        "DefaultTargetCapacityType": "spot"
    }
}
```

Example Corp crea la solicitud de flota de EC2 con el siguiente comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

```
aws ec2 create-fleet --cli-input-json file://config.json
```

Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md).

## Cumplimiento
<a name="ec2-fleet-instance-weighting-walkthrough-fulfillment"></a>

La estrategia de asignación determina de qué grupos de capacidad de spot proceden las instancias de spot.

Con la estrategia `lowest-price` (que es la estrategia predeterminada), las instancias de spot proceden del grupo con el precio de spot más bajo por unidad en el momento de la prestación del servicio. Para proporcionar 20 unidades de capacidad, la flota de EC2 inicia 20 (20 dividido entre 1) instancias `r3.2xlarge`, 10 (20 dividido ente 2) instancias `r3.4xlarge` o 5 (20 dividido entre 4) instancias `r3.8xlarge`.

Si Example Corp usara la estrategia `diversified`, las instancias de spot procederían de los tres grupos. La flota de EC2 iniciaría 6 instancias `r3.2xlarge` (que proporcionan 6 unidades), 3 instancias `r3.4xlarge` (que proporcionan 6 unidades) y 2 instancias `r3.8xlarge` (que proporcionan 8 unidades), con un total de 20 unidades.

# Tutorial: Configuración de la flota de EC2 para usar las instancias bajo demanda como capacidad principal
<a name="ec2-fleet-on-demand-walkthrough"></a>

En este tutorial, se utiliza una compañía ficticia llamada ABC Online para ilustrar el proceso de solicitud de una flota de EC2 que usa la capacidad en diferido como modelo principal y la capacidad de spot en caso de estar disponible.

## Objetivo
<a name="ec2-fleet-on-demand-walkthrough-objective"></a>

ABC Online, una empresa de telerestaurante, tiene la intención de aprovisionar la capacidad de Amazon EC2 con diversos tipos de instancias de EC2 y opciones de compra con el fin de alcanzar sus objetivos de escala, rendimiento y costo.

## Planifique
<a name="ec2-fleet-on-demand-walkthrough-planning"></a>

ABC Online requiere una cantidad de capacidad fija para gestionar periodos de actividad punta, pero desearía beneficiarse de tener capacidad adicional a un costo más bajo. La empresa determina los siguientes requisitos para su flota de EC2:
+ Capacidad de instancias bajo demanda: ABC Online requiere 15 instancias bajo demanda para asegurarse de poder cubrir el tráfico de los periodos de actividad máxima.
+ Capacidad de instancias de spot: para mejorar el rendimiento, pero a un precio más bajo, ABC Online tiene la intención de aprovisionar 5 instancias de spot.

## Verificar permisos
<a name="ec2-fleet-on-demand-walkthrough-permissions"></a>

Antes de crear una flota de EC2, ABC Online comprueba que tiene un rol de IAM con los permisos necesarios. Para obtener más información, consulte [Requisitos previos de flota de EC2](ec2-fleet-prerequisites.md).

## Crear una plantilla de lanzamiento
<a name="ec2-fleet-on-demand-walkthrough-create-launch-template"></a>

A continuación, ABC Online crea una plantilla de inicialización. El ID de la plantilla de inicio se utiliza en el paso siguiente. Para obtener más información, consulte [Creación de una plantilla de inicialización de Amazon EC2](create-launch-template.md).

## Crear la flota de EC2
<a name="ec2-fleet-on-demand-walkthrough-request"></a>

ABC Online crea un archivo, `config.json`, con la siguiente configuración para su flota de EC2. En el ejemplo siguiente, reemplace los identificadores de recursos por sus propios identificadores de recursos.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851",
                "Version": "2"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity":15,
        "DefaultTargetCapacityType": "spot"
    }
}
```

ABC Online crea la flota de EC2 con el siguiente comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

```
aws ec2 create-fleet --cli-input-json file://config.json
```

Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md).

## Cumplimiento
<a name="ec2-fleet-on-demand-walkthrough-fulfillment"></a>

La estrategia de asignación determina que la capacidad bajo demanda se atienda siempre, mientras que el resto de la capacidad de destino se cubre con instancias de spot si hay capacidad disponible.

# Tutorial: Configuración de la flota de EC2 para lanzar instancias bajo demanda con reservas de capacidad específicas
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

En este tutorial se explican todos los pasos que debe realizar para que su flota de EC2 lance instancias bajo demanda en reservas de capacidad `targeted`.

Aprenderá a configurar una flota para utilizar primero las reservas de capacidad bajo demanda `targeted` al iniciar instancias bajo demanda. También aprenderá a configurar la flota para que, cuando la capacidad total de destino bajo demanda supere el número de reservas de capacidad sin utilizar disponibles, la flota utilice la estrategia de asignación especificada a fin de seleccionar los grupos de instancias en los que iniciará la capacidad de destino restante.

**Configuración de la flota de EC2**

En este tutorial, la flota está configurada de la siguiente manera:
+ Capacidad de destino: 10 instancias bajo demanda
+ Total de reservas de capacidad `targeted` sin utilizar: 6 (menos que la capacidad de destino bajo demanda de 10 instancias bajo demanda de la flota)
+ Número de grupos de reservas de capacidad: 2 (`us-east-1a` y `us-east-1b`)
+ Número de reservas de capacidad por grupo: 3
+ Estrategia de asignación bajo demanda: `lowest-price` (cuando el número de reservas de capacidad sin utilizar es menor que la capacidad de destino bajo demanda, la flota determina los grupos en los que iniciará la capacidad bajo demanda restante en función de la estrategia de asignación bajo demanda).

  Tenga en cuenta que también puede utilizar la estrategia de asignación `prioritized` en lugar de la `lowest-price`.

**Para iniciar instancias bajo demanda en reservas de capacidad `targeted`, debe realizar una serie de pasos, como se indica a continuación:**
+ [

## Paso 1: crear reservas de capacidad
](#ec2-fleet-odcr-step1)
+ [

## Paso 2: crear un grupo de recursos de reserva de capacidad
](#ec2-fleet-odcr-step2)
+ [

## Paso 3: agregar las reservas de capacidad al grupo de recursos de reserva de capacidad
](#ec2-fleet-odcr-step3)
+ [

## (Opcional) Paso 4: ver las reservas de capacidad en el grupo de recursos
](#ec2-fleet-odcr-step4)
+ [

## Paso 5: crear una plantilla de inicialización que especifique que la reserva de capacidad se dirige a un grupo de recursos específico
](#ec2-fleet-odcr-step5)
+ [

## (Opcional) Paso 6: describir la plantilla de inicialización
](#ec2-fleet-odcr-step6)
+ [

## Paso 7: crear una flota de EC2
](#ec2-fleet-odcr-step7)
+ [

## (Opcional) Paso 8: ver el número de reservas de capacidad sin utilizar restantes
](#ec2-fleet-odcr-step8)

## Paso 1: crear reservas de capacidad
<a name="ec2-fleet-odcr-step1"></a>

Utilice el comando [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) a fin de crear las reservas de capacidad, tres para `us-east-1a` y otras tres para `us-east-1b`. Excepto por la zona de disponibilidad, los demás atributos de las reservas de capacidad son idénticos.

**3 reservas de capacidad en `us-east-1a`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Ejemplo del ID de reserva de capacidad resultante

```
cr-1234567890abcdef1
```

**3 reservas de capacidad en `us-east-1b`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Ejemplo del ID de reserva de capacidad resultante

```
cr-54321abcdef567890
```

## Paso 2: crear un grupo de recursos de reserva de capacidad
<a name="ec2-fleet-odcr-step2"></a>

Utilice el servicio `resource-groups` y el comando [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) para crear un grupo de recursos de reserva de capacidad. En este ejemplo, el grupo de recursos se llama `my-cr-group`. Para obtener información sobre por qué debe crear un grupo de recursos, consulte [Utilice las reservas de capacidad para reservar capacidad bajo demanda en la flota de EC2](ec2-fleet-on-demand-capacity-reservations.md).

```
aws resource-groups create-group \
    --name my-cr-group \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## Paso 3: agregar las reservas de capacidad al grupo de recursos de reserva de capacidad
<a name="ec2-fleet-odcr-step3"></a>

Utilice el servicio `resource-groups` y el comando [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) para agregar las reservas de capacidad que creó en el paso 1 al grupo de recursos de reserva de capacidad. Tenga en cuenta que debe hacer referencia a las reservas de capacidad bajo demanda por sus ARN.

```
aws resource-groups group-resources \
    --group my-cr-group \
    --resource-arns \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890
```

Ejemplo de resultado

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (Opcional) Paso 4: ver las reservas de capacidad en el grupo de recursos
<a name="ec2-fleet-odcr-step4"></a>

Utilice el servicio `resource-groups` y el comando [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html) para describir opcionalmente el grupo de recursos y ver sus reservas de capacidad.

```
aws resource-groups list-group-resources --group my-cr-group
```

Ejemplo de resultado

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## Paso 5: crear una plantilla de inicialización que especifique que la reserva de capacidad se dirige a un grupo de recursos específico
<a name="ec2-fleet-odcr-step5"></a>

Utilice el comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) para crear una plantilla de inicialización en la que se especificarán las reservas de capacidad que se utilizarán. En este ejemplo, la flota utilizará reservas de capacidad `targeted`, que se han agregado a un grupo de recursos. Por lo tanto, los datos de la plantilla de inicialización especifican que la reserva de capacidad se dirige a un grupo de recursos específico. En este ejemplo, la plantilla de inicialización se llama `my-launch-template`. 

```
aws ec2 create-launch-template \
    --launch-template-name my-launch-template \
    --launch-template-data \
        '{"ImageId": "ami-0123456789example",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" }
            }
        }'
```

## (Opcional) Paso 6: describir la plantilla de inicialización
<a name="ec2-fleet-odcr-step6"></a>

Utilice el comando [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) para describir opcionalmente la plantilla de inicialización y ver su configuración.

```
aws ec2 describe-launch-template-versions --launch-template-name my-launch-template
```

Ejemplo de resultado

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## Paso 7: crear una flota de EC2
<a name="ec2-fleet-odcr-step7"></a>

Cree una flota de EC2 que especifique la información de configuración de las instancias que iniciará. La siguiente configuración de flota de EC2 solo muestra las configuraciones pertinentes para este ejemplo. La plantilla de inicialización `my-launch-template` es la plantilla de inicialización que creó en el paso 5. Hay dos grupos de instancias, cada uno con el mismo tipo de instancias (`c5.xlarge`), pero con diferentes zonas de disponibilidad (`us-east-1a` y `us-east-1b`). El precio de los grupos de instancias es el mismo porque los precios se definen para la región, no por zona de disponibilidad. La capacidad total de destino es de 10 y el tipo de capacidad de destino predeterminado es `on-demand`. La estrategia de asignación bajo demanda es `lowest-price`. La estrategia de uso para las reservas de capacidad es `use-capacity-reservations-first`.

**nota**  
El tipo de flota debe ser `instant`. Otros tipos de flotas no admiten `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Después de crear la flota `instant` con la configuración anterior, se inician las siguientes 10 instancias para cumplir con la capacidad de destino:
+ Las reservas de capacidad se utilizan en primer lugar para iniciar 6 instancias bajo demanda de la siguiente manera:
  + 3 instancias bajo demanda se lanzan en las 3 reservas de capacidad `targeted` `c5.xlarge` en `us-east-1a`
  + 3 instancias bajo demanda se lanzan en las 3 reservas de capacidad `targeted` `c5.xlarge` en `us-east-1b`
+ Para alcanzar la capacidad de destino, se inician 4 instancias bajo demanda adicionales en la capacidad bajo demanda normal de acuerdo con la estrategia de asignación bajo demanda, que es `lowest-price` en este ejemplo. Sin embargo, dado que los grupos tienen el mismo precio (porque el precio es por región y no por zona de disponibilidad), la flota inicia las 4 instancias bajo demanda restantes en cualquiera de los grupos.

## (Opcional) Paso 8: ver el número de reservas de capacidad sin utilizar restantes
<a name="ec2-fleet-odcr-step8"></a>

Después de iniciar la flota, opcionalmente puede ejecutar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver cuántas reservas de capacidad sin utilizar quedan. En este ejemplo, debería ver la siguiente respuesta, que muestra que se utilizaron todas las reservas de capacidad de todos los grupos.

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```

# Tutorial: Configuración de la flota de EC2 para lanzar instancias en bloques de capacidad
<a name="ec2-fleet-launch-instances-capacity-blocks-walkthrough"></a>

En este tutorial se explican los pasos que debe seguir para que su flota de EC2 lance instancias en bloques de capacidad. 

En la mayoría de los casos, la capacidad de destino de la solicitud de la flota de EC2 debe ser menor o igual que la capacidad disponible de la reserva de bloques de capacidad a la que se dirige. No se atenderán las solicitudes de capacidad de destino que superen los límites de la reserva de bloques de capacidad. Si la solicitud de capacidad de destino supera los límites de su reserva de bloques de capacidad, se mostrará una `Insufficient Capacity Exception` para la capacidad que supere los límites de su reserva de bloques de capacidad.

**nota**  
En el caso de bloques de capacidad, la flota de EC2 no recurrirá a la inicialización de instancias bajo demanda en el resto de la capacidad de destino deseada.

Si flota de EC2 no puede cumplir con la capacidad de destino solicitada en una reserva de bloques de capacidad disponible, la flota de EC2 ocupará toda la capacidad posible y devolverá las instancias que haya podido iniciar. Puede repetir la llamada a la flota de EC2 de nuevo hasta que se hayan aprovisionado todas las instancias.

Tras configurar la solicitud de la flota de EC2, debe esperar hasta la fecha de inicio de la reserva de bloques de capacidad. Si hace solicitudes a la flota de EC2 para iniciar un bloque de capacidad que aún no se ha iniciado, se mostrará un `Insufficient Capacity Error`.

Una vez que se active su reserva de bloques de capacidad, podrá hacer llamadas a la API de la flota de EC2 y aprovisionar las instancias en su bloque de capacidad en función de los parámetros que haya seleccionado. Las instancias que se ejecutan en el bloque de capacidad seguirán ejecutándose hasta que las detenga o termine de forma manual o hasta que Amazon EC2 termine las instancias cuando finalice la reserva de bloques de capacidad.

Para obtener más información acerca de los bloques de capacidad, consulte [bloques de capacidad para ML](ec2-capacity-blocks.md).

**Consideraciones**
+ Solo se admiten las solicitudes de la flota de EC2 de tipo `instant` para lanzar instancias en bloques de capacidad. Para obtener más información, consulte [Configuración de una flota de EC2 de tipo instant](instant-fleet.md).
+ No se admiten varios bloques de capacidad en la misma solicitud de la flota de EC2.
+ No se admite el uso de `OnDemandTargetCapacity` ni `SpotTargetCapacity` al mismo tiempo que el valor de `capacity-block` esté establecido en `DefaultTargetCapacity`.
+ Si el valor de `DefaultTargetCapacityType` está establecido en `capacity-block`, no puede proporcionar `OnDemandOptions::CapacityReservationOptions`. Se producirá una excepción.

**Configuración de su flota de EC2 para lanzar instancias en bloques de capacidad**

1. **Creación de una plantilla de inicialización.**

   En la plantilla de inicialización, haga lo siguiente:
   + En `InstanceMarketOptionsRequest`, establezca `MarketType` en `capacity-block`.
   + Para definir como destino la reserva de bloque de capacidad, en `CapacityReservationID`, especifique el ID de reserva del bloque de capacidad.

   Anote el nombre y la versión de la plantilla de inicialización. Usará esta información en el siguiente paso.

   Para obtener más información acerca de la creación de una plantilla de inicialización, consulte [Creación de una plantilla de inicialización de Amazon EC2](create-launch-template.md). 

1. **Configure la flota de EC2.**

   Cree un archivo, `config.json`, con la siguiente configuración para su flota de EC2. En el ejemplo siguiente, reemplace los identificadores de recursos por sus propios identificadores de recursos. 

   Para obtener más información acerca de la configuración de la flota de EC2, consulte [Crear una flota de EC2](create-ec2-fleet.md).

   ```
   { 
       "LaunchTemplateConfigs": [
           {
               "LaunchTemplateSpecification": {
                   "LaunchTemplateName": "CBR-launch-template", 
                   "Version": "1"
               }, 
               "Overrides": [
                   {
                       "InstanceType": "p5.48xlarge", 
                       "AvailabilityZone": "us-east-1a"   
                   },
               ]
           }
       ], 
       "TargetCapacitySpecification": {
           "TotalTargetCapacity": 10, 
           "DefaultTargetCapacityType": "capacity-block"
       },
       "Type": "instant"
   }
   ```

1. **Inicialización de la flota.**

   Utilice el siguiente comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

   ```
   aws ec2 create-fleet --cli-input-json file://config.json
   ```

   Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md#create-ec2-fleet-procedure).

# Tutorial: Configuración de la flota de EC2 para lanzar instancias en reservas de capacidad interrumpibles
<a name="ec2-fleet-launch-instances-interruptible-cr-walkthrough"></a>

En este tutorial se explican los pasos que debe seguir para que su flota de EC2 lance instancias en reservas de capacidad interrumpibles.

Las reservas de capacidad interrumpibles representan la capacidad sobrante que le prestan los propietarios de reservas de capacidad bajo demanda de su organización de AWS. Estas reservas son adecuadas para cargas de trabajo interrumpibles, ya que el propietario de la capacidad puede recuperar la capacidad en cualquier momento con un aviso de interrupción de dos minutos, tras lo cual EC2 finaliza las instancias. Para obtener información sobre reservas de capacidad interrumpibles, consulte [Reservas de capacidad interrumpible](interruptible-capacity-reservations.md).

La capacidad de destino de la solicitud de la flota de EC2 debe ser menor o igual que la capacidad disponible de la reserva de capacidad interrumpible a la que se dirige. Si la solicitud de capacidad objetivo supera la capacidad disponible de su reserva de capacidad interrumpible, la flota de EC2 lanza tantas instancias como pueda e informa de las instancias lanzadas en la respuesta de la API.

Las instancias que se ejecutan en una reserva de capacidad interrumpible seguirán ejecutándose hasta que las detenga o terminen de forma manual, o hasta que el propietario de la capacidad recuperar la capacidad. Cuando el propietario de la capacidad recupera la capacidad, Amazon EC2 envía una notificación de Amazon EventBridge dos minutos antes de finalizar las instancias.

## Consideraciones
<a name="ec2-fleet-interruptible-cr-considerations"></a>
+ Solo se admiten las solicitudes de la flota de EC2 de tipo `instant` para lanzar instancias en reservas de capacidad interrumpibles.
+ No se admite el uso de `OnDemandTargetCapacity` ni `SpotTargetCapacity` al mismo tiempo que el valor de `reserved-capacity` esté establecido en `DefaultTargetCapacityType`.
+ Al especificar varias plantillas de lanzamiento, cada una dirigida a una reserva de capacidad interrumpible diferente, la flota de EC2 aprovisiona las instancias en todas las reservas coincidentes.
+ En el caso de las reservas de capacidad interrumpibles, la flota de EC2 no recurrirá a la inicialización de instancias bajo demanda o de spot en el resto de la capacidad de destino deseada.

## Verificar permisos
<a name="ec2-fleet-interruptible-cr-verify-permissions"></a>

Antes de crear una flota de EC2, compruebe que tiene un rol de IAM con los permisos necesarios. Para obtener más información, consulte [Requisitos previos de flota de EC2](ec2-fleet-prerequisites.md).

Para lanzar instancias en una reserva de capacidad interrumpible, debe realizar los siguientes pasos:

## Paso 1: crear una plantilla de inicialización
<a name="ec2-fleet-interruptible-cr-step1"></a>

Utilice el comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) para crear una plantilla de inicialización en la que se especificará la reserva de capacidad ininterrumpible de destino. En la plantilla de lanzamiento, establezca `MarketType` en `interruptible-capacity-reservation` y especifique el `CapacityReservationId` de su reserva de capacidad interrumpible.

Configuración de plantilla de lanzamiento de ejemplo:

```
{
    "LaunchTemplateName": "interruptible-cr-launch-template",
    "LaunchTemplateData": {
        "InstanceType": "m5.large",
        "ImageId": "ami-0abcdef1234567890",
        "CapacityReservationSpecification": {
            "CapacityReservationTarget": {
                "CapacityReservationId": "cr-0123456789abcdef0"
            }
        },
        "InstanceMarketOptions": {
            "MarketType": "interruptible-capacity-reservation"
        }
    }
}
```

Ejemplo de resultado

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-0123456789example",
        "LaunchTemplateName": "interruptible-cr-launch-template",
        "CreateTime": "2026-03-12T10:00:00.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

Para obtener más información, consulte [Creación de una plantilla de inicialización de Amazon EC2](create-launch-template.md).

## Paso 2: configure la flota de EC2.
<a name="ec2-fleet-interruptible-cr-step2"></a>

Cree un archivo de configuración para la flota de EC2 que especifique la plantilla de lanzamiento y la capacidad de destino. La siguiente configuración utiliza la plantilla de lanzamiento `interruptible-cr-launch-template` que creó en el Paso 1.

Debe especificar `ReservedCapacityOptions` con el valor `ReservationType` establecido en `interruptible-capacity-reservation` cuando se utilice `reserved-capacity` como `DefaultTargetCapacityType`.

Cree un archivo denominado `config.json` con el siguiente contenido:

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "interruptible-cr-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "reserved-capacity"
    },
    "ReservedCapacityOptions": {
        "ReservationType": ["interruptible-capacity-reservation"]
    },
    "Type": "instant"
}
```

Parámetros principales de configuración:


| Parámetro | Descripción | 
| --- | --- | 
| DefaultTargetCapacityType | Se debe configurar reserved-capacity como para indicar que las instancias deben lanzarse en una capacidad reservada. | 
| ReservedCapacityOptions | Especifica el tipo de capacidad reservada. Para las reservas de capacidad interrumpibles, establezca ReservationType en ["interruptible-capacity-reservation"]. | 
| Type | Debe establecerse en instant. Solo se admiten flotas instantáneas para las reservas de capacidad interrumpibles. | 

## Paso 3: inicie la flota y consulte los resultados
<a name="ec2-fleet-interruptible-cr-step3"></a>

Utilice el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para crear la flota:

```
aws ec2 create-fleet \
    --cli-input-json file://config.json
```

Después de crear la flota `instant` utilizando la configuración anterior, la flota de EC2 lanza 10 instancias en la reserva de capacidad interrumpible para cumplir con la capacidad de destino.

**nota**  
Si la flota no puede cumplir con toda la capacidad de destino, la respuesta incluye las instancias que se lanzaron y cualquier error relacionado con la capacidad no satisfecha.

Ejemplo de resultado

```
{
    "FleetId": "fleet-12345678-1234-1234-1234-123456789012",
    "Instances": [
        {
            "LaunchTemplateAndOverrides": {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            },
            "Lifecycle": "interruptible-capacity-reservation",
            "InstanceIds": [
                "i-0123456789example1",
                "i-0123456789example2",
                "i-0123456789example3",
                "i-0123456789example4",
                "i-0123456789example5",
                "i-0123456789example6",
                "i-0123456789example7",
                "i-0123456789example8",
                "i-0123456789example9",
                "i-0123456789example0"
            ],
            "InstanceType": "m5.large",
            "Platform": "Linux/UNIX"
        }
    ],
    "Errors": []
}
```

Para obtener más información, consulte [Crear una flota de EC2](create-ec2-fleet.md).

## Limpieza
<a name="ec2-fleet-interruptible-cr-cleanup"></a>

Para dejar de incurrir en cargos, termine las instancias cuando dejen de ser necesarias. Tenga en cuenta que EC2 también cancela de forma automática las instancias lanzadas a una reserva de capacidad interrumpible cuando el propietario de la capacidad recupera la capacidad.

## Recursos relacionados
<a name="ec2-fleet-interruptible-cr-related-resources"></a>
+ [Reservas de capacidad interrumpible](interruptible-capacity-reservations.md)
+ [Cómo reservar capacidad de computación con las reservas de capacidad bajo demanda de EC2](ec2-capacity-reservations.md)
+ [Trabajar con la flota de EC2](manage-ec2-fleet.md)
+ [Crear una flota de EC2](create-ec2-fleet.md)
+ [Almacenamiento de parámetros de inicialización de instancias en plantillas de inicialización de Amazon EC2](ec2-launch-templates.md)

# Configuraciones de CLI de ejemplo para la flota de EC2
<a name="ec2-fleet-examples"></a>

Puede definir la configuración de la flota de EC2 en un archivo JSON y, a continuación, hacer referencia a ese archivo con el comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para crear la flota de la siguiente manera:

```
aws ec2 create-fleet --cli-input-json file://file_name.json
```

Los siguientes ejemplos ilustran las configuraciones de inicio para varios casos de uso de la flota de EC2. Para obtener más información acerca de los parámetros de configuración, consulte [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

**Topics**
+ [

## Ejemplo 1: inicialización de instancias de spot como opción de compra predeterminada
](#ec2-fleet-config1)
+ [

## Ejemplo 2: inicialización de instancias bajo demanda como opción de compra predeterminada
](#ec2-fleet-config2)
+ [

## Ejemplo 3: inicialización de instancias bajo demanda como opción de capacidad principal
](#ec2-fleet-config3)
+ [

## Ejemplo 4: inicialización de instancias bajo demanda con varias reservas de capacidad
](#ec2-fleet-config5)
+ [

## Ejemplo 5: inicialización de instancias bajo demanda con reservas de capacidad cuando la capacidad total de destino supera el número de reservas de capacidad sin utilizar
](#ec2-fleet-config6)
+ [

## Ejemplo 6: inicialización de instancias bajo demanda con reservas de capacidad específicas
](#ec2-fleet-config7)
+ [

## Ejemplo 7: configuración del reequilibrio de capacidad para iniciar instancias de spot de reemplazo
](#ec2-fleet-config8)
+ [

## Ejemplo 8: inicialización de instancias de spot en una flota de capacidad optimizada
](#ec2-fleet-config9)
+ [

## Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades
](#ec2-fleet-config10)
+ [

## Ejemplo 10: inicialización de instancias de spot en una flota price-capacity-optimized
](#ec2-fleet-config11)
+ [

## Ejemplo 11: configuración de la selección de tipos de instancias basada en atributos
](#ec2-fleet-config12)

Para obtener más ejemplos de CLI para flotas de tipo`instant`, consulte [Configuración de una flota de EC2 de tipo instant](instant-fleet.md).

## Ejemplo 1: inicialización de instancias de spot como opción de compra predeterminada
<a name="ec2-fleet-config1"></a>

En el ejemplo siguiente se especifican los parámetros mínimos que se requieren en una flota de EC2: una plantilla de lanzamiento, la capacidad de destino y la opción de compra predeterminada. La plantilla de inicialización se identifica mediante su ID y número de versión. La capacidad de destino de la flota es de dos instancias y la opción de compra predeterminado es `spot`, lo que da lugar a que la flota lance dos instancias de spot.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "DefaultTargetCapacityType": "spot"
    }
}
```

## Ejemplo 2: inicialización de instancias bajo demanda como opción de compra predeterminada
<a name="ec2-fleet-config2"></a>

En el ejemplo siguiente se especifican los parámetros mínimos que se requieren en una flota de EC2: una plantilla de lanzamiento, la capacidad de destino y la opción de compra predeterminada. La plantilla de lanzamiento se identifica mediante su ID y número de versión. La capacidad de destino de la flota es de dos instancias y la opción de compra predeterminado es `on-demand`, lo que da lugar a que la flota lance dos instancias bajo demanda.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "DefaultTargetCapacityType": "on-demand"
    }
}
```

## Ejemplo 3: inicialización de instancias bajo demanda como opción de capacidad principal
<a name="ec2-fleet-config3"></a>

En el siguiente ejemplo se especifica una capacidad de destino total de 2 instancias para la flota y una capacidad de destino de 1 instancia a petición. La opción de compra predeterminada es `spot`. La flota inicia 1 instancia a petición según lo especificado, pero ha de iniciar otra instancia más para cubrir la capacidad de destino total. La opción de compra aplicada a la diferencia se calcula de la siguiente manera: `TotalTargetCapacity` – `OnDemandTargetCapacity` = `DefaultTargetCapacityType`, lo que da lugar a que la flota lance una instancia de spot.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "OnDemandTargetCapacity": 1,
        "DefaultTargetCapacityType": "spot"
    }
}
```

## Ejemplo 4: inicialización de instancias bajo demanda con varias reservas de capacidad
<a name="ec2-fleet-config5"></a>

Puede configurar una flota a fin de que utilice primero reservas de capacidad bajo demanda al iniciar instancias bajo demanda al establecer la estrategia de uso para las reservas de capacidad en `use-capacity-reservations-first`. En este ejemplo se muestra cómo la flota selecciona las reservas de capacidad que se utilizarán cuando hay más reservas de capacidad de las que se necesitan para cumplir con la capacidad de destino.

En este ejemplo, la configuración de flota es la siguiente:
+ Capacidad de destino: 12 instancias bajo demanda
+ Total de reservas de capacidad sin utilizar: 15 (más que la capacidad de destino de 12 instancias bajo demanda de la flota)
+ Número de grupos de reservas de capacidad: 3 (`m5.large`, `m4.xlarge` y `m4.2xlarge`)
+ Número de reservas de capacidad por grupo: 5
+ Estrategia de asignación bajo demanda: `lowest-price` (cuando hay varias reservas de capacidad sin utilizar en varios grupos de instancias, la flota determina los grupos en los que se iniciarán las instancias bajo demanda en función de la estrategia de asignación bajo demanda).

  Tenga en cuenta que también puede utilizar la estrategia de asignación `prioritized` en lugar de la `lowest-price`.

**Reservas de capacidad**

La cuenta tiene las siguientes 15 reservas de capacidad sin utilizar en 3 grupos diferentes. El número de reservas de capacidad en cada grupo se indica por `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "m4.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-333", 
    "InstanceType": "m4.2xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount":5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Configuración de flota**

La siguiente configuración de flota solo muestra las configuraciones pertinentes para este ejemplo. La capacidad total de destino es 12 y el tipo de capacidad de destino predeterminado es `on-demand`. La estrategia de asignación bajo demanda es `lowest-price`. La estrategia de uso para las reservas de capacidad es `use-capacity-reservations-first`. 

En este ejemplo, el precio de instancia bajo demanda es:
+ `m5.large`: 0,096 USD por hora
+ `m4.xlarge`: 0,20 USD por hora
+ `m4.2xlarge`: 0,40 USD por hora

**nota**  
El tipo de flota debe ser `instant`. Otros tipos de flotas no admiten `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-abc1234567example",
                "Version": "1"
            },
            "Overrides": [
                {
                  "InstanceType": "m5.large",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.2xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                }
              ]

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 12,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        }
    },
    "Type": "instant"
}
```

Después de crear la flota `instant` con la configuración anterior, se inician las siguientes 12 instancias para cumplir con la capacidad de destino:
+ 5 instancias bajo demanda `m5.large` en `us-east-1a`: `m5.large` en `us-east-1a` es el precio más bajo y hay 5 reservas de capacidad `m5.large` sin utilizar disponibles
+ 5 instancias bajo demanda `m4.xlarge` en us-east-1a: `m4.xlarge` en `us-east-1a` es el siguiente precio más bajo y hay 5 reservas de capacidad `m4.xlarge` sin utilizar disponibles
+ 2 instancias bajo demanda `m4.2xlarge` en us-east-1a: `m4.2xlarge` en `us-east-1a` es el tercer precio más bajo y hay 5 reservas de capacidad `m4.2xlarge` sin utilizar disponibles, de las cuales solo 2 son necesarias para satisfacer la capacidad de destino

Después de lanzar la flota, puede ejecutar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver cuántas reservas de capacidad sin utilizar quedan. En este ejemplo, debería ver la siguiente respuesta, que muestra que se utilizaron todas las reservas de capacidad `m5.large` y `m4.xlarge`, y quedan 3 reservas de capacidad `m4.2xlarge` sin utilizar.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "m4.xlarge", 
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-333",
    "InstanceType": "m4.2xlarge", 
    "AvailableInstanceCount": 3
}
```

## Ejemplo 5: inicialización de instancias bajo demanda con reservas de capacidad cuando la capacidad total de destino supera el número de reservas de capacidad sin utilizar
<a name="ec2-fleet-config6"></a>

Puede configurar una flota a fin de que utilice primero reservas de capacidad bajo demanda al iniciar instancias bajo demanda al establecer la estrategia de uso para las reservas de capacidad en `use-capacity-reservations-first`. En este ejemplo se muestra cómo la flota selecciona los grupos de instancias en los que se iniciarán las instancias bajo demanda cuando la capacidad total de destino supera el número de reservas de capacidad sin utilizar disponibles.

En este ejemplo, la configuración de flota es la siguiente:
+ Capacidad de destino: 16 instancias bajo demanda
+ Total de reservas de capacidad sin utilizar: 15 (menos que la capacidad de destino de 16 instancias bajo demanda de la flota)
+ Número de grupos de reservas de capacidad: 3 (`m5.large`, `m4.xlarge` y `m4.2xlarge`)
+ Número de reservas de capacidad por grupo: 5
+ Estrategia de asignación bajo demanda: `lowest-price` (cuando el número de reservas de capacidad sin utilizar es menor que la capacidad de destino bajo demanda, la flota determina los grupos en los que lanzará la capacidad bajo demanda restante en función de la estrategia de asignación bajo demanda).

  Tenga en cuenta que también puede utilizar la estrategia de asignación `prioritized` en lugar de la `lowest-price`.

**Reservas de capacidad**

La cuenta tiene las siguientes 15 reservas de capacidad sin utilizar en 3 grupos diferentes. El número de reservas de capacidad en cada grupo se indica por `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "m4.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-333", 
    "InstanceType": "m4.2xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount":5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Configuración de flota**



La siguiente configuración de flota solo muestra las configuraciones pertinentes para este ejemplo. La capacidad total de destino es 16 y el tipo de capacidad de destino predeterminado es `on-demand`. La estrategia de asignación bajo demanda es `lowest-price`. La estrategia de uso para las reservas de capacidad es `use-capacity-reservations-first`. 

En este ejemplo, el precio de instancia bajo demanda es:
+ m5.large – 0,096 USD por hora
+ m4.xlarge – 0,20 USD por hora
+ m4.2xlarge: 0,40 USD por hora

**nota**  
El tipo de flota debe ser `instant`. Otros tipos de flotas no admiten `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            },
            "Overrides": [
                {
                  "InstanceType": "m5.large",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.2xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                }
              ]

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 16,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price"
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        }
    },
    "Type": "instant",
}
```

Después de crear la flota `instant` con la configuración anterior, se inician las siguientes 16 instancias para satisfacer la capacidad de destino:
+ 6 instancias bajo demanda `m5.large` en `us-east-1a`: `m5.large` en `us-east-1a` es el precio más bajo y hay 5 reservas de capacidad `m5.large` sin utilizar disponibles. Las reservas de capacidad se utilizan en primer lugar para iniciar 5 instancias bajo demanda. Luego de que se utilicen las reservas de capacidad `m4.xlarge` y `m4.2xlarge` restantes, se inicia una instancia bajo demanda adicional de acuerdo con la estrategia de asignación bajo demanda, que es `lowest-price` en este ejemplo, para alcanzar la capacidad de destino.
+ 5 instancias bajo demanda `m4.xlarge` en `us-east-1a`: `m4.xlarge` en `us-east-1a` es el siguiente precio más bajo y hay 5 reservas de capacidad `m4.xlarge` sin utilizar disponibles
+ 5 instancias bajo demanda `m4.2xlarge` en `us-east-1a`: `m4.2xlarge` en `us-east-1a` es el tercer precio más bajo y hay 5 reservas de capacidad `m4.2xlarge` sin utilizar disponibles

Después de lanzar la flota, puede ejecutar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver cuántas reservas de capacidad sin utilizar quedan. En este ejemplo, debería ver la siguiente respuesta, que muestra que se utilizaron todas las reservas de capacidad de todos los grupos.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "m4.xlarge", 
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-333",
    "InstanceType": "m4.2xlarge", 
    "AvailableInstanceCount": 0
}
```

## Ejemplo 6: inicialización de instancias bajo demanda con reservas de capacidad específicas
<a name="ec2-fleet-config7"></a>

Puede configurar una flota a fin de que utilice primero reservas de capacidad bajo demanda `targeted` al iniciar instancias bajo demanda al establecer la estrategia de uso para las reservas de capacidad en `use-capacity-reservations-first`. En este ejemplo se muestra cómo iniciar instancias bajo demanda en reservas de capacidad `targeted`, donde los atributos de las reservas de capacidad son los mismos, excepto por sus zonas de disponibilidad (`us-east-1a` y `us-east-1b`). También se muestra cómo la flota selecciona los grupos de instancias en los que se iniciarán las instancias bajo demanda cuando la capacidad total de destino supera el número de reservas de capacidad sin utilizar disponibles.

En este ejemplo, la configuración de flota es la siguiente:
+ Capacidad de destino: 10 instancias bajo demanda
+ Total de reservas de capacidad `targeted` sin utilizar: 6 (menos que la capacidad de destino bajo demanda de 10 instancias bajo demanda de la flota)
+ Número de grupos de reservas de capacidad: 2 (`us-east-1a` y `us-east-1b`)
+ Número de reservas de capacidad por grupo: 3
+ Estrategia de asignación bajo demanda: `lowest-price` (cuando el número de reservas de capacidad sin utilizar es menor que la capacidad de destino bajo demanda, la flota determina los grupos en los que iniciará la capacidad bajo demanda restante en función de la estrategia de asignación bajo demanda).

  Tenga en cuenta que también puede utilizar la estrategia de asignación `prioritized` en lugar de la `lowest-price`.

Para obtener una explicación de los procedimientos que debe realizar para llevar a cabo este ejemplo, consulte [Tutorial: Configuración de la flota de EC2 para lanzar instancias bajo demanda con reservas de capacidad específicas](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md).

**Reservas de capacidad**

La cuenta tiene las siguientes 6 reservas de capacidad sin utilizar en 2 grupos diferentes. En este ejemplo, los grupos difieren en las zonas de disponibilidad. El número de reservas de capacidad en cada grupo se indica por `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "c5.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "c5.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1b", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Configuración de flota**

La siguiente configuración de flota solo muestra las configuraciones pertinentes para este ejemplo. La capacidad total de destino es de 10 y el tipo de capacidad de destino predeterminado es `on-demand`. La estrategia de asignación bajo demanda es `lowest-price`. La estrategia de uso para las reservas de capacidad es `use-capacity-reservations-first`. 

En este ejemplo, el precio de la instancia bajo demanda para `c5.xlarge` en `us-east-1` es 0,17 USD por hora.

**nota**  
El tipo de flota debe ser `instant`. Otros tipos de flotas no admiten `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Después de crear la flota `instant` con la configuración anterior, se inician las siguientes 10 instancias para cumplir con la capacidad de destino:
+ Las reservas de capacidad se utilizan en primer lugar para iniciar 6 instancias bajo demanda de la siguiente manera:
  + 3 instancias bajo demanda se lanzan en las 3 reservas de capacidad `targeted` `c5.xlarge` en `us-east-1a`
  + 3 instancias bajo demanda se lanzan en las 3 reservas de capacidad `targeted` `c5.xlarge` en `us-east-1b`
+ Para alcanzar la capacidad de destino, se inician 4 instancias bajo demanda adicionales en la capacidad bajo demanda normal de acuerdo con la estrategia de asignación bajo demanda, que es `lowest-price` en este ejemplo. Sin embargo, dado que los grupos tienen el mismo precio (porque el precio es por región y no por zona de disponibilidad), la flota lanza las 4 instancias bajo demanda restantes en cualquiera de los grupos.

Después de lanzar la flota, puede ejecutar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver cuántas reservas de capacidad sin utilizar quedan. En este ejemplo, debería ver la siguiente respuesta, que muestra que se utilizaron todas las reservas de capacidad de todos los grupos.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "c5.xlarge",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "c5.xlarge", 
    "AvailableInstanceCount": 0
}
```

## Ejemplo 7: configuración del reequilibrio de capacidad para iniciar instancias de spot de reemplazo
<a name="ec2-fleet-config8"></a>

En el siguiente ejemplo, se configura la flota de EC2 para iniciar una instancia de spot de reemplazo cuando Amazon EC2 emite una recomendación de reequilibrio para una instancia de spot en su flota. Para configurar el reemplazo automático de Instancias de spot para `ReplacementStrategy`, especifique `launch-before-terminate`. Para configurar el retraso de tiempo desde que se inician las nuevas instancias de spot de reemplazo hasta que se eliminan automáticamente las instancias de spot anteriores, especifique en `termination-delay` un valor en segundos. Para obtener más información, consulte [Opciones de configuración](ec2-fleet-capacity-rebalance.md#ec2-fleet-capacity-rebalance-config-options).

**nota**  
Recomendamos utilizar `launch-before-terminate` solo si puede predecir cuánto tardarán en completarse los procedimientos de cierre de instancias, de modo que las instancias anteriores solo terminen una vez que se hayan completado estos procedimientos. Se cobrará por todas las instancias mientras se ejecutan.

La efectividad de la estrategia de reequilibrio de capacidad depende del número de grupos de capacidades de spot especificadas en la solicitud de flota de EC2. Se recomienda configurar la flota con un conjunto diversificado de tipos de instancia y zonas de disponibilidad y, en `AllocationStrategy`, especifique `capacity-optimized`. Para obtener más información acerca de lo que debe tener en cuenta al configurar una flota de EC2 para reequilibrio de la capacidad, consulte [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).

```
{
    "ExcessCapacityTerminationPolicy": "termination",
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "LaunchTemplate",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "c3.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c4.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c5.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       }
                ] 
          }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 5,
        "DefaultTargetCapacityType": "spot"
    },
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "MaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch-before-terminate",
                "TerminationDelay": "720"
            }
        }
    }
}
```

## Ejemplo 8: inicialización de instancias de spot en una flota de capacidad optimizada
<a name="ec2-fleet-config9"></a>

En el siguiente ejemplo se demuestra el modo de configurar una flota de EC2 con una estrategia de asignación de spot que optimiza la capacidad. Para optimizar la capacidad, debe establecer `AllocationStrategy` en `capacity-optimized`.

En el siguiente ejemplo, las tres especificaciones de inicialización determinan tres grupos de capacidad de spot. La capacidad de destino es de 50 instancias de spot. La flota de EC2 intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con capacidad óptima para el número de instancias que va a iniciar.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "r4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                 ] 
           }
    ],
    "TargetCapacitySpecification": {
            "TotalTargetCapacity": 50,
            "DefaultTargetCapacityType": "spot"

    }
}
```

## Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades
<a name="ec2-fleet-config10"></a>

En el siguiente ejemplo se demuestra el modo de configurar una flota de EC2 con una estrategia de asignación de spot que optimiza la capacidad mientras utiliza la prioridad sobre la base del mejor esfuerzo.

Cuando se utiliza la estrategia de asignación `capacity-optimized-prioritized`, puede utilizar el parámetro `Priority` para especificar las prioridades de los grupos de capacidad de spot, donde cuanto menor es el número, mayor es la prioridad. También puede establecer la misma prioridad para varios grupos de capacidad de spot si los prefiere por igual. Si no establece una prioridad para un grupo, este se considerará último en términos de prioridad.

Para priorizar los grupos de capacidad de spot, debe establecer `AllocationStrategy` en `capacity-optimized-prioritized`. La flota de EC2 optimizará la capacidad en primer lugar, pero respetará las prioridades sobre la base del mejor esfuerzo (por ejemplo, si respetar las prioridades no afecta significativamente la capacidad de la flota de EC2 para aprovisionar capacidad óptima). Esta es una buena opción para cargas de trabajo en las que se debe minimizar la posibilidad de interrupción y también importa la preferencia por ciertos tipos de instancias.

En el siguiente ejemplo, las tres especificaciones de lanzamiento determinan tres grupos de capacidad de spot. Cada grupo se prioriza, de manera que cuanto menor sea el número, mayor es la prioridad. La capacidad de destino es de 50 instancias de spot. La flota de EC2 intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con la máxima prioridad sobre la base del mejor esfuerzo, pero optimiza primero la capacidad.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized-prioritized"
        },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                        {
                           "InstanceType": "r4.2xlarge",    
                           "Priority": 1,
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Priority": 2,
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Priority": 3,
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                  ] 
             }
    ],
    "TargetCapacitySpecification": {
            "TotalTargetCapacity": 50,
            "DefaultTargetCapacityType": "spot"
}
```

## Ejemplo 10: inicialización de instancias de spot en una flota price-capacity-optimized
<a name="ec2-fleet-config11"></a>

En el siguiente ejemplo, se muestra cómo configurar una flota de EC2 con una estrategia de asignación de spot que optimiza tanto para la capacidad como para el precio más bajo. Para optimizar la capacidad, además de tener en cuenta el precio, debe establecer el elemento `AllocationStrategy` de spot en `price-capacity-optimized`.

En el siguiente ejemplo, las tres especificaciones de inicialización determinan tres grupos de capacidad de spot. La capacidad de destino es de 50 instancias de spot. La flota de EC2 intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con capacidad óptima para la cantidad de instancias que se van a iniciar y, al mismo tiempo, elegir el grupo que tenga el precio más bajo.

```
{
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized",
        "MinTargetCapacity": 2,
        "SingleInstanceType": true
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price"
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "r4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                 ] 
           }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 50,
        "OnDemandTargetCapacity":0,
        "SpotTargetCapacity":50,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

## Ejemplo 11: configuración de la selección de tipos de instancias basada en atributos
<a name="ec2-fleet-config12"></a>

En el siguiente ejemplo, se muestra cómo configurar una flota de EC2 para utilizar la selección de tipos de instancia basada en atributos para identificar los tipos de instancia. Para especificar los atributos de instancia necesarios, especifique los atributos en la estructura de `InstanceRequirements`.

En el siguiente ejemplo, se especifican dos atributos de instancia:
+ `VCpuCount`: se especifica un mínimo de 2 vCPU. Como no se especifica ningún máximo, no hay ningún límite máximo.
+ `MemoryMiB`: se especifica un mínimo de 4 MiB de memoria. Como no se especifica ningún máximo, no hay ningún límite máximo.

Se identificarán los tipos de instancia que tengan 2 o más vCPU y 4 MiB o más de memoria. Sin embargo, la protección de precios y la estrategia de asignación pueden excluir algunos tipos de instancia cuando la [flota de EC2 aprovisiona la flota](ec2-fleet-attribute-based-instance-type-selection.md#how-ef-uses-abs).

Para obtener una lista y descripciones de todos los atributos posibles que se pueden especificar, consulte [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html) en la *Referencia de la API de Amazon EC2*.

```
{
	"SpotOptions": {
		"AllocationStrategy": "price-capacity-optimized"
	},
	"LaunchTemplateConfigs": [{
		"LaunchTemplateSpecification": {
			"LaunchTemplateName": "my-launch-template",
			"Version": "1"
		},
		"Overrides": [{
			"InstanceRequirements": {
				"VCpuCount": {
					"Min": 2
				},
				"MemoryMiB": {
					"Min": 4
				}
			}
		}]
	}],
	"TargetCapacitySpecification": {
		"TotalTargetCapacity": 20,
		"DefaultTargetCapacityType": "spot"
	},
	"Type": "instant"
}
```

# Ejemplos de configuraciones de CLI de flota de spot
<a name="spot-fleet-examples"></a>

Puede definir su configuración de flota de spot en un archivo JSON y, a continuación, hacer referencia a ese archivo mediante el comando de AWS CLI [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) para crear su flota de la siguiente manera:

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

Los siguientes ejemplos ilustran las configuraciones de inicio para varios casos de uso de flota de spot. Para obtener más información acerca de los parámetros de configuración, consulte [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html). Para obtener más información sobre la creación de una flota de spot, consulte [Crear una flota de spot](create-spot-fleet.md).

**nota**  
En la flota de spot, no se puede indicar un ID de interfaz de red en una especificación de inicialización. No olvide omitir el parámetro `NetworkInterfaceID` en la plantilla o especificación de inicialización.

**Topics**
+ [

## Ejemplo 1: inicialización de instancias de spot con la zona de disponibilidad de menor precio de la región
](#fleet-config1)
+ [

## Ejemplo 2: inicialización de instancias de spot con la zona de disponibilidad de menor precio de una lista
](#fleet-config2)
+ [

## Ejemplo 3: inicialización de instancias de spot con el tipo de instancia de menor precio de una lista
](#fleet-config3)
+ [

## Ejemplo 4. Anulación del precio para la solicitud
](#fleet-config4)
+ [

## Ejemplo 5: inicialización de una flota de spot con la estrategia de asignación diversificada
](#fleet-config5)
+ [

## Ejemplo 6: inicialización de una flota de spot con ponderación de instancias
](#fleet-config6)
+ [

## Ejemplo 7: inicialización de una flota de spot con capacidad bajo demanda
](#fleet-config7)
+ [

## Ejemplo 8: configurar el reequilibrio de capacidad para iniciar instancias de spot de reemplazo
](#fleet-config8)
+ [

## Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada
](#fleet-config9)
+ [

## Ejemplo 10: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades
](#fleet-config10)
+ [

## Ejemplo 11: inicialización de instancias de spot en una flota priceCapacityOptimized
](#fleet-config11)
+ [

## Ejemplo 12: configuración de la selección de tipos de instancia basada en atributos
](#fleet-config12)

## Ejemplo 1: inicialización de instancias de spot con la zona de disponibilidad de menor precio de la región
<a name="fleet-config1"></a>

En el siguiente ejemplo se describe una especificación de inicialización sin una zona de disponibilidad o una subred. La flota de spot inicia las instancias en la zona de disponibilidad de menor precio que tenga una subred predeterminada. El precio que paga no supera el precio bajo demanda.

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "m3.medium",
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ]
}
```

## Ejemplo 2: inicialización de instancias de spot con la zona de disponibilidad de menor precio de una lista
<a name="fleet-config2"></a>

En los siguientes ejemplos se describen dos especificaciones de inicialización con zonas de disponibilidad o subredes diferentes, pero el mismo tipo de instancia y AMI.

**Zonas de disponibilidad**

La flota de spot inicia las instancias en la subred predeterminada de la zona de disponibilidad de menor precio que ha especificado.

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

**Subredes**

Puede especificar subredes predeterminadas o subredes no predeterminadas, y estas últimas pueden ser de una VPC predeterminada o de una VPC no predeterminada. El servicio de spot inicia las instancias en la subred que está en la zona de disponibilidad de menor precio.

No puede especificar diferentes subredes de la misma zona de disponibilidad en una solicitud de flota de spot.

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "m3.medium",
          "SubnetId": "subnet-a61dafcf, subnet-65ea5f08",
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ]
}
```

Si las instancias se inician en una VPC predeterminada, reciben una dirección IPv4 pública de forma predeterminada. Si las instancias se inician en una VPC no predeterminada, no reciben una dirección IPv4 pública de forma predeterminada. Use una interfaz de red en la especificación de inicialización para asignar una dirección IPv4 pública a las instancias iniciadas en una VPC no predeterminada. Si especifica una interfaz de red, debe incluir el ID de subred y el ID de grupo de seguridad mediante la interfaz de red.

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

## Ejemplo 3: inicialización de instancias de spot con el tipo de instancia de menor precio de una lista
<a name="fleet-config3"></a>

En los siguientes ejemplos se describen dos configuraciones de inicialización con tipos de instancias diferentes, pero la misma AMI y zona de disponibilidad o subred. La flota de spot inicia las instancias mediante el tipo de instancia especificado con el menor precio.

**Zona de disponibilidad**

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "c5.4xlarge",
          "Placement": {
            "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "r3.8xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
  ]
}
```

**Subred**

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "c5.4xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "r3.8xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      }
  ]
}
```

## Ejemplo 4. Anulación del precio para la solicitud
<a name="fleet-config4"></a>

Le recomendamos usar el precio máximo predeterminado, que es el precio bajo demanda. Si lo prefiere, puede especificar un precio máximo para la solicitud de flota y precios máximos para las especificaciones de inicialización individuales.

En los siguientes ejemplos se especifica un precio máximo para la solicitud de flota y precios máximos para dos de las tres especificaciones de inicialización. El precio máximo para la solicitud de flota se usa para cualquier especificación de inicialización que no especifique un precio máximo. La flota de spot inicia las instancias mediante el tipo de instancia con el menor precio.

**Zona de disponibilidad**

```
{
  "SpotPrice": "1.00",
  "TargetCapacity": 30,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "SpotPrice": "0.10"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.4xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "SpotPrice": "0.20"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.8xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
    ]
}
```

**Subred**

```
{
  "SpotPrice": "1.00",
  "TargetCapacity": 30,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.2xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "SpotPrice": "0.10"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.4xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "SpotPrice": "0.20"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.8xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      }
  ]
}
```

## Ejemplo 5: inicialización de una flota de spot con la estrategia de asignación diversificada
<a name="fleet-config5"></a>

En el siguiente ejemplo se usa la estrategia de asignación `diversified`. Las especificaciones de inicialización tienen tipos de instancias diferentes, pero la misma AMI y zona de disponibilidad o subred. La flota de spot distribuye las 30 instancias entre las tres especificaciones de inicialización, de forma que haya 10 instancias de cada tipo. Para obtener más información, consulte [Utilice estrategias de asignación para determinar cómo la flota de EC2 o la flota de spot satisfacen la capacidad de spot y bajo demanda](ec2-fleet-allocation-strategy.md).

**Zona de disponibilidad**

```
{
  "SpotPrice": "0.70", 
  "TargetCapacity": 30,
  "AllocationStrategy": "diversified",
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c4.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "m3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
  ]
}
```

**Subred**

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

Una práctica recomendada para aumentar la posibilidad de que una solicitud de spot se pueda satisfacer por la capacidad EC2 en caso de interrupción en una de las zonas de disponibilidad consiste en diversificar a través de zonas de disponibilidad. Para esta situación, incluya en la especificación de inicialización todas las zonas de disponibilidad que tenga a su disposición. Y, en lugar de utilizar la misma subred cada vez, utilice tres subredes únicas (cada una con mapeo a una zona de disponibilidad distinta). 

**Zona de disponibilidad**

```
{
  "SpotPrice": "0.70", 
  "TargetCapacity": 30,
  "AllocationStrategy": "diversified",
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c4.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2a"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "m3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2c"
          }
      }
  ]
}
```

**Subred**

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

## Ejemplo 6: inicialización de una flota de spot con ponderación de instancias
<a name="fleet-config6"></a>

En los siguientes ejemplos se usa ponderación de instancias, que significa que el precio se determina por hora de unidad en lugar de por hora de instancia. Cada configuración de inicialización enumera un tipo de instancia y una ponderación diferentes. La flota de spot selecciona el tipo de instancia con el menor precio por hora de unidad. La flota de spot calcula el número de instancias de spot que debe iniciar mediante la división de la capacidad de destino por la ponderación de instancias. Si el resultado no es un entero, la flota de spot lo redondea al siguiente entero, de manera que el tamaño de la flota no esté por debajo de su capacidad de destino.

Si la solicitud de `r3.2xlarge` se realiza con éxito, la spot aprovisiona 4 de estas instancias. Se divide 20 por 6 que da un total de 3,33 instancias, que se redondean a 4 instancias.

Si la solicitud de `c3.xlarge` se realiza con éxito, la spot aprovisiona 7 de estas instancias. Se divide 20 por 3 que da un total de 6,66 instancias, que se redondean a 7 instancias.

Para obtener más información, consulte [Utilice la ponderación de instancias para gestionar los costes y el rendimiento de la flota de EC2 o la flota de spot.](ec2-fleet-instance-weighting.md).

**Zona de disponibilidad**

```
{
  "SpotPrice": "0.70",
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "WeightedCapacity": 6
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "WeightedCapacity": 3
      }
    ]
}
```

**Subred**

```
{
  "SpotPrice": "0.70",
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "WeightedCapacity": 6
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "WeightedCapacity": 3
      }
  ]
}
```

## Ejemplo 7: inicialización de una flota de spot con capacidad bajo demanda
<a name="fleet-config7"></a>

Para asegurarse de que dispone siempre de capacidad de instancias, puede incluir una solicitud de capacidad bajo demanda en la solicitud de flota de spot. Si hay capacidad, siempre se cumple la solicitud bajo demanda. El saldo de la capacidad de destino se cumple como spot si hay capacidad y disponibilidad.

En el siguiente ejemplo se especifica una capacidad de destino deseada de 10, de las que 5 unidades deben ser de capacidad bajo demanda. La capacidad de spot no se especifica; sino que está implícita en el saldo de la capacidad de destino menos la capacidad bajo demanda. Amazon EC2 inicia 5 unidades de capacidad como unidades bajo demanda y 5 unidades de capacidad (10 - 5 = 5) como unidades de spot si hay disponibilidad y capacidad de Amazon EC2 disponible. 

```
{
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "AllocationStrategy": "lowestPrice",
  "TargetCapacity": 10,
  "SpotPrice": null,
  "ValidFrom": "2018-04-04T15:58:13Z",
  "ValidUntil": "2019-04-04T15:58:13Z",
  "TerminateInstancesWithExpiration": true,
  "LaunchSpecifications": [],
  "Type": "maintain",
  "OnDemandTargetCapacity": 5,
  "LaunchTemplateConfigs": [
    {
      "LaunchTemplateSpecification": {
        "LaunchTemplateId": "lt-0dbb04d4a6cca5ad1",
        "Version": "2"
      },
      "Overrides": [
        {
          "InstanceType": "t2.medium",
          "WeightedCapacity": 1,
          "SubnetId": "subnet-d0dc51fb"
        }
      ]
    }
  ]
}
```

## Ejemplo 8: configurar el reequilibrio de capacidad para iniciar instancias de spot de reemplazo
<a name="fleet-config8"></a>

En el siguiente ejemplo, se configura una flota de spot para iniciar una instancia de spot de reemplazo cuando Amazon EC2 emita una recomendación de reequilibrio para una instancia de spot en su flota. Para configurar el reemplazo automático de instancias de spot, en `ReplacementStrategy` especifique `launch-before-terminate`. Para configurar el retraso de tiempo desde la inicialización de las nuevas instancias de spot de reemplazo hasta la eliminación automática de las instancias de spot anteriores, especifique en `termination-delay` un valor en segundos. Para obtener más información, consulte [Opciones de configuración](ec2-fleet-capacity-rebalance.md#ec2-fleet-capacity-rebalance-config-options).

**nota**  
Recomendamos utilizar `launch-before-terminate` solo si puede predecir cuánto tiempo tardarán en completarse los procedimientos de cierre de instancias. Esto garantiza que las instancias anteriores terminen solo después de que se hayan completado los procedimientos de cierre. Se cobrará por todas las instancias mientras se ejecutan.

La efectividad de la estrategia de reequilibrio de capacidad depende del número de grupos de capacidades de spot especificados en la solicitud flota de spot. Se recomienda configurar la flota con un conjunto diversificado de tipos de instancia y zonas de disponibilidad y para `AllocationStrategy`especificar `capacityOptimized`. Para obtener más información sobre lo que debe tener en cuenta al momento de configurar una flota de spot para el reequilibrio de la capacidad, consulte [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).

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimized",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "LaunchTemplate",
                    "Version": "1"
                },
                 "Overrides": [
                       {
                           "InstanceType": "c3.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c4.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c5.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       }
                ] 
          }
    ],
        "TargetCapacity": 5,
        "SpotMaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch-before-terminate",
                "TerminationDelay": "720"
            }
        }
    }
}
```

## Ejemplo 9: lanzamiento de instancias de spot en una flota de capacidad optimizada
<a name="fleet-config9"></a>

En el siguiente ejemplo se demuestra cómo configurar una flota de spot con una estrategia de asignación de spot que optimiza la capacidad. Para optimizar la capacidad, debe establecer `AllocationStrategy` en `capacityOptimized`.

En el siguiente ejemplo, las tres especificaciones de inicialización determinan tres grupos de capacidad de spot. La capacidad de destino es de 50 instancias de spot. La flota de spot intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con capacidad óptima para el número de instancias que va a iniciar.

```
{
    "TargetCapacity": "50",
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimized",
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "r4.2xlarge",  
                    "AvailabilityZone": "us-west-2a"
                },
                {
                    "InstanceType": "m4.2xlarge",
                    "AvailabilityZone": "us-west-2b"
                }, 
                {
                    "InstanceType": "c5.2xlarge",
                    "AvailabilityZone": "us-west-2b"
                }
            ] 
        }
    ]
}
```

## Ejemplo 10: lanzamiento de instancias de spot en una flota de capacidad optimizada con prioridades
<a name="fleet-config10"></a>

En el siguiente ejemplo se demuestra cómo configurar una flota de spot con una estrategia de asignación de spot que optimiza la capacidad mientras se utiliza la prioridad sobre la base del mejor esfuerzo.

Cuando se utiliza la estrategia de asignación `capacityOptimizedPrioritized`, puede utilizar el parámetro `Priority` para especificar las prioridades de los grupos de capacidad de spot, donde cuanto menor es el número, mayor es la prioridad. También puede establecer la misma prioridad para varios grupos de capacidad de spot si los prefiere por igual. Si no establece una prioridad para un grupo, este se considerará último en términos de prioridad.

Para priorizar los grupos de capacidad de spot, debe establecer `AllocationStrategy` en `capacityOptimizedPrioritized`. La flota de spot optimizará primero la capacidad, pero respetará las prioridades sobre la base del mejor esfuerzo (por ejemplo, si el respeto de las prioridades no afecta significativamente la capacidad de la flota de spot para aprovisionar capacidad óptima). Esta es una buena opción para cargas de trabajo en las que se debe minimizar la posibilidad de interrupción y también importa la preferencia por ciertos tipos de instancias.

En el siguiente ejemplo, las tres especificaciones de lanzamiento determinan tres grupos de capacidad de spot. Cada grupo se prioriza, de manera que cuanto menor sea el número, mayor es la prioridad. La capacidad de destino es de 50 instancias de spot. La flota de spot intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con la máxima prioridad sobre la base del mejor esfuerzo, pero optimiza primero la capacidad.

```
{
    "TargetCapacity": "50",
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimizedPrioritized"
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "r4.2xlarge",    
                   "Priority": 1,
                    "AvailabilityZone": "us-west-2a"
                },
                {
                           "InstanceType": "m4.2xlarge",
                           "Priority": 2,
                           "AvailabilityZone": "us-west-2b"
                }, 
                {
                           "InstanceType": "c5.2xlarge",
                           "Priority": 3,
                           "AvailabilityZone": "us-west-2b"
                }
            ] 
        }
    ]
}
```

## Ejemplo 11: inicialización de instancias de spot en una flota priceCapacityOptimized
<a name="fleet-config11"></a>

En el siguiente ejemplo, se muestra cómo configurar una flota de spot con una estrategia de asignación de spot que optimiza tanto para la capacidad como para el precio más bajo. Para optimizar la capacidad, además de tener en cuenta el precio, debe establecer el elemento `AllocationStrategy` de spot en `priceCapacityOptimized`.

En el siguiente ejemplo, las tres especificaciones de inicialización determinan tres grupos de capacidad de spot. La capacidad de destino es de 50 instancias de spot. La flota de spot intenta iniciar 50 instancias de spot en el grupo de capacidad de spot con capacidad óptima para la cantidad de instancias que se van a iniciar y, al mismo tiempo, elegir el grupo que tenga el precio más bajo.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "OnDemandAllocationStrategy": "lowestPrice",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111111111111:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": [
                     {
                           "InstanceType": "r4.2xlarge",  
                           "AvailabilityZone": "us-west-2a"
                      },
                      {
                           "InstanceType": "m4.2xlarge",
                           "AvailabilityZone": "us-west-2b"
                      }, 
                      {
                           "InstanceType": "c5.2xlarge",
                           "AvailabilityZone": "us-west-2b"
                      }
                ]
            }
        ],
        "TargetCapacity": 50,
        "Type": "request"
    }
}
```

## Ejemplo 12: configuración de la selección de tipos de instancia basada en atributos
<a name="fleet-config12"></a>

En el siguiente ejemplo, se muestra cómo configurar una flota de spot para utilizar la selección de tipos de instancia basada en atributos para identificar los tipos de instancia. Para especificar los atributos de instancia necesarios, especifique los atributos en la estructura de `InstanceRequirements`.

En el siguiente ejemplo, se especifican dos atributos de instancia:
+ `VCpuCount`: se especifica un mínimo de 2 vCPU. Como no se especifica ningún máximo, no hay ningún límite máximo.
+ `MemoryMiB`: se especifica un mínimo de 4 MiB de memoria. Como no se especifica ningún máximo, no hay ningún límite máximo.

Se identificarán los tipos de instancia que tengan 2 o más vCPU y 4 MiB o más de memoria. Sin embargo, la protección de precios y la estrategia de asignación pueden excluir algunos tipos de instancias cuando la [flota de spot aprovisiona la flota](ec2-fleet-attribute-based-instance-type-selection.md#how-ef-uses-abs).

Para obtener una lista y descripciones de todos los atributos posibles que se pueden especificar, consulte [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html) en la *Referencia de la API de Amazon EC2*.

```
{
	"AllocationStrategy": "priceCapacityOptimized",
	"TargetCapacity": 20,
	"Type": "request",
	"LaunchTemplateConfigs": [{
		"LaunchTemplateSpecification": {
			"LaunchTemplateName": "my-launch-template",
			"Version": "1"
		},
		"Overrides": [{
			"InstanceRequirements": {
				"VCpuCount": {
					"Min": 2
				},
				"MemoryMiB": {
					"Min": 4
				}
			}
		}]
	}]
}
```

# Cuotas para la flota de EC2 y la flota de spot
<a name="fleet-quotas"></a>

Su Cuenta de AWS tiene cuotas predeterminadas, anteriormente conocidas como “límites”, para cada servicio de AWS. A menos que se indique lo contrario, cada cuota es específica de la región.

Las cuotas habituales de Amazon EC2 se aplican a las instancias lanzadas por una flota de EC2 o una flota de spot, como [los límites de instancias de spot](using-spot-limits.md) y [los límites de volumen](volume_limits.md).

Además, su Cuenta de AWS tiene las siguientes cuotas relacionadas con la flota de EC2 y la flota de spot:


****  

| Descripción de la cuota | Cuota | 
| --- | --- | 
| Cantidad de flotas de EC2 y flotas de spot por región del tipo maintain y request en los estados active, deleted\$1running y cancelled\$1running | 1000 ¹ ² ³ | 
| Cantidad de flotas de EC2 del tipo instant | Sin límite | 
| Cantidad de grupos de capacidad de spot (combinación única de tipo de instancia y subred) para flotas de EC2 y flotas de spot del tipo maintain y request | 300¹ | 
| Cantidad de grupos de capacidad de spot (combinación única de tipo de instancia y subred) para flotas de EC2 del tipo instant | Sin límite | 
| Tamaño de los datos de usuario en una especificación de inicialización | 16 KB ² | 
| Capacidad de destino por flota de EC2 o flota de spot | 10 000 | 
| Capacidad de destino en todas las Flotas de EC2 y Flotas de spot en una región | 100 000 ¹ | 
|  Una solicitud de flota de EC2 o de flota de spot no puede abarcar varias regiones.  |  | 
| Una solicitud de flota de EC2 o una solicitud de flota de spot no puede abarcar diferentes subredes de la misma zona de disponibilidad. |  | 

¹ Estas cuotas se aplican a sus flotas de EC2 y a sus flotas de spot.

² Se trata de cuotas fijas. No es posible solicitar un aumento de estas cuotas.

³ Después de eliminar una flota de EC2 o cancelar una solicitud de flota de spot, y si se especificó que la flota *no* debe finalizar sus instancias de spot cuando se eliminó o canceló la solicitud, la solicitud de flota ingresa en el estado `deleted_running` (flota de EC2) o `cancelled_running` (flota de spot) y las instancias siguen ejecutándose hasta que se interrumpan o se terminen manualmente. Si termina las instancias, la solicitud de flota ingresa en el estado `deleted_terminating` (flota de EC2) o `cancelled_terminating` (flota de spot) y no cuenta para calcular esta cuota. Para obtener más información, consulte [Eliminar una solicitud de flota de EC2 y las instancias en la flota](delete-fleet.md) y [Cancelación (eliminación) de una solicitud de flota de spot](cancel-spot-fleet.md).

## Solicitar un aumento de la cuota de la capacidad de destino
<a name="fleet-quota-increase-request"></a>

Si necesita incrementar la cuota predeterminada de la capacidad de destino, puede solicitar un aumento de cuota.

**Para solicitar un aumento de la cuota de la capacidad de destino**

1. Abra el formulario [Crear caso](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-ec2-fleet) del centro Soporte.

1. Seleccione **Aumento del límite de servicio**.

1. En **Tipo de límite**, elija **Flota de EC2**.

1. En **Región**, elija la región de AWS en la que solicita el aumento de la cuota.

1. En **Límite**, elija **Capacidad de flota de destino por flota (en unidades)** o **Capacidad de flota de destino por región (en unidades)**, según la cuota que desee aumentar.

1. En **Nuevo valor de límite**, ingrese el nuevo valor de la cuota.

1. Para solicitar el aumento de otra cuota, elija **Agregar otra solicitud** y repita los pasos 4 a 6.

1. En **Descripción del caso de uso**, ingrese el motivo para solicitar un aumento de cuota.

1. En **Opciones de contacto**, especifique el idioma de contacto y el método de contacto preferidos.

1. Elija **Enviar**.