Configurar una EC2 Fleet de tipo “instantánea” - Amazon Elastic Compute Cloud

Configurar una EC2 Fleet de tipo “instantánea”

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 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. 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: Inicialización de instancias en bloques de capacidad.

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

Para obtener los requisitos previos a fin de crear una flota de EC2, consulte Requisitos previos de flota de EC2.

Funcionamiento de la flota de EC2 de tipo instantáneo

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

  1. Establezca el tipo de solicitud CreateFleet en instant. Para obtener más información, consulte Crear una flota de EC2. Tenga en cuenta que después de realizar la llamada a la API, no podrá modificarla.

  2. Cuando realiza la llamada a la API, la flota de EC2 realiza una solicitud puntual síncrona para la capacidad deseada.

  3. La respuesta de la API enumera las instancias que se lanzaron, junto con los errores para esas instancias que no se pudieron lanzar.

  4. Puede describir la flota de EC2 y ver su historial, así como también enumerar las instancias asociadas a ella.

  5. Una vez que se hayan iniciado las instancias, puede eliminar la solicitud de flota. Al eliminar la solicitud de flota, también puede optar por terminar las instancias asociadas o dejarlas en ejecución.

  6. Puede terminar las instancias en cualquier momento.

Ejemplos

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 en la Referencia de la API de Amazon EC2.

Ejemplo 1: iniciar instancias de spot con la estrategia de asignación de capacidad optimizada

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

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

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 EC2 Fleet o la flota de spot..

{ "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

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

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

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.

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", "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

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

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

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

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

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.

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.

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