Trabajar con flotas de spot
A fin de comenzar a utilizar una flota de spot, cree una solicitud de flota de spot que incluya la capacidad de destino, una parte opcional bajo demanda, una o varias especificaciones de inicialización para las instancias y el precio máximo que está dispuesto a pagar. La solicitud de flota deberá incluir una especificación de inicialización que defina la información que la flota requiere para iniciar una instancia, como una AMI, un tipo de instancias, una subred o una zona de disponibilidad y uno o varios grupos de seguridad.
Si la flota incluye Instancias de spot, Amazon EC2 puede intentar mantener la capacidad de destino de la flota cuando los precios de spot cambien.
Una vez que se ha enviado la solicitud, no es posible modificar la capacidad de destino de una solicitud puntual. Para cambiar la capacidad de destino, cancelar la solicitud y enviar una nueva.
Una solicitud de flota de spot permanece activa hasta que vence o hasta que usted la cancela. Cuando cancela una solicitud de flota, puede especificar si se terminan las instancias de spot de esa flota con la cancelación de la solicitud.
Contenido
- Estados de una solicitud de flota de spot
- Comprobaciones de estado de la flota de spot
- Permisos de flota de spot
- Creación de una solicitud de flota de spot
- Etiquetado de una flota de spot
- Descripción de la flota de spot
- Modificación de una solicitud de flota de spot
- Cancelación de una solicitud de flota de spot
Estados de una solicitud de flota de spot
Una solicitud de flota de spot puede tener uno de los siguientes estados:
-
submitted
: se evalúa la solicitud de la flota de spot y Amazon EC2 se prepara para iniciar el número objetivo de instancias. Si una solicitud excede los límites de la flota de spot, se cancela inmediatamente. -
active
: la flota de spot se validó y Amazon EC2 intenta mantener el número objetivo de instancias de spot en ejecución. La solicitud permanece en este estado hasta que se modifica o se cancela. -
modifying
: se modifica 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 flota de spot. Una solicitud (request
) de una única vez no se puede modificar y este estado no se aplica a estas solicitudes de spot. -
cancelled_running
: la flota de spot se cancela y no inicia instancias de spot adicionales. Las instancias de spot existentes 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 flota de spot se cancela y sus instancias de spot terminan. La solicitud permanece en este estado hasta que se terminen todas las instancias. -
cancelled
: la flota de spot se cancela y no tiene instancias de spot en ejecución. La solicitud de flota de spot se elimina dos días después de la terminación de sus instancias.
Comprobaciones de estado de la flota de spot
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 para sus instancias.
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 tiporequest
). -
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
.
Permisos de flota de spot
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.
Permisos y roles
Concesión de permisos a los usuarios para la flota de spot
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
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de navegación, seleccione Policies (Políticas), Create policy (Crear política).
-
En la página Crear política elija JSON y reemplace el texto por el siguiente.
{ "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/
como recurso en la política de IAM para la acciónIamInstanceProfile-role
"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 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
-
-
Elija Review policy.
-
En la página Revisar política, escriba un nombre y descripción de política y, a continuación, elija Crear política.
-
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 en la Guía del usuario de AWS IAM Identity Center.
-
Usuarios administrados 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) 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 en la Guía del usuario de IAM.
-
(No recomendado) Adjunte una política directamente a un usuario o añada un usuario a un grupo de usuarios. Siga las instrucciones descritas en Adición de permisos a un usuario (consola) de la Guía del usuario de IAM.
-
-
Rol vinculado a servicios de flota de spot
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 Uso de roles vinculados a servicios 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 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.
Permisos concedidos por AWSServiceRoleForEC2SpotFleet
Amazon EC2 usa AWSServiceRoleForEC2SpotFleet para completar las acciones siguientes:
-
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
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 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.
Para crear AWSServiceRoleForEC2SpotFleet mediante la consola
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación.
-
Elija Crear rol.
-
En la página Seleccionar entidad de confianza, haga lo siguiente:
-
En Tipo de entidad de confianza, elija Servicio de AWS.
-
En la sección Caso de uso, en Servicio o caso de uso, elija EC2.
-
En Caso de uso, elija EC2 - Flota de spot.
-
Elija Siguiente.
-
-
En la página Agregar permisos, elija Siguiente.
-
En la página Nombrar, revisar y crear, elija Crear rol.
Para crear AWSServiceRoleForEC2SpotFleet mediante el comando AWS CLI
Utilice el comando create-service-linked-role 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 en la Guía del usuario de IAM.
Conceder acceso a CMK para su uso con AMI cifradas e instantáneas de EBS
Si especifica una AMI cifrada 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 y Uso de políticas de claves en AWS KMS 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 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ámetrograntee-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/AWSServiceRoleForEC2SpotFleet \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
Rol vinculado a un servicio para instancias de spot
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.
Rol de IAM para etiquetar una flota de spot
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 flota de spot.
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
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación.
-
Elija Crear rol.
-
En la página Seleccionar entidad de confianza, en Tipo de entidad de confianza, elija Servicio de AWS.
-
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.
-
Elija Siguiente.
-
En la página Agregar permisos, elija Siguiente.
-
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
). -
Revise la información de la página, y luego elija Create role (Crear rol).
Prevención de la sustitución confusa entre servicios
El problema de la sustitución confusa 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 aws:SourceArn
y aws: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
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
Seleccione Roles en el panel de navegación.
-
Busque la
aws-ec2-spot-fleet-tagging-role
que haya creado anteriormente y elija el enlace (no la casilla de verificación). -
En Resumen, elija la pestaña Relaciones de confianza, y luego Editar política de confianza.
-
En la instrucción JSON, agregue un elemento
Condition
que contenga las claves de contexto de condición globalaws:SourceAccount
yaws:SourceArn
para evitar el problema del suplente confuso de la siguiente manera:"Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:
account_id
:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id
" }nota
Si el valor
aws:SourceArn
contiene el ID de la cuenta y utiliza ambas claves de contexto de condición global, el valoraws:SourceAccount
y la cuenta del valoraws: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:
{ "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
:account_id
:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id
" } } } } -
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:*: |
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: |
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: |
Creación de una solicitud de flota de spot
Desde la AWS Management Console, cree rápidamente una solicitud de flota de spot mediante la selección de la aplicación o la tarea que necesita y las especificaciones de computación mínimas. Amazon EC2 configura una flota que mejor se ajuste a sus necesidades y sigue la práctica recomendada de spot. Para obtener más información, consulte Creación rápida de una solicitud de flota de spot (consola). De lo contrario, puede modificar la configuración predeterminada. Para obtener más información, consulte Creación de una solicitud de flota de spot con los parámetros definidos (consola) y Creación de una flota de spot mediante la AWS CLI.
Opciones para crear una flota de spot
Creación rápida de una solicitud de flota de spot (consola)
Para crear una solicitud de flota de spot rápidamente, siga estos pasos.
Para crear una solicitud de flota de spot con la configuración recomendada (consola)
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Solicitudes de spot.
-
Si es la primera vez que utiliza instancias de spot, aparecerá una página de bienvenida; elija Comenzar. De lo contrario, elija Solicitar instancias de spot.
-
En Parámetros de inicialización, elija Configurar los parámetros de inicialización de forma manual.
-
En AMI, elija una AMI.
-
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 Instances (Instancias), vCPU o Memory (MiB) (Memoria [MiB]).
-
En Su 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 (consola)
Puede crear una flota de spot con los parámetros que defina.
Para crear una solicitud de flota de spot con los parámetros definidos (consola)
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Solicitudes de spot.
-
Si es la primera vez que utiliza instancias de spot, aparecerá una página de bienvenida; elija Comenzar. De lo contrario, elija Solicitar instancias de spot.
-
En Parámetros de inicialización, haga lo siguiente:
-
Para definir los parámetros de inicialización en la consola de spot, elija Configurar los parámetros de inicialización de forma manual.
-
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á.
-
(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 consola de Pares de claves. Cuando haya terminado, regrese a la página Solicitudes de spot y actualice la lista.
-
(Opcional) Expanda Entradas de inicialización adicionales y haga lo siguiente.
-
(Opcional) Para habilitar la optimización de Amazon EBS, elija Iniciar instancias optimizadas para EBS en Optimizada para EBS.
-
(Opcional) Para añadir almacenamiento por bloques temporal para las instancias, elija Asociar al iniciar para Almacén de instancias.
-
(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.
-
(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.
-
(Opcional) Para ejecutar una instancia de spot dedicada, elija Dedicada: ejecutar una instancia dedicada en Tenencia.
-
(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.
-
(Opcional) Para poder acceder a las instancias desde Internet, elija Habilitar para Asignar IP pública IPv4 de forma automática.
-
(Opcional) Para iniciar las instancias de spot con un rol de IAM, elija el rol para Perfil de instancia de IAM.
-
(Opcional) Para ejecutar un script de inicio, cópielo en Datos de usuario.
-
(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.
-
-
-
Para Detalles adicionales de la solicitud, haga lo siguiente:
-
Revise los detalles adicionales de la solicitud. Para realizar cambios, borre Aplicar valores predeterminados.
-
(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.
-
(Opcional) En Precio máximo, puede usar el precio máximo predeterminado (el precio bajo demanda) o especificar el precio máximo que está dispuesto a pagar. Las instancias de spot no se iniciarán si el precio máximo es inferior al precio de spot de los tipos de instancias seleccionados.
-
(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.
-
(Opcional) De forma predeterminada, terminamos 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.
-
(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.
-
-
En Unidad de computación mínima, elija las especificaciones de hardware mínimas (CPU virtuales, memoria y almacenamiento) que necesita para su aplicación o tarea, ya sea como especificaciones o como tipo de instancia.
-
Para como especificaciones, especifique el número de CPU virtuales requerido y la cantidad de memoria.
-
Para como tipo de instancia, acepte el tipo de instancia predeterminado o seleccione Cambiar tipo de instancia para elegir un tipo de instancia distinto.
-
-
En Capacidad de destino, haga lo siguiente:
-
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 de destino de 0 y añadir capacidad más tarde, elija Mantener capacidad de destino.
-
(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.
-
(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 de destino, esta capacidad no se mantendrá.
-
(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 la flota de spot termine las instancias anteriores. Para obtener más información, consulte Reequilibrio de la capacidad.
-
(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 Control de gastos.
-
-
En Red, haga lo siguiente:
-
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 al asistente y actualice la lista.
-
(Opcional) En Zona de disponibilidad, deje que AWS elija las zonas de disponibilidad para las instancias de spot. Si lo prefiere, puede especificar 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 al asistente y actualice la lista.
-
-
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 Selección de tipo de instancia basada en atributos para la flota de spot.
-
Si elige Especificar los atributos de instancia que coinciden con los requisitos de computación, especifique los atributos de instancia de la siguiente manera:
-
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.
-
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.
-
(Opcional) En Additional instance attributes (Atributos de instancia adicionales), puede especificar opcionalmente uno o varios atributos para expresar sus requisitos de computación con más detalle. Cada atributo adicional agrega una restricción más a su solicitud. Puede omitir los atributos adicionales; si se omiten, se utilizan los valores predeterminados. Para obtener una descripción de cada atributo y de sus valores predeterminados, consulte get-spot-placement-scores en la Referencia de la línea de comandos de Amazon EC2.
-
(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.
-
-
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.
-
-
En Estrategia de asignación, elija la estrategia que se ajuste a sus necesidades. Para obtener más información, consulte Estrategias de asignación de instancias de spot.
-
En Resumen de su solicitud de flota, revise la configuración de la flota y realice los ajustes si es necesario.
-
(Opcional) Para descargar una copia de la configuración de inicialización para utilizarla con la AWS CLI, elija Configuración de JSON.
-
Elija Iniciar.
El tipo de solicitud de flota de spot es
fleet
. Cuando se atiende la solicitud, se añaden solicitudes de tipoinstance
, donde el estado esactive
yfulfilled
.
Creación de una flota de spot mediante la AWS CLI
Para crear una solicitud de flota de spot mediante la AWS CLI
-
Utilice el comando request-spot-fleet para crear una solicitud de flota de spot.
aws ec2 request-spot-fleet --spot-fleet-request-config file://
config.json
Para ver archivos de configuración de ejemplo, consulte Configuraciones de ejemplo de flota de spot.
A continuación, se muestra un ejemplo del resultado:
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
}
Etiquetado de una flota de spot
Para ayudarlo a categorizar y administrar las solicitudes de flota de spot, puede etiquetarlas con metadatos personalizados. Puede asignar una etiqueta a una solicitud de flota de spot cuando la cree o posteriormente. Puede asignar etiquetas mediante la consola de Amazon EC2 o una herramienta de línea de comandos.
Cuando etiquete una solicitud de flota de spot, las instancias y los volúmenes iniciados por la flota de spot no se etiquetan automáticamente. Tiene que etiquetar explícitamente las instancias y los volúmenes que inicia la flota de spot. Puede elegir asignar etiquetas solo a la solicitud de flota de spot, solo a las instancias iniciadas por la flota, solo a los volúmenes adjuntados a las instancias iniciadas por la flota o a las tres.
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.
Para obtener más información sobre cómo funcionan las etiquetas, consulte Etiquetar los recursos de Amazon EC2.
Contenido
Requisito previo
Otorgue al usuario el permiso para etiquetar recursos. Para obtener más información, consulte Ejemplo: Etiquetar recursos.
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.
{ "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 en la Guía del usuario de AWS IAM Identity Center.
-
Usuarios administrados 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) 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 en la Guía del usuario de IAM.
-
(No recomendado) Adjunte una política directamente a un usuario o añada un usuario a un grupo de usuarios. Siga las instrucciones descritas en Adición de permisos a un usuario (consola) de la Guía del usuario de IAM.
-
Etiquetado de una nueva flota de spot
Para etiquetar una nueva solicitud de flota de spot mediante la consola
-
Siga el procedimiento indicado en Creación de una solicitud de flota de spot con los parámetros definidos (consola).
-
Para agregar una etiqueta, expanda Configuraciones adicionales, elija Agregar nueva 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 Etiquetas de instancia y Etiquetas de flota estén seleccionadas. Para etiquetar solo la solicitud de flota de spot, desactive Etiquetas de instancia. Para etiquetar solo las instancias iniciadas por la flota, desactive Etiquetas de flota.
-
Rellene los campos necesarios para crear una solicitud de flota de spot y, a continuación, elija Iniciar. Para obtener más información, consulte Creación de una solicitud de flota de spot con los parámetros definidos (consola).
Para etiquetar una solicitud nueva de flota de spot mediante la AWS CLI
Para etiquetar una solicitud de flota de spot al momento de crearla, configure la solicitud de flota de spot de la siguiente manera:
-
Especifique las etiquetas para la solicitud de flota de spot en
SpotFleetRequestConfig
. -
En
ResourceType
, especifiquespot-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.
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.
{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "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
" } ] } ] } }
Etiquetado de una flota de spot nueva y las instancias y los volúmenes que inicia
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
, especifiquespot-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
, especifiqueinstance
. 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 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 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 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
, especifiqueinstance
. 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 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
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.
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Spot Requests (Solicitudes de spot).
-
Seleccione la solicitud de flota de spot.
-
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 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
Para ver las etiquetas de solicitud de flota de spot mediante la consola
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Solicitudes de spot.
-
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 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 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 la flota de spot
La flota de spot inicia instancias de spot siempre que su precio máximo sea superior al precio de spot y haya capacidad disponible. Las instancias de spot se ejecutan hasta que se interrumpen o las termina el usuario.
Para describir la flota de spot (consola)
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Spot Requests (Solicitudes de spot).
-
Seleccione la solicitud de flota de spot. Para ver los detalles de configuración, elija Descripción.
-
Para enumerar las instancias de spot de la flota de spot, elija Instancias.
-
Para ver el historial de la flota de spot, elija Historial.
Para describir la flota de spot (AWS CLI)
Utilice el comando describe-spot-fleet-requests para describir las solicitudes de flota de spot.
aws ec2 describe-spot-fleet-requests
Utilice el comando describe-spot-fleet-instances para describir las instancias de spot de la flota de spot especificada.
aws ec2 describe-spot-fleet-instances \ --spot-fleet-request-id
sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
Utilice el comando describe-spot-fleet-request-history para describir el historial de la solicitud de flota de spot especificada.
aws ec2 describe-spot-fleet-request-history \ --spot-fleet-request-id
sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
\ --start-time 2015-05-18T00:00:00Z
Modificación de una solicitud de flota de spot
Puede modificar una solicitud de flota de spot activa para completar las siguientes tareas:
-
Aumentar la capacidad de destino y la parte bajo demanda
-
Disminuir la capacidad de destino y la parte bajo demanda
nota
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 se aumenta la capacidad de destino, la flota de spot inicia instancias de spot adicionales. Cuando se aumenta la parte bajo demanda, la flota de spot inicia instancias bajo demanda adicionales.
Cuando se aumenta la capacidad de destino, la flota de spot inicia las instancias de spot adicionales de acuerdo con la estrategia de asignación de la solicitud de la flota de spot.
Cuando se reduce la capacidad de destino, la flota de spot cancela cualquier solicitud abierta que supere la nueva capacidad de destino. 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.
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.
Para modificar una solicitud de flota de spot (consola)
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Spot Requests (Solicitudes de spot).
-
Seleccione la solicitud de flota de spot.
-
Elija Acciones y, a continuación, Modificar capacidad de destino.
-
En Modificar capacidad de destino, haga lo siguiente:
-
Introduzca la nueva capacidad de destino y la parte bajo demanda
-
(Opcional) Si está disminuyendo la capacidad de destino, pero quiere conservar el tamaño actual de la flota, borre Terminar instancias.
-
Elija Submit.
-
Para modificar una solicitud de flota de spot mediante la AWS CLI
Utilice el comando modify-spot-fleet-request 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-capacity20
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-capacity10
\ --excess-capacity-termination-policy NoTermination
Cancelación de una solicitud de flota de spot
Si ya no necesita una flota de spot, puede cancelar la solicitud de la flota de spot. 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.
Si especifica que se terminen las instancias cuando se cancele la solicitud de flota, esta pasará al estado cancelled_terminating
. En caso contrario, la solicitud de flota pasa al estado cancelled_running
y las instancias seguirán ejecutándose hasta que se interrumpan o las termine manualmente.
Restricciones
-
Puede eliminar hasta 100 flotas en una sola solicitud. Si supera la cantidad especificada, no se eliminan las flotas.
Para cancelar una solicitud de flota de spot (consola)
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, elija Spot Requests (Solicitudes de spot).
-
Seleccione la solicitud de flota de spot.
-
Elija Acciones, Cancelar comando.
-
En el cuadro de diálogo Cancelar solicitudes de spot, haga lo siguiente:
-
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.
-
Elija Confirmar.
-
Para cancelar una solicitud de flota de spot y terminar sus instancias mediante la AWS CLI
Utilice el comando cancel-spot-fleet-requests (cancelar las solicitudes de la flota de spot) para cancelar la solicitud de flota de spot especificada y terminar las instancias.
aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids
sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
\ --terminate-instances
Ejemplo de resultado
{
"SuccessfulFleetRequests": [
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
"CurrentSpotFleetRequestState": "cancelled_terminating",
"PreviousSpotFleetRequestState": "active"
}
],
"UnsuccessfulFleetRequests": []
}
Para cancelar una solicitud de flota de spot sin terminar sus instancias mediante la AWS CLI
Puede modificar el comando anterior con el parámetro --no-terminate-instances
para cancelar la solicitud de flota de spot especificada sin terminar sus instancias de spot y bajo demanda.
aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids
sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
\ --no-terminate-instances
Ejemplo de resultado
{
"SuccessfulFleetRequests": [
{
"SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE",
"CurrentSpotFleetRequestState": "cancelled_running",
"PreviousSpotFleetRequestState": "active"
}
],
"UnsuccessfulFleetRequests": []
}