Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Tutorial: Pruebe las interrupciones de una instancia puntual mediante AWS FIS
Las instancias puntuales utilizan EC2 la capacidad sobrante disponible, con un descuento de hasta un 90% en comparación con los precios bajo demanda. Sin embargo, Amazon EC2 puede interrumpir sus instancias puntuales cuando necesite recuperar la capacidad. Cuando utilice instancias de spot, debe estar preparado para las posibles interrupciones. Para obtener más información, consulte Interrupciones de instancias puntuales en la Guía del EC2 usuario de Amazon.
Puede usar… AWS Servicio de inyección de fallos (AWS FIS) para comprobar cómo gestionan sus aplicaciones una interrupción de una instancia puntual. Utilice este tutorial para crear una plantilla de experimento que utilice AWS FISaws:ec2:send-spot-instance-interruptions
acción para interrumpir una de sus instancias puntuales.
Como alternativa, para iniciar el experimento con la EC2 consola de Amazon, consulte Iniciar una interrupción de una instancia puntual en la Guía del EC2 usuario de Amazon.
Requisitos previos
Antes de poder usarlo AWS FISpara interrumpir una instancia puntual, complete los siguientes requisitos previos.
1. Cree un rol IAM
Cree un rol y adjunte una política que permita AWS FISpara realizar la aws:ec2:send-spot-instance-interruptions
acción en su nombre. Para obtener más información, consulte Roles de IAM para los experimentos de AWS FIS.
2. Verifica el acceso a AWS FIS
Asegúrese de tener acceso a AWS FIS. Para obtener más información, consulte AWS FISejemplos de políticas.
3. (Opcional) Crear una solicitud de instancia de spot
Si desea utilizar una nueva instancia de spot en este experimento, utilice el comando run-instances para solicitar una instancia de spot. El comportamiento predeterminado es terminar las instancias de spot cuando se interrumpen. Si establece el comportamiento de interrupción en stop
, también debe establecer el tipo en persistent
. Para este tutorial, no defina el comportamiento de interrupción en hibernate
, ya que el proceso de hibernación comenzará inmediatamente.
aws ec2 run-instances \ --image-id
ami-0ab193018fEXAMPLE
\ --instance-type "t2.micro
" \ --count 1 \ --subnet-idsubnet-1234567890abcdef0
\ --security-group-idssg-111222333444aaab
\ --instance-market-options file://spot-options.json
\ --query Instances[*].InstanceId
A continuación se muestra un ejemplo del archivo spot-options.json
.
{ "MarketType": "spot", "SpotOptions": { "SpotInstanceType": "persistent", "InstanceInterruptionBehavior": "stop" } }
La opción --query
del comando de ejemplo permite que el comando devuelva solo el ID de instancia de la instancia de spot. A continuación, se muestra un ejemplo del resultado.
[ "i-0abcdef1234567890" ]
4. Añada una etiqueta para que AWS FISpuede identificar la instancia puntual de destino
Utilice el comando create-tags para añadir la etiqueta Name=interruptMe a su instancia puntual de destino.
aws ec2 create-tags \ --resources
i-0abcdef1234567890
\ --tags Key=Name,Value=interruptMe
Paso 1: Crear una plantilla de experimento
Cree la plantilla del experimento utilizando el AWS FISconsola. En la plantilla, especifique la acción que se ejecutará. La acción interrumpe la instancia de spot con la etiqueta especificada. Si hay más de una instancia puntual con la etiqueta, AWS FISelige una de ellas al azar.
Para crear una plantilla de experimento
Abra el icono AWS FISbarra de consola https://console.aws.amazon.com/fis/
. -
En el panel de navegación, elija Plantillas de experimento.
-
Elija Crear plantilla de experimento.
-
En Descripción y nombre, escriba un nombre y una descripción para la plantilla.
-
En Actions (Acciones), haga lo siguiente:
-
Seleccione Agregar acción.
-
Escriba un nombre para la acción. Por ejemplo, escriba
interruptSpotInstance
. -
En Tipo de acción, elija aws:ec2:. send-spot-instance-interruptions
-
Para Target, mantenga el objetivo que AWS FIScrea para ti.
-
En Parámetros de acción, Duración antes de la interrupción, especifique 2 minutos (PT2M).
-
Seleccione Guardar.
-
-
En Targets (Destinos), haga lo siguiente:
-
Elija Editar para el objetivo que AWS FIScreado automáticamente para usted en el paso anterior.
-
Sustituya el nombre por defecto por un nombre más descriptivo. Por ejemplo, escriba
oneSpotInstance
. -
Compruebe que Tipo de recurso sea aws:ec2:spot-instance.
-
En Método de destino, elija Etiquetas, filtros y parámetros de recursos.
-
En Etiquetas de recursos, elija Agregar nueva etiqueta e ingrese la clave y el valor de la etiqueta. Utilice la etiqueta que ha agregado a la instancia de spot que se va a interrumpir, tal y como se describe en Requisitos previos de este tutorial.
-
En Filtros de recursos, elija Agregar nuevo filtro e ingrese
State.Name
como ruta yrunning
como valor. -
En Modo de selección, elija Recuento. En Cantidad de recursos, escriba
1
. -
Seleccione Guardar.
-
-
Para el acceso al servicio, elija Usar un IAM rol existente y, a continuación, elija el IAM rol que creó tal como se describe en los requisitos previos de este tutorial. Si su rol no aparece, compruebe que tiene la relación de confianza requerida. Para obtener más información, consulte Roles de IAM para los experimentos de AWS FIS.
-
(Opcional) En Etiquetas, elija Agregar nueva etiqueta y especifique una clave y un valor de etiqueta. Las etiquetas que agregue se aplican a la plantilla de experimento, no a los experimentos que se ejecutan con la plantilla.
-
Elija Crear plantilla de experimento. Cuando se le solicite confirmación, ingrese
create
y luego, elija Creación de la plantilla de experimento.
(Opcional) Para ver la plantilla del experimento JSON
Elija la pestaña Exportar. El siguiente es un ejemplo del procedimiento JSON creado por la consola anterior.
{ "description": "Test Spot Instance interruptions", "targets": { "oneSpotInstance": { "resourceType": "aws:ec2:spot-instance", "resourceTags": { "Name": "interruptMe" }, "filters": [ { "path": "State.Name", "values": [ "running" ] } ], "selectionMode": "COUNT(1)" } }, "actions": { "interruptSpotInstance": { "actionId": "aws:ec2:send-spot-instance-interruptions", "parameters": { "durationBeforeInterruption": "PT2M" }, "targets": { "SpotInstances": "oneSpotInstance" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "arn:aws:iam::
123456789012
:role/AllowFISSpotInterruptionActions
", "tags": { "Name": "my-template" } }
Paso 2: Iniciar el experimento
Cuando haya terminado de crear la plantilla de experimento, podrá utilizarla para iniciar un experimento.
Para iniciar un experimento
-
Debería estar en la página de detalles de la plantilla de experimento que acaba de crear. De lo contrario, elija Plantillas de experimento y, a continuación, seleccione el ID de la plantilla de experimento para abrir la página de detalles.
-
Elija Start experiment (Iniciar experimento).
-
(Opcional) Para agregar una etiqueta a su experimento, elija Agregar nueva etiqueta e ingrese una clave y un valor de etiqueta.
-
Elija Start experiment (Iniciar experimento). Cuando se le pida que confirme, ingrese
start
y elija Iniciar experimento.
Paso 3: Hacer un seguimiento del progreso del experimento
Puede hacer un seguimiento del progreso de un experimento en ejecución hasta que se complete, se detenga o falle.
Para hacer un seguimiento del progreso de un experimento
-
Debería estar en la página de detalles del experimento que acaba de iniciar. De lo contrario, elija Experimentos y, a continuación, seleccione el ID del experimento para abrir la página de detalles.
-
Para ver el estado del experimento, seleccione Estado en el panel Detalles. Para obtener más información, consulte Estados de experimento.
-
Vaya al siguiente paso cuando el estado del experimento sea En ejecución.
Paso 4: Verificar el resultado del experimento
Cuando la acción de este experimento se complete, ocurre lo siguiente:
-
La instancia de spot de destino recibe una recomendación de reequilibrio de instancias.
-
Se emite un aviso de interrupción de la instancia puntual dos minutos antes de que Amazon EC2 cancele o detenga la instancia.
-
Cuando pasan dos minutos, la instancia de spot se termina o detiene.
-
Una instancia puntual que ha sido detenida por AWS FISpermanece detenida hasta que la reinicie.
Para verificar que el experimento interrumpió la instancia
-
Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, abra Spot Requests (Solicitudes de spot) e Instances (Instancia[s]) en pestañas o ventanas separadas del navegador.
-
En Spot Requests (Solicitudes de spot), seleccione la solicitud de instancia de spot. El estado inicial es.
fulfilled
Una vez completado el experimento, el estado cambia de la siguiente manera:terminate
: el estado cambia ainstance-terminated-by-experiment
.stop
: el estado cambia amarked-for-stop-by-experiment
y, a continuación, ainstance-stopped-by-experiment
.
-
En Instances (instancia[s]), seleccione la instancia de spot. El estado inicial es.
Running
Dos minutos después de recibir el aviso de interrupción de la instancia de spot, el estado cambia de la siguiente forma:stop
: el estado cambia aStopping
y, a continuación, aStopped
.terminate
: el estado cambia aShutting-down
y, a continuación, aTerminated
.
Paso 5: Eliminar
Si creó la instancia de spot de prueba para este experimento con un comportamiento de interrupción de stop
y ya no la necesita, puede cancelar la solicitud de instancia de spot y terminarla.
Para cancelar la solicitud y finalizar la instancia mediante el AWS CLI
-
Utilice el cancel-spot-instance-requestscomando para cancelar la solicitud de instancia puntual.
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids
sir-ksie869j
-
Utilice el comando terminate-instances para terminar la instancia.
aws ec2 terminate-instances --instance-ids
i-0abcdef1234567890
Si ya no necesita la plantilla de experimento, puede eliminarla.
Para eliminar una plantilla de experimento mediante el AWS FISconsola
Abra el icono AWS FISbarra de consola https://console.aws.amazon.com/fis/
. -
En el panel de navegación, elija Plantillas de experimento.
-
Seleccione la plantilla de experimento y elija Acciones, Eliminar plantilla de experimento.
-
Cuando se le solicite confirmación, ingrese
delete
y luego, elija Eliminar plantilla de experimento.