Trabajar con instancias de spot - Amazon Elastic Compute Cloud

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.


				Cómo funcionan las solicitudes de instancias 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.


					Estados de las solicitudes de instancias de spot.

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 Dedicated Instances 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.

Para crear AWSServiceRoleForEC2Spot mediante la consola
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. Elija Create role.

  4. En la página Seleccionar el tipo de entidad de confianza, elija EC2, EC2: instancias de spot y Siguiente: Permisos.

  5. En la siguiente página, elija Next:Review (Siguiente: Revisión).

  6. En la página Review (Revisión), elija Create role (Crear rol).

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

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

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

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

  4. (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.

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

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

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

  5. 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 (Amazon Machine Image).

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

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

    importante

    Si elige la opción Proceed without key pair (Not recommended) (Continuar sin un par de claves [No recomendado]), no podrá conectarse a la instancia a menos que elija una AMI que esté configurada para ofrecer a los usuarios otra forma de iniciar sesión.

  8. 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).

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

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

    1. En Purchasing option (Opción de compra), seleccione la casilla de verificación Request Spot Instances (Solicitar instancias de spot).

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

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

      1. Maximum price (Precio máximo): puede solicitar instancias de spot al precio de spot, limitado al precio bajo demanda, o puede especificar el monto máximo que está dispuesto a pagar.

        aviso

        Si especifica un precio máximo, las instancias se interrumpirán con más frecuencia que si elige Sin precio máximo.

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

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

        • One-time (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.

        • Persistent request (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.

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

      4. Interruption behavior (Comportamiento de interrupción): el comportamiento que elija determinará qué ocurrirá cuando una instancia de spot se interrumpa.

        • En el caso de solicitudes persistentes, los valores válidos son Stop (Detener) e Hibernate (Hibernar). Cuando se detiene una instancia, se aplican cargos por almacenamiento de volumen de EBS.

          nota

          Las instancias de spot utilizan ahora la misma funcionalidad de hibernación que las instancias bajo demanda. Para habilitar la hibernación, puede seleccionar Hibernar aquí o Habilitar en el campo de Detener: comportamiento de hibernación, que aparece más abajo en el asistente de inicialización de instancias. Para conocer los requisitos previos de hibernación, consulte Requisitos previos para la hibernación de instancias de 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 la interrupción.

  11. En el panel Resumen, en Cantidad de instancias, escriba la cantidad de instancias que iniciará.

    nota

    Amazon EC2 crea una solicitud independiente para cada instancia de spot.

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

  13. 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 Solucionar problemas de lanzamiento de instancias.

Old console
Para crear una solicitud de instancia de spot mediante el asistente de inicialización de instancias
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

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

  3. En el panel de la consola de Amazon EC2, elija Launch Instance (iniciar instancia).

  4. En la página Elegir una imagen de Amazon Machine (AMI), elija una AMI. Para obtener más información, consulte Paso 1: Elegir una Amazon Machine Image (AMI).

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

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

      nota

      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.

      aviso

      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 la interrupción.

    • (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

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

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

  9. 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 de Linux.) 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.

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

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

    importante

    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.

  12. 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 Solucionar problemas de lanzamiento de instancias.

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

nota

Se desaconseja utilizar el comando request-spot-instances para solicitar una instancia de spot, ya que es una API heredada sin inversión planificada. Para obtener más información, consulte ¿Cuál es el mejor método de solicitud de spot que se puede utilizar?.

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

Buscar instancias de spot en ejecución

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.

Para buscar instancias de spot en ejecución (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Spot Requests (Solicitudes de spot). Puede ver tanto las solicitudes de instancias de spot como las solicitudes de flota de spot. Si se ha tramitado una solicitud de instancias de spot, Capacity (Capacidad) es el ID de la instancia de spot. 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]).

    nota

    Para las solicitudes de instancias de spot creadas por una flota de spot, las solicitudes no se etiquetan instantáneamente con la etiqueta del sistema que indica la flota de spot a la que pertenecen y durante un periodo pueden aparecer separadas de la solicitud de la flota de spot.

    O bien, en el panel de navegación, elija Instances (instancia[s]). En la esquina superior derecha, elija el icono de configuración ( ) y, a continuación, en Attribute columns (Columnas de atributos), seleccione Instance lifecycle (Ciclo de vida de instancia). Para cada instancia, Instance lifecycle (Ciclo de vida de instancia) es normal, spot o scheduled.

Buscar instancias de spot en ejecución (AWS CLI)

Para enumerar las instancias de spot, 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 del resultado:

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

También puede enumerar las instancias de spot mediante el comando describe-instances con la opción --filters.

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

Para describir una instancia de spot única, utilice el comando describe-spot-instance-requests con la opción --spot-instance-request-ids.

aws ec2 describe-spot-instance-requests \ --spot-instance-request-ids sir-08b93456

Etiquetar las solicitudes de instancia de spot

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": "*" } ] }
nota

Cuando utiliza la acción RunInstances para crear solicitudes de instancia de spot y etiquetar las solicitudes de instancia de spot durante la creación, debe tener en cuenta cómo Amazon EC2 evalúa el recurso spot-instances-request en la instrucción RunInstances.

El recurso spot-instances-request se evalúa en la política de IAM 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

Para etiquetar una nueva solicitud de instancia de spot mediante la consola
  1. Siga el procedimiento indicado en Crear una solicitud de instancia de spot.

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

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

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

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

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

  2. Seleccione su solicitud de instancia de spot.

  3. 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 en un recurso individual.

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

Ver las etiquetas de las solicitudes de instancias de spot

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

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

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

Para describir las etiquetas de solicitud de instancia de spot

Utilice el comando describe-tags para ver las etiquetas del recurso especificado. En el siguiente ejemplo, describe las etiquetas para la solicitud especificada.

aws ec2 describe-tags \ --filters "Name=resource-id,Values=sir-11112222-3333-4444-5555-66666EXAMPLE"
{ "Tags": [ { "Key": "Environment", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Production" }, { "Key": "Another key", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Another value" } ] }

También puede visualizar las etiquetas de una solicitud de instancia de spot describiendo dicha 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-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotInstanceRequests": [ { "CreateTime": "2020-06-24T14:22:11+00:00", "InstanceId": "i-1234567890EXAMPLE", "LaunchSpecification": { "SecurityGroups": [ { "GroupName": "launch-wizard-6", "GroupId": "sg-1234567890EXAMPLE" } ], "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true, "VolumeSize": 8, "VolumeType": "gp2" } } ], "ImageId": "ami-1234567890EXAMPLE", "InstanceType": "t2.micro", "KeyName": "my-key-pair", "NetworkInterfaces": [ { "DeleteOnTermination": true, "DeviceIndex": 0, "SubnetId": "subnet-11122233" } ], "Placement": { "AvailabilityZone": "eu-west-1c", "Tenancy": "default" }, "Monitoring": { "Enabled": false } }, "LaunchedAvailabilityZone": "eu-west-1c", "ProductDescription": "Linux/UNIX", "SpotInstanceRequestId": "sir-1234567890EXAMPLE", "SpotPrice": "0.012600", "State": "active", "Status": { "Code": "fulfilled", "Message": "Your spot request is fulfilled.", "UpdateTime": "2020-06-25T18:30:21+00:00" }, "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ], "Type": "one-time", "InstanceInterruptionBehavior": "terminate" } ] }

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.

Para cancelar una solicitud de instancia de spot (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

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

  3. Elija Acciones, Cancelar comando.

  4. (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.

Para cancelar una solicitud de instancia de spot (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.

nota

Mientras la instancia de spot esté detenida, puede modificar algunos de sus atributos, pero no el tipo de instancia.

Las instancias de spot detenidas no suponen cargos de uso ni tarifas de transferencia de datos, pero sí se cobra por el almacenamiento de cualquier volumen de Amazon EBS.

Limitaciones
  • Solo puede detener una instancia de spot si esta se lanzó desde una solicitud de instancia de spot persistent.

  • No se puede detener una instancia de spot si se ha cancelado la solicitud de instancia de spot asociada. Cuando se ha cancelado la solicitud de instancia de spot, solo usted puede terminarla.

  • No se puede detener una instancia de spot si forma parte de una flota, un grupo de inicialización o un grupo de zona de disponibilidad.

Console
Para detener una instancia de spot (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Instances (instancia[s]) y seleccione la instancia.

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

  4. Cuando se le pida que confirme, elija Stop.

AWS CLI
Detener una instancia de spot (AWS CLI)
  • Utilice el siguiente comando stop-instances para detener manualmente una o más 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. Los pasos que se llevan a cabo para iniciar una instancia de spot son similares a los pasos para iniciar una instancia bajo demanda.

Requisitos previos

Solo puede iniciar una instancia de spot en los siguientes casos:

  • Detuvo la instancia de spot manualmente.

  • La instancia de spot es una instancia con respaldo de EBS.

  • Hay capacidad de instancia de spot disponible.

  • El precio de spot es inferior al precio máximo.

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

Console
Para iniciar una instancia de spot (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Insances (instancias) y seleccione la instancia.

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

AWS CLI
Para iniciar una instancia de spot (AWS CLI)
  • Utilice el siguiente comando start-instances para iniciar manualmente una o más 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 información acerca de la cancelación de una solicitud de instancia de spot, consulte Cancelar una solicitud de instancia de spot.

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

  2. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  3. En el panel de navegación, seleccione Instances (Instancia[s]).

  4. Para confirmar que la instancia es una instancia de spot, verifique que diga spot en la columna “Instance lifecycle” (Ciclo de vida de la instancia).

  5. Seleccione la instancia y elija Instance state (Estado de la instancia) y Terminate instance (Terminar instancia).

  6. Cuando se le indique que confirme, elija Terminar.

AWS CLI
Terminar manualmente una instancia de spot mediante AWS CLI
  • Utilice el siguiente comando terminate-instances para terminar las instancias de spot manualmente:

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