Trabajar con instancias de spot
Para utilizar las instancias de spot, crea una solicitud de instancia de spot que incluye la cantidad de instancias deseada, el tipo de instancia y la zona de disponibilidad. Si hay capacidad disponible, Amazon EC2 satisface su solicitud de manera inmediata. De lo contrario, Amazon EC2 espera hasta que pueda atender su solicitud o hasta que usted la cancele.
En la siguiente ilustración, se muestra cómo funcionan las solicitudes de instancias de spot. Observe que el tipo de solicitud (por única vez o persistente) determina si la solicitud se abre de nuevo cuando Amazon EC2 interrumpe una instancia de spot o si usted detiene una instancia de spot. Si la solicitud es persistente, después de interrumpir la instancia de spot, se volverá a abrir la solicitud. Si la solicitud es persistente y detiene su instancia de spot, la solicitud solo se abre después de iniciar su instancia de spot.
Estados de las solicitudes de instancia de spot
Una solicitud de instancia de spot puede tener uno de los siguientes estados:
-
open
: la solicitud aún debe completarse.
-
active
: la solicitud se ha completado y tiene una instancia de spot asociada.
-
failed
: la solicitud tiene uno o varios parámetros incorrectos.
-
closed
: la instancia de spot se ha interrumpido o terminado.
-
disabled
: ha detenido la instancia de spot.
-
cancelled
: ha cancelado la solicitud o la solicitud ha caducado.
La siguiente ilustración representa las transiciones entre los distintos estados de una solicitud. Tenga en cuenta que las transiciones dependen de si el tipo de solicitud es de una única vez o persistente.
Una solicitud de instancia por única vez permanece activa hasta que Amazon EC2 inicia la instancia de spot, la solicitud caduca o el usuario la cancela. Si no hay capacidad disponible, la instancia de spot se termina y la solicitud de instancia de spot se cierra.
Una solicitud de instancia de spot persistente permanece activa hasta que caduca o hasta que el usuario la cancela, incluso si se cumple la solicitud. Si no hay capacidad disponible, la instancia de spot se interrumpe. Una vez interrumpida la instancia, cuando vuelve a disponer de capacidad, la instancia de spot se inicia si se había detenido o se reanuda si estaba hibernando. Puede detener una instancia de spot e iniciarla de nuevo si la capacidad está disponible. Si se termina la instancia de spot (con independencia de si la instancia de spot está en un estado detenido o en ejecución), la solicitud de instancia de spot se abre de nuevo y Amazon EC2 inicia una nueva instancia de spot. Para obtener más información, consulte Detener una instancia de spot, Iniciar una instancia de spot y Terminar una instancia de spot.
Puede realizar el seguimiento del estado de las solicitudes de instancia de spot, así como del estado de las instancias de spot iniciadas, a través del estado. Para obtener más información, consulte Estado de las solicitudes de spot.
Especificar una tenencia para su instancias de spot
Puede ejecutar una instancia de spot en hardware de inquilino único. Las instancias de spot dedicadas están aisladas físicamente de las instancias que pertenecen a otras cuentas de AWS. Para obtener más información, consulte Instancias dedicadas de Amazon EC2 y la página del producto instancias dedicadas de Amazon EC2.
Para ejecutar una instancia de spot dedicada, realice una de las siguientes operaciones:
Todas las familias de instancias admiten instancias de spot dedicadas excepto instancias T. Para cada familia de instancias admitidas, solo la instancia o metal de mayor tamaño admite instancias de spot dedicadas.
Rol vinculado al servicio para solicitudes de instancias 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 AWSServiceRoleForEC2Spot para lanzar y administrar Instancias de spot en su nombre.
Permisos concedidos por AWSServiceRoleForEC2Spot
Amazon EC2 usa AWSServiceRoleForEC2Spot para ejecutar las acciones siguientes:
-
ec2:DescribeInstances
: describir instancias de spot
-
ec2:StopInstances
: detener instancias de spot
-
ec2:StartInstances
: iniciar instancias de spot
Creación del rol vinculado a servicio
En la mayoría de los casos, no es necesario crear manualmente roles vinculados a servicios. Amazon EC2 crea el rol vinculado a un servicio AWSServiceRoleForEC2Spot la primera vez que se solicita una instancia de spot mediante la consola.
Si tenía una solicitud de instancia de spot activa antes de octubre de 2017, cuando Amazon EC2 empezó a admitir este rol vinculado a servicio, Amazon EC2 creó el rol AWSServiceRoleForEC2Spot en su cuenta de AWS. Para obtener más información, consulte Un nuevo rol ha aparecido en mi cuenta en la Guía del usuario de IAM
Si utiliza la AWS CLI o una API para realizar una solicitud de instancias de spot, debe asegurarse de que este rol exista.
Cómo crear AWSServiceRoleForEC2Spot mediante la consola
Abra la consola de IAM en https://console.aws.amazon.com/iam/.
-
Seleccione Roles en el panel de navegación.
-
Elija Create role.
-
En la página Seleccionar el tipo de entidad de confianza, elija EC2, EC2: instancias de spot y Siguiente: Permisos.
-
En la siguiente página, elija Next:Review (Siguiente: Revisión).
-
En la página Review (Revisión), elija Create role (Crear rol).
Cómo crear AWSServiceRoleForEC2Spot con la AWS CLI
Utilice el comando create-service-linked-role de la siguiente manera.
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
Si ya no tiene que utilizar instancias de spot, le recomendamos que elimine el rol AWSServiceRoleForEC2Spot. Después de eliminar este rol de la cuenta, Amazon EC2 volverá a crearlo cuando solicite instancias de spot.
Conceder acceso a las claves administradas por el cliente para su uso con AMI cifradas e instantáneas de EBS
Si especifica una AMI cifrada o una instantánea de Amazon EBS cifrada en sus instancias de spot y usa una clave administrada por el cliente para el cifrado, debe conceder permiso al rol AWSServiceRoleForEC2Spot para que use esa clave a fin de que Amazon EC2 pueda iniciar instancias de spot en su nombre. Para ello, debe agregar una concesión a la clave administrada por el cliente, como se muestra en el siguiente procedimiento.
Al proporcionar permisos, las concesiones son una alternativa a las políticas de claves. Para obtener más información, consulte Uso de concesiones 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 AWSServiceRoleForEC2Spot a fin de que utilice la clave administrada por el cliente
-
Use el comando create-grant para agregar una concesión a la clave administrada por el cliente y para especificar la entidad principal (el rol vinculado a un servicio AWSServiceRoleForEC2Fleet) que recibe permiso para realizar las operaciones que permite la concesión. La clave administrada por el cliente se especifica mediante el parámetro key-id
y el ARN de la clave administrada por el cliente. La entidad principal se especifica con el parámetro grantee-principal
y el ARN del rol vinculado a un servicio AWSServiceRoleForEC2Spot.
aws kms create-grant \
--region us-east-1
\
--key-id arn:aws:kms:us-east-1
:444455556666
:key/1234abcd-12ab-34cd-56ef-1234567890ab
\
--grantee-principal arn:aws:iam::111122223333
:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
--operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
Crear una solicitud de instancia de spot
Puede utilizar el asistente de inicialización de instancias en la consola de Amazon EC2 o el comando de la AWS CLI run-instances para solicitar una instancia de spot del mismo modo que puede iniciar una instancia bajo demanda. Este método solo se recomienda por las razones siguientes:
-
Ya está utilizando el asistente de inicialización de instancias o el comando run-instances para iniciar instancias bajo demanda, y simplemente desea hacer un cambio para iniciar instancias de spot mediante la modificación de un solo parámetro.
-
No necesita varias instancias con distintos tipos de instancias.
Por lo general, este método no se recomienda para iniciar instancias de spot porque no se puede especificar varios tipos de instancias y no puede iniciar instancias de spot e instancias bajo demanda en la misma solicitud. Para conocer los métodos preferidos para iniciar instancias de spot, que incluyen la inicialización de una flota que, a su vez, incluye instancias de spot e instancias bajo demanda con varios tipos de instancias, consulte ¿Cuál es el mejor método de solicitud de spot que se puede utilizar?
Si solicita varias instancias de spot a la vez, Amazon EC2 crea solicitudes de instancia de spot independientes, lo que permite realizar el seguimiento del estado de cada una por separado. Para obtener más información acerca de las instancias de spot, consulte Estado de las solicitudes de spot.
- New console
-
Para crear una solicitud de instancia de spot mediante el asistente de inicialización de instancias
Los pasos del 1 al 9 son los mismos pasos que usaría para iniciar una instancia bajo demanda. En el paso 10, configura la solicitud de instancia de spot.
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En la barra de navegación de la parte superior de la pantalla, seleccione una región.
-
En el panel de la consola de Amazon EC2, elija iniciar instancia .
-
(Opcional) En Name and tags (Nombre y etiquetas), puede nombrar la instancia y etiquetar la solicitud de instancia de spot, la instancia, los volúmenes y los gráficos elásticos. Para obtener más información acerca de las etiquetas, consulte Etiquetar los recursos de Amazon EC2.
-
En Name (Nombre), ingrese un nombre descriptivo para la instancia.
El nombre de la instancia es una etiqueta, donde la clave es Name (Nombre) y el valor es el nombre que especifique. Si no especifica un nombre, la instancia se puede identificar mediante su ID, que se genera automáticamente al iniciar la instancia.
-
Elija Add additional tags (Agregar etiquetas adicionales) para etiquetar la solicitud de instancia de spot, la instancia, los volúmenes y los gráficos elásticos. Elija Add tag (Agregar etiqueta) y, a continuación, ingrese una clave y un valor, y seleccione el tipo de recurso que desea etiquetar. Elija Add tag (Agregar etiqueta) para cada etiqueta adicional.
-
En Application and OS Images (Amazon Machine Image) (Imágenes de aplicaciones y sistema operativo [Imagen de máquina de Amazon]), elija el sistema operativo (SO) para la instancia y luego, seleccione una AMI. Para obtener más información, consulte Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon).
-
En Instance type (Tipo de instancia), seleccione el tipo de instancia que cumpla con los requisitos para la configuración de hardware y el tamaño de la instancia. Para obtener más información, consulte Tipo de instancia.
-
En Key pair (login) (Par de claves [inicio de sesión]), elija un par de claves existente o elija Create new key pair (Crear par de claves nuevo) para crear uno nuevo. Para obtener más información, consulte Pares de claves e instancias de Amazon EC2.
Si elige la opción Proceed without key pair (Not recommended) (Continuar sin un par de claves [No recomendado]), no podrá conectarse a la instancia a menos que elija una AMI que esté configurada para ofrecer a los usuarios otra forma de iniciar sesión.
-
En Network settings (Configuración de red), utilice la configuración predeterminada o elija Edit (Editar) para configurar los ajustes de red según sea necesario.
Los grupos de seguridad forman parte de la configuración de la red y definen las reglas del firewall para la instancia. Estas reglas especifican qué tráfico procedente de la red se entregará en la instancia.
Para obtener más información, consulte Network settings (Configuración de red).
-
La AMI que seleccione incluye uno o más volúmenes de almacenamiento, incluido el volumen de dispositivo raíz. En Configure storage (Configurar almacenamiento), puede especificar los volúmenes adicionales que desea adjuntar a la instancia mediante Add new volume (Agregar volumen nuevo). Para obtener más información, consulte Configurar almacenamiento.
-
En Advanced details (Detalles avanzados), configure la solicitud de instancia de spot de la siguiente manera:
-
En Purchasing option (Opción de compra), seleccione la casilla de verificación Request Spot Instances (Solicitar instancias de spot).
-
Puede conservar la configuración predeterminada para la solicitud de instancia de spot o elegir Customize (Personalizar) (a la derecha) para especificar la configuración personalizada para la solicitud de instancia de spot.
Cuando elige Customize (Personalizar), aparecen los siguientes campos.
-
Maximum price (Precio máximo): puede solicitar instancias de spot al precio de spot, limitado al precio bajo demanda, o puede especificar el monto máximo que está dispuesto a pagar.
Si especifica un precio máximo, las instancias se interrumpirán con más frecuencia que si elige Sin precio máximo.
-
No maximum price (Sin precio máximo): la instancia de spot se iniciará al precio de spot actual. El precio nunca superará el precio bajo demanda. (Recomendado)
-
Set your maximum price (Establecer el precio máximo [por instancia/por hora]): puede especificar el monto máximo que está dispuesto a pagar.
-
Si especifica un precio máximo inferior al precio de spot actual, la instancia de spot no se iniciará.
-
Si especifica un precio máximo superior al precio de spot actual, su instancia de spot se iniciará y se cobrará al precio de spot actual. Una vez que la instancia de spot está en ejecución, si el precio de spot supera el precio máximo, Amazon EC2 interrumpe la instancia de spot.
-
Independientemente del precio máximo que especifique, siempre se le cobrará el precio de spot actual.
Para revisar las tendencias de los precios de spot, consulte Historial de precios de instancias de spot.
-
Request type (Tipo de solicitud): el tipo de solicitud de instancia de spot que elija determina qué ocurre si la instancia de spot se interrumpe.
-
Por única vez: Amazon EC2 realiza una solicitud por única vez para su instancia de spot. Si la instancia de spot se interrumpe, la solicitud no se vuelve a enviar.
-
Solicitud persistente: Amazon EC2 realiza una solicitud persistente para su instancia de spot. Si la instancia de spot se interrumpe, se vuelve a enviar la solicitud para reponer la instancia de spot que se interrumpió.
Si no se especifica un valor, el predeterminado es una solicitud por única vez.
-
Válido para (Válido hasta): la fecha de vencimiento de una solicitud persistente de instancia de spot.
Este campo no se admite para solicitudes por única vez. Una solicitud por única vez permanece activa hasta que se inician todas las intancias de la solicitud o hasta que se cancela la solicitud.
-
No request expiry date (Sin fecha de vencimiento de solicitud): la solicitud permanece activa hasta que se cancela.
-
Set your request expiry date (Fijar la fecha de vencimiento de la solicitud): la solicitud persistente permanece activa hasta la fecha especificada o hasta que se cancela.
-
Interruption behavior (Comportamiento de interrupción): el comportamiento que elija determinará qué ocurrirá cuando una instancia de spot se interrumpa.
-
En el caso de solicitudes persistentes, los valores válidos son Stop (Detener) e Hibernate (Hibernar). Cuando se detiene una instancia, se aplican cargos por almacenamiento de volumen de EBS.
Las instancias de spot utilizan ahora la misma funcionalidad de hibernación que las instancias bajo demanda. Para habilitar la hibernación, puede seleccionar Hibernar aquí o Habilitar en el campo de Detener: comportamiento de hibernación, que aparece más abajo en el asistente de inicialización de instancias. Para conocer los requisitos previos de hibernación, consulte Requisitos previos para la hibernación de instancias de Amazon EC2.
-
En el caso de solicitudes por única vez, solo Terminate (Terminar) es válido.
Si no se especifica un valor, el predeterminado es Terminar, el cual no es válido para las solicitudes de instancia de spot persistentes. Si se mantiene el valor predeterminado y se intenta iniciar una solicitud de instancia de spot persistente, se producirá un error.
Para obtener más información, consulte Comportamiento de las interrupciones de las instancias de spot.
-
En el panel Resumen, en Cantidad de instancias, escriba la cantidad de instancias que iniciará.
Amazon EC2 crea una solicitud independiente para cada instancia de spot.
-
En el panel Summary (Resumen), revise los detalles de la instancia y realice los cambios necesarios. Después de enviar la solicitud de instancia de spot, no podrá cambiar los parámetros de la solicitud. Puede navegar directamente a una sección del asistente de inicialización de instancias mediante la selección del enlace correspondiente en el panel Summary (Resumen). Para obtener más información, consulte Resumen.
-
Cuando lo tenga todo listo para iniciar una instancia, elija iniciar instancia.
Si se produce un error al iniciar la instancia o el estado pasa inmediatamente a terminated
en lugar de running
, consulte Solución de problemas de inicialización de instancias de Amazon EC2.
- Old console
-
Para crear una solicitud de instancia de spot mediante el asistente de inicialización de instancias
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En la barra de navegación de la parte superior de la pantalla, seleccione una región.
-
En el panel de la consola de Amazon EC2, elija Iniciar instancia.
-
En la página Elegir una Imagen de máquina de Amazon (AMI), elija una AMI. Para obtener más información, consulte Paso 1: Elegir una Imagen de máquina de Amazon (AMI).
-
En la página Choose an Instance Type (Elegir un tipo de instancia), seleccione la configuración de hardware y el tamaño de la instancia que desea iniciar y luego, elija Next: Configure Instance Details (Siguiente: configurar detalles de instancia). Para obtener más información, consulte Paso 2: Elegir un tipo de instancia.
-
En la página Configurar detalles de instancia configure la solicitud de instancias de spot de la siguiente manera:
-
Number of instances (Número de instancias): escriba el número de instancias que desea iniciar.
Amazon EC2 crea una solicitud independiente para cada instancia de spot.
-
(Opcional) Para ayudar a garantizar que se mantenga el número correcto de instancias para satisfacer la demanda de la aplicación, puede elegir Launch into Auto Scaling Group (iniciar en grupo de Auto Scaling) para crear una configuración de inicialización y un grupo de Auto Scaling. Auto Scaling escala el número de instancias en el grupo según sus especificaciones. Para obtener más información, consulte la Guía del usuario de Amazon EC2 Auto Scaling.
-
Purchasing option (Opción de compra): elija Request Spot instances (Solicitar instancias de spot) para iniciar una instancia spot. Al elegir esta opción, aparecen los siguientes campos.
-
Precio actual: se muestra el precio de spot actual en cada zona de disponibilidad para el tipo de instancia seleccionado.
-
(Opcional) Precio máximo: puede dejar el campo vacío o puede especificar el importe máximo que está dispuesto a pagar.
Si especifica un precio máximo, las instancias se interrumpirán con más frecuencia que si deja el campo vacío.
-
Si especifica un precio máximo que es inferior al precio de spot, su instancia de spot no se iniciará.
-
Si especifica un precio máximo que es superior al precio de spot actual, su instancia de spot se iniciará y se cobrará al precio de spot actual. Una vez que la instancia de spot está en ejecución, si el precio de spot supera el precio máximo, Amazon EC2 interrumpe la instancia de spot.
-
Independientemente del precio máximo que especifique, siempre se le cobrará el precio de spot actual.
-
Si deja el campo vacío, pagará el precio de spot actual.
-
Solicitud persistente: elija Persistent request (Solicitud persistente) para volver a enviar la solicitud de instancia de spot si esta se ve interrumpida.
-
Comportamiento de interrupción: de forma predeterminada, el servicio de Spot termina una instancia de spot cuando se interrumpe. Si elige Persistent request (Solicitud persistente), puede especificar que el servicio de Spot detenga o hiberne la instancia de spot cuando se interrumpa. Para obtener más información, consulte Comportamiento de las interrupciones de las instancias de spot.
-
(Opcional) Solicitud válida para: elija Edit (Editar) para especificar cuándo caduca la solicitud de instancia de spot.
Para obtener más información sobre cómo configurar una instancia de spot, consulte Paso 3: Configurar los detalles de la instancia
-
La AMI que seleccione incluye uno o más volúmenes de almacenamiento, incluido el volumen de dispositivo raíz. En la página Add Storage (Añadir almacenamiento), puede especificar los volúmenes adicionales que desea adjuntar a la instancia eligiendo Add New Volume (Añadir nuevo volumen). Para obtener más información, consulte Paso 4: Agregar almacenamiento.
-
En la página Add Tags (Añadir etiquetas), especifique etiquetas proporcionando combinaciones de clave y valor. Para obtener más información, consulte Paso 5: Añadir etiquetas.
-
En la página Configure Security Group (Configurar grupo de seguridad), utilice un grupo de seguridad para definir reglas de firewall para la instancia. Estas reglas especifican qué tráfico procedente de la red se entregará en la instancia. El resto del tráfico se ignora. (Para obtener más información acerca de los grupos de seguridad, consulte Grupos de seguridad de Amazon EC2 para instancias EC2.) Seleccione o cree un grupo de seguridad y, a continuación, elija Revisar y iniciar. Para obtener más información, consulte Paso 6: Configurar un grupo de seguridad.
-
En la página Review Instance Launch (Revisar inicialización de instancia), compruebe los detalles de la instancia y haga los cambios necesarios seleccionando el enlace Edit (Editar) correspondiente. Cuando esté preparado, elija Launch (iniciar). Para obtener más información, consulte Paso 7: Revisar la inicialización de la instancia y seleccionar el par de claves.
-
En el cuadro de diálogo Select an existing key pair or create a new key pair (Seleccionar par de claves existentes o crear nuevo par de claves), puede elegir un par de claves existente o crear uno nuevo. Por ejemplo, elija Elegir un par de claves existente y, a continuación, seleccione el par de claves que creó al obtener la configuración. Para obtener más información, consulte Pares de claves e instancias de Amazon EC2.
Si elige la opción Proceed without key pair (Continuar sin un par de claves), no podrá conectarse a la instancia a menos que elija una AMI que esté configurada para ofrecer a los usuarios otra forma de iniciar sesión.
-
Para iniciar la instancia, active la casilla de verificación de confirmación y, a continuación, elija Launch Instances (iniciar instancias).
Si se produce un error al lanzar la instancia o el estado pasa inmediatamente a terminated
en lugar de running
, consulte Solución de problemas de inicialización de instancias de Amazon EC2.
- AWS CLI
-
Para crear una solicitud de instancia de spot mediante run-instances
Utilice el comando run-instances (Ejecutar instancias) y especifique las opciones de instancia de spot en el parámetro --instance-market-options
.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890
\
--instance-type t2.micro
\
--count 5
\
--subnet-id subnet-08fc749671b2d077c
\
--key-name MyKeyPair
\
--security-group-ids sg-0b0384b66d7d692f9
\
--instance-market-options file://spot-options.json
La siguiente es la estructura de datos para especificar en el archivo JSON para --instance-market-options
. También puede especificar ValidUntil
y InstanceInterruptionBehavior
. Si no especifica un campo en la estructura de datos, se utiliza el valor predeterminado.
El siguiente ejemplo crea una solicitud persistent
.
{
"MarketType": "spot",
"SpotOptions": {
"SpotInstanceType": "persistent
"
}
}
Para crear una solicitud de instancia de spot mediante request-spot-instances
Utilice el comando request-spot-instances para crear una solicitud puntual:
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
Utilice el comando request-spot-instances para crear una solicitud persistente.
aws ec2 request-spot-instances \
--instance-count 5
\
--type "persistent" \
--launch-specification file://specification.json
Para ver archivos de especificación de inicialización que utilizan estos comandos, consulte Ejemplo de especificaciones de inicialización de solicitudes de instancia de spot. Si descarga un archivo de especificación de inicialización desde la consola de la solicitud de spot, debe utilizar el comando request-spot-fleet en su lugar (la consola de la solicitud de spot especifica una solicitud de instancia de spot mediante una flota de spot).
Búsqueda de instancias de spot
Amazon EC2 ejecuta una instancia de spot siempre que haya capacidad disponible. Una instancia de spot se ejecuta hasta que se interrumpe o usted la termina.
En la página Instancias de la consola, una instancia de spot aparece junto con las instancias bajo demanda. Utilice el procedimiento que se muestra a continuación para encontrar instancias de spot.
- Console
-
Para encontrar las instancias de spot a través de la consola
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En el panel de navegación, seleccione Instances (Instancia[s]).
-
Para encontrar todas las instancias de spot, en el panel de búsqueda seleccione Ciclo de vida de instancia=spot.
-
Para verificar que una instancia sea una de spot, seleccione la instancia, luego vaya a la pestaña Detalles y compruebe el valor de Ciclo de vida. El valor de una instancia de spot es spot
y el valor de una instancia bajo demanda es normal
.
- AWS CLI
-
Para encontrar instancias de spot a través de la AWS CLI
Utilice el comando describe-instances con la opción --filters
.
aws ec2 describe-instances \
--filters "Name=instance-lifecycle,Values=spot"
Para determinar si una instancia es una instancia de spot
Utilice el comando describe-instances con la opción --query
para comprobar el valor del ciclo de vida.
aws ec2 describe-instances \
--instance-ids i-0123a456700123456 \
--query "Reservations[*].Instances[*].InstanceLifecycle" \
--output text
Si la salida es spot
, la instancia es una instancia de spot. Si no hay salida, la instancia es una instancia bajo demanda.
Utilice el procedimiento que se muestra a continuación para encontrar instancias de spot lanzadas desde una solicitud de una instancia de spot o una flota de spot específica.
- Console
-
Para encontrar las instancias de spot de una solicitud a través de 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. La lista incluye tanto las solicitudes de las instancias de spot como las de las flotas de spot.
-
Si se cumple con una solicitud de una instancia de spot, el ID de la instancia de spot será Capacidad. Para una flota de spot, Capacity (Capacidad) indica qué cantidad de la capacidad solicitada se ha alcanzado. Para ver los ID de las instancias en una flota de spot, elija la flecha hacia arriba o seleccione la flota y, a continuación, seleccione Instances (instancia[s]).
-
En una flota de spot, Capacidad indica la cantidad de la capacidad solicitada que se ha alcanzado. Para ver los ID de las instancias de una flota de spot, seleccione el ID de la flota. Cuando se abra la página de detalles, busque el panel Instancias.
- AWS CLI
-
Para encontrar las instancias de spot de una solicitud a través de la AWS CLI
Utilice el comando describe-spot-instance-requests con la opción --query
.
aws ec2 describe-spot-instance-requests \
--query "SpotInstanceRequests[*].{ID:InstanceId}"
A continuación, se muestra un ejemplo de la salida:
[
{
"ID": "i-1234567890abcdef0"
},
{
"ID": "i-0598c7d356eba48d7"
}
]
Para ayudarlo a clasificar y a administrar las solicitudes de instancia de spot, puede etiquetarlas con metadatos personalizados. Puede asignar una etiqueta a una solicitud de instancia de spot cuando la cree o posteriormente. Puede asignar etiquetas mediante la consola de Amazon EC2 o una herramienta de línea de comandos.
Al etiquetar una solicitud de instancia de spot, las instancias y los volúmenes iniciados por la solicitud de instancia de spot no se etiquetan automáticamente. Tiene que etiquetar de manera explícita las instancias y los volúmenes iniciados por la solicitud de instancia de spot. Puede asignar una etiqueta a una instancia de spot y a los volúmenes durante la inicialización o después.
Para obtener más información sobre cómo funcionan las etiquetas, consulte Etiquetar los recursos de Amazon EC2.
Requisitos previos
Otorgue al usuario el permiso para etiquetar recursos. Para obtener más información acerca de las políticas de IAM y las políticas de ejemplo, consulte Ejemplo: Etiquetar recursos.
La política de IAM que cree se determina con el método que utilice para crear una solicitud de instancia de spot.
Para otorgar permiso a un usuario para etiquetar recursos cuando utilice el asistente de inicialización de instancias o instancias de ejecución
Cree una política de IAM que incluya lo siguiente:
-
La acción ec2:RunInstances
. Esto otorga al usuario permiso para iniciar una instancia.
-
En Resource
, especifique spot-instances-request
. Esto permite a los usuarios crear solicitudes de instancias de spot, que solicitan instancias de spot.
-
La acción ec2:CreateTags
. Esto concede al usuario permiso para crear etiquetas.
-
En Resource
, especifique *
. Esto permite a los usuarios etiquetar todos los recursos que se crean durante la inicialización de la instancia.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLaunchInstances",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1::image/*",
"arn:aws:ec2:us-east-1:*:subnet/*",
"arn:aws:ec2:us-east-1:*:network-interface/*",
"arn:aws:ec2:us-east-1:*:security-group/*",
"arn:aws:ec2:us-east-1:*:key-pair/*",
"arn:aws:ec2:us-east-1:*:volume/*",
"arn:aws:ec2:us-east-1:*:instance/*",
"arn:aws:ec2:us-east-1:*:spot-instances-request/*"
]
},
{
"Sid": "TagSpotInstanceRequests",
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": "*"
}
]
}
Al utilizar la acción RunInstances para crear solicitudes de instancias de spot y etiquetar estas instancias durante la creación, debe tener en cuenta la manera en que Amazon EC2 evalúa el recurso spot-instances-request
en la instrucción RunInstances. En la política de IAM, se evalúa de la siguiente manera:
-
Si no etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 no evalúa el recurso spot-instances-request
en la instrucción RunInstances.
-
Si etiqueta la solicitud de instancia de spot durante la creación, Amazon EC2 evalúa el recurso spot-instances-request
en la instrucción RunInstances.
Por lo tanto, para el recurso spot-instances-request
, se aplican las siguientes reglas a la política de IAM:
-
Si utiliza RunInstances para crear una solicitud de instancia de spot y no tiene la intención de etiquetar dicha solicitud durante la creación, no es necesario que permita explícitamente el recurso spot-instances-request
; la llamada se realizará correctamente.
-
Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe incluir el recurso spot-instances-request
en la instrucción de permiso de RunInstances; de lo contrario, la llamada devolverá un error.
-
Si utiliza RunInstances para crear una solicitud de instancia de spot y tiene la intención de etiquetar dicha solicitud durante la creación, debe especificar el recurso spot-instances-request
o incluir el comodín *
en la instrucción de permiso de “CreateTags” (Crear etiquetas); de lo contrario, la llamada devolverá un error.
Para ejemplos de políticas de IAM, incluidas las políticas que no se admiten para las solicitudes de instancia de spot, consulte Trabajar con Instancias de spot.
Para conceder a un usuario el permiso para etiquetar recursos cuando utilice instancias de spot de solicitud
Cree una política de IAM que incluya lo siguiente:
-
La acción ec2:RequestSpotInstances
. Esto concede al usuario permiso para crear una solicitud de instancia de spot.
-
La acción ec2:CreateTags
. Esto concede al usuario permiso para crear etiquetas.
-
En Resource
, especifique spot-instances-request
. Esto permite a los usuarios etiquetar solo la solicitud de instancia de spot.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TagSpotInstanceRequest",
"Effect": "Allow",
"Action": [
"ec2:RequestSpotInstances",
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:us-east-1
:111122223333
:spot-instances-request/*"
}
Etiquetar una nueva solicitud de instancia de spot
- Console
-
Para etiquetar una nueva solicitud de instancia de spot mediante la consola
-
Siga el procedimiento indicado en Crear una solicitud de instancia de spot.
-
Para agregar una etiqueta, en la página Agregar etiquetas elija Agregar etiqueta y escriba la clave y el valor de la etiqueta. Elija Agregar otra etiqueta para cada etiqueta adicional.
Para cada etiqueta, puede etiquetar la solicitud de instancia de spot, las instancias de spot y los volúmenes con la misma etiqueta. Para etiquetar los tres, asegúrese de que estén seleccionadas las Instances (instancia[s]), los Volumes (Volúmenes) y las Spot Instance Requests (Solicitudes de instancias de spot). Para etiquetar solo uno o dos, asegúrese de que los recursos que desea etiquetar están seleccionados y de que los demás recursos están borrados.
-
Rellene los campos necesarios para crear una solicitud de instancia de spot y, a continuación, elija Launch (iniciar). Para obtener más información, consulte Crear una solicitud de instancia de spot.
- AWS CLI
-
Etiquetar una nueva solicitud de instancia de spot mediante la AWS CLI
Para etiquetar una solicitud de instancia de spot en la creación, configure los ajustes de la solicitud de instancia de spot de la siguiente manera:
-
Especifique las etiquetas para la solicitud de instancias de spot mediante el parámetro --tag-specification
.
-
En ResourceType
, especifique spot-instances-request
. Si especifica otro valor, la solicitud de instancia de spot devolverá un error.
-
Para Tags
, especifique el par clave-valor. Puede especificar más de un par clave-valor.
En el siguiente ejemplo, la solicitud de instancia de spot se etiqueta con dos etiquetas: Key=Environment y Value=Production, además de Key=Cost-Center y Value=123.
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
\
--tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment
,Value=Production
},{Key=Cost-Center
,Value=123
}]'
Etiquetar una solicitud de instancia de spot existente
- Console
-
Para etiquetar una solicitud de instancia de spot existente mediante la consola
Después de crear una solicitud de instancia de spot, puede agregar etiquetas a la solicitud de instancia de spot a través de la consola.
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 instancia de spot.
-
Elija la pestaña Tags (Etiquetas) y, a continuación, Create Tag (Crear etiqueta).
Para etiquetar una instancia de spot existente mediante la consola
Después de que se haya iniciado su solicitud de instancia de spot, puede agregar etiquetas a la instancia con la consola. Para obtener más información, consulte Agregar y eliminar etiquetas mediante la consola.
- AWS CLI
-
Etiquetar una solicitud de instancia de spot o una instancia de spot existente mediante AWS CLI
Utilice el comando create-tags para etiquetar recursos existentes. En el siguiente ejemplo, la solicitud de instancia de spot existente y la instancia de spot se etiquetan con Key=purpose y Value=test.
aws ec2 create-tags \
--resources sir-08b93456
i-1234567890abcdef0
\
--tags Key=purpose
,Value=test
- Console
-
Para ver etiquetas de la solicitud de instancia 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 instancia de spot y elija la pestaña Tags (Etiquetas).
- AWS CLI
-
Para describir las etiquetas de solicitud de instancia de spot
Las etiquetas de una solicitud de una instancia de spot se pueden ver al describir esa misma solicitud. Utilice el comando describe-spot-instance-requests para ver la configuración de la solicitud de instancia de spot especificada, que incluye las etiquetas especificadas para la solicitud.
aws ec2 describe-spot-instance-requests \
--spot-instance-request-ids sir-EXAMPLE1
\
--query "SpotInstanceRequests[*].Tags"
A continuación, se muestra un ejemplo del resultado.
[
[
{
"Key": "Environment",
"Value": "Production"
},
{
"Key": "Department",
"Value": "101"
}
]
]
Cancelar una solicitud de instancia de spot
Si ya no quiere la solicitud de instancia de spot, puede cancelarla. Solo puede cancelar solicitudes de instancia de spot cuyo estado sea open
, active
o disabled
.
-
El estado de la solicitud de instancia de spot es open
cuando aún no se ha atendido la solicitud y no se ha iniciado ninguna instancia.
-
El estado de la solicitud de instancia de spot es active
cuando se ha atendido la solicitud y, como resultado, se han iniciado dichas instancias.
-
Su solicitud de instancia de spot es disabled
cuando detiene su instancia de spot.
Si el estado de la solicitud de instancia de spot es active
y tiene una instancia de spot asociada en ejecución, la cancelación de la solicitud no termina la instancia. Para obtener más información acerca de cómo terminar las instancias de Spot, consulte Terminar una instancia de spot.
- Console
-
Para cancelar una solicitud de una instancia de spot a través de 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 la solicitud de la instancia de spot.
-
Elija Acciones, Cancelar comando.
-
(Opcional) Si ha acabado con las instancias de spot asociadas, puede terminarlas. En el cuadro de diálogo Cancelar solicitud de Spot seleccione Terminar instancias, y, a continuación, elija Confirmar.
- AWS CLI
-
Para cancelar una solicitud de una instancia de spot a través de la AWS CLI
Use el comando cancel-spot-instance-requests para cancelar la solicitud de instancia de spot especificada.
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-08b93456
Detener una instancia de spot
Si no necesita sus instancias de spot ahora, pero desea reiniciarlas más tarde sin perder los datos que persisten en el volumen de Amazon EBS, puede detenerlas. Los pasos que se llevan a cabo para detener una instancia de spot son similares a los pasos para detener una instancia bajo demanda.
Mientras la instancia de spot esté detenida, puede modificar algunos de sus atributos, pero no el tipo de instancia.
Las instancias de spot detenidas no suponen cargos de uso ni tarifas de transferencia de datos, pero sí se cobra por el almacenamiento de cualquier volumen de Amazon EBS.
Limitaciones
-
Solo puede detener una instancia de spot si esta se lanzó desde una solicitud de instancia de spot persistent
.
-
No se puede detener una instancia de spot si se ha cancelado la solicitud de instancia de spot asociada. Cuando se ha cancelado la solicitud de instancia de spot, solo usted puede terminarla.
-
No se puede detener una instancia de spot si forma parte de una flota, un grupo de inicialización o un grupo de zona de disponibilidad.
- Console
-
Para detener una instancia de spot a través de la consola
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En el panel de navegación, seleccione Instances (Instancia[s]).
-
Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte Búsqueda de instancias de spot.
-
Elija Instance state (Estado de la instancia) y Stop instance (Detener instancia).
-
Cuando se le pida que confirme, elija Stop.
- AWS CLI
-
Para detener una instancia de spot a través de la AWS CLI
Utilice el comando stop-instances para detener de manera manual las instancias de spot.
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
Iniciar una instancia de spot
Puede iniciar una instancia de spot que detuvo previamente.
Requisitos previos
Solo puede iniciar una instancia de spot en los siguientes casos:
-
Detuvo la instancia de spot manualmente.
-
La instancia de spot es una instancia con respaldo de EBS.
-
Hay capacidad de instancia de spot disponible.
-
El precio de spot es inferior al precio máximo.
Los pasos que se llevan a cabo para iniciar una instancia de spot son similares a los pasos para iniciar una instancia bajo demanda.
- Console
-
Para iniciar una instancia de spot a través de la consola
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En el panel de navegación, seleccione Instances (Instancia[s]).
-
Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte Búsqueda de instancias de spot.
-
Elija Instance state (Estado de la instancia) y Start instance (Iniciar instancia).
- AWS CLI
-
Para iniciar una instancia de spot a través de la AWS CLI
Utilice el comando start-instances para iniciar de manera manual las instancias de spot.
aws ec2 start-instances --instance-ids i-1234567890abcdef0
Terminar una instancia de spot
Si termina una instancia de spot en ejecución o detenida que se haya iniciado mediante una solicitud de instancia de spot persistente, esta solicitud pasará al estado open
para que se pueda iniciar una nueva instancia de spot. Para asegurarse de que no se lance ninguna nueva instancia de spot, primero es necesario que cancele la solicitud de instancia de spot.
Si cancela una solicitud de instancia de spot active
que tiene una instancia de spot en ejecución, esta no se termina automáticamente; por el contrario, debe terminar manualmente la instancia de spot.
Si cancela una solicitud de instancia de spot disabled
que tiene una instancia de spot detenida, el servicio de spot de Amazon EC2 terminará automáticamente esa instancia de spot detenida. Puede haber un breve retraso entre el momento en que cancela la solicitud de instancia de spot y el momento en que el servicio de spot termina esa instancia de spot.
Para obtener más información, consulte Cancelar una solicitud de instancia de spot.
- Console
-
Para terminar manualmente una instancia de spot mediante la consola
-
Antes de terminar la instancia, verifique que no va a perder ningún dato comprobando que los volúmenes de Amazon EBS no se eliminarán al terminar y que ha copiado los datos que necesita de los volúmenes de almacén de instancias en almacenamiento persistente, como Amazon EBS o Amazon S3.
-
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.
-
En el panel de navegación, seleccione Instances (Instancia[s]).
-
Seleccione la instancia de spot. Si no guardó el ID de instancia de la instancia de spot, consulte Búsqueda de instancias de spot.
-
Elija Instance state (Estado de la instancia) y Terminate instance (Terminar instancia).
-
Cuando se le indique que confirme, elija Terminar.
- AWS CLI
-
Terminar manualmente una instancia de spot mediante AWS CLI
Utilice el comando terminate-instances para finalizar de manera manual las instancias de spot.
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
i-0598c7d356eba48d7