Status da solicitação spot
Para ajudar você a acompanhar suas solicitações de instância spot e planejar o uso de instâncias spot, use o status de solicitação fornecido pelo Amazon EC2. Por exemplo, um status de solicitação informa o motivo por que sua solicitação spot ainda não foi atendida ou lista as restrições que estão impedindo o atendimento de sua solicitação spot.
Em cada etapa do processo — também denominado ciclo de vida da solicitação spot — eventos específicos determinam estados sucessivos de solicitação.
Tópicos
Ciclo de vida de uma solicitação spot
O diagrama a seguir mostra os caminhos que a solicitação spot pode seguir durante todo o ciclo de vida, do envio ao encerramento. Cada etapa é representada como um nó, e o código de status de cada nó descreve o status da solicitação spot e da instância spot.
Avaliação pendente
Assim que você cria uma solicitação de instância spot, ela entra no estado pending-evaluation
, a menos que um ou mais parâmetros da solicitação não sejam válidos (bad-parameters
).
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
pending-evaluation |
open |
Não aplicável |
bad-parameters |
closed |
Não aplicável |
Em espera
Se uma ou mais restrições da solicitação forem válidas, mas ainda não for possível atendê-las, ou se não houver capacidade suficiente, a solicitação assumirá um estado em espera aguardando que as restrições sejam atendidas. As opções de solicitação afetam a probabilidade de atendimento da solicitação. Por exemplo, se não houver capacidade, sua solicitação permanecerá no estado de hibernação até que haja capacidade disponível. Se você especificar um grupo de zonas de disponibilidade, a solicitação permanecerá no estado de espera até a restrição de zona de disponibilidade ser atendida.
No caso de interrupção de uma das zonas de disponibilidade, há uma chance de que a capacidade extra do EC2 disponível para solicitações de instância spot em outras zonas de disponibilidade possa ser afetada.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
capacity-not-available |
open |
Não aplicável |
price-too-low |
open |
Não aplicável |
not-scheduled-yet |
open |
Não aplicável |
launch-group-constraint |
open |
Não aplicável |
az-group-constraint |
open |
Não aplicável |
placement-group-constraint
|
open
|
Não aplicável |
constraint-not-fulfillable
|
open
|
Não aplicável |
Avaliação pendente/atendimento - terminal
A solicitação de instância spot poderá entrar no estado terminal
se você criar uma solicitação que seja válida somente em um período específico e esse período expirar antes da solicitação atingir a fase de atendimento pendente. Isso também poderá ocorrer se você cancelar a solicitação ou se ocorrer um erro.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
schedule-expired
|
cancelled
|
Não aplicável |
canceled-before-fulfillment ¹ |
cancelled
|
Não aplicável |
bad-parameters
|
failed
|
Não aplicável |
system-error
|
closed
|
Não aplicável |
¹ Se a solicitação for cancelada.
Atendimento pendente
Quando as restrições especificadas (se houver) forem atendidas, sua solicitação spot entrará no estado pending-fulfillment
.
Nesse momento, o Amazon EC2 está se preparando para provisionar as instâncias solicitadas. Se o processo parar nesse momento, provavelmente foi devido ao seu cancelamento pelo usuário antes da execução de uma instância spot. Isso também pode ocorrer devido a um erro inesperado do sistema.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
pending-fulfillment
|
open
|
Não aplicável |
Atendido
Quando todas as especificações das instâncias spot forem atendidas, sua solicitação spot será atendida. O Amazon EC2 executa as instâncias spot, o que pode levar alguns minutos. Se uma instância spot ficar em estado de hibernação, ela permanecerá nesse estado até que a solicitação possa ser atendida novamente ou seja cancelada.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
fulfilled
|
active
|
pending → running
|
fulfilled
|
active
|
stopped → running
|
Se você interromper uma instância spot, a solicitação spot entrará no estado marked-for-stop
ou instance-stopped-by-user
até que ela possa ser iniciada novamente ou até que a solicitação seja cancelada.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
marked-for-stop
|
active |
stopping
|
instance-stopped-by-user ¹ |
disabled ou cancelled ² |
stopped
|
¹ Uma instância spot entrará no estado instance-stopped-by-user
se você interromper a instância ou executar o comando de desligamento na própria instância. Depois de interromper a instância, é possível iniciá-la novamente. Na reinicialização, a solicitação de instância spot retornará para o estado pending-evaluation
e o Amazon EC2 iniciará uma nova instância spot quando as restrições forem atendidas.
² O estado da solicitação spot será disabled
se você interromper a instância spot, mas não cancelar a solicitação. O estado da solicitação será cancelled
se a instância spot for interrompida e a solicitação expirar.
Atendido - terminal
As instâncias spot continuarão em execução, contanto que haja capacidade disponível para o tipo de instância e você não encerre a instância. Se o Amazon EC2 precisar encerrar as instâncias spot, a solicitação spot assumirá um estado terminal. Uma solicitação também entrará no estado terminal se você cancelar a solicitação spot ou encerrar as Instâncias spot.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
request-canceled-and-instance-running
|
cancelled
|
running
|
marked-for-stop
|
active
|
running
|
marked-for-termination
|
active
|
running
|
instance-stopped-by-price
|
disabled
|
stopped
|
instance-stopped-by-user
|
disabled
|
stopped
|
instance-stopped-no-capacity
|
disabled
|
stopped
|
instance-terminated-by-price
|
closed (única), open (persistente) |
terminated
|
instance-terminated-by-schedule
|
closed
|
terminated
|
instance-terminated-by-service
|
cancelled
|
terminated
|
instance-terminated-by-user
|
closed ou cancelled ¹ |
terminated
|
instance-terminated-no-capacity
|
closed (única), open (persistente) |
running †
|
instance-terminated-no-capacity
|
closed (única), open (persistente) |
terminated
|
instance-terminated-launch-group-constraint
|
closed (única), open (persistente) |
terminated
|
¹ O estado da solicitação será closed
se você encerrar a instância, mas não cancelar a solicitação. O estado da solicitação será cancelled
se você encerrar a instância e cancelar a solicitação. Mesmo que você encerre uma instância spot antes de cancelar a solicitação, talvez o Amazon EC2 atrase a detecção de que a instância spot foi encerrada. Nesse caso, o estado da solicitação poderá ser closed
ou cancelled
.
† Quando o Amazon EC2 interrompe uma instância spot, se precisa da capacidade de volta e a instância está configurada para terminar na interrupção, o status é imediatamente definido comoinstance-terminated-no-capacity
(não é definido como marked-for-termination
). No entanto, a instância permanece no estado running
por 2 minutos para refletir o período de 2 minutos quando a instância recebe o aviso de interrupção da instância spot. Após 2 minutos, o estado da instância é definido como terminated
.
Experimentos de interrupção
Você pode usar AWS Fault Injection Service para iniciar a interrupção de uma instância spot e poder testar como as aplicações nessas instâncias spot respondem. Se o AWS FIS interromper uma instância spot, sua solicitação de spot entrará no estado marked-for-stop-by-experiment
e depois no estado instance-stopped-by-experiment
. Se o AWS FIS encerrar uma instância spot, sua solicitação de spot entrará no estado instance-terminated-by-experiment
. Para ter mais informações, consulte Iniciar a interrupção de uma instância spot.
Código de status | Estado da solicitação | Estado da instância |
---|---|---|
marked-for-stop-by-experiment |
active |
running |
instance-stopped-by-experiment |
disabled |
stopped |
instance-terminated-by-experiment |
closed |
terminated |
Requisições persistentes
Quando as instâncias spot forem encerradas (por você ou pelo Amazon EC2), se a solicitação spot for uma requisição persistente, ela retornará ao estado pending-evaluation
e, em seguida, o Amazon EC2 poderá iniciar uma nova instância spot quando as restrições forem cumpridas.
Obter informações do status da solicitação
É possível obter informações de status da solicitação usando o AWS Management Console ou a ferramenta da linha de comando.
Para obter informações sobre o status de uma solicitação usando o console
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
No painel de navegação, escolha Spot Requests (Solicitações spot) e selecione a solicitação spot.
-
Para verificar o status, na guia Descrição, marque o campo Status .
Para obter informações de status da solicitação usando a linha de comando
É possível usar um dos comandos a seguir. Para obter mais informações sobre essas interfaces de linha de comando, consulte Acessar o Amazon EC2.
-
describe-spot-instance-requests (AWS CLI)
-
Get-EC2SpotInstanceRequest (AWS Tools for Windows PowerShell)
Códigos de status das solicitações spot
As informações de status da solicitação spot são compostas de um código de status da solicitação, o tempo de atualização e uma mensagem de status. Juntas, essas informações ajudam a determinar a disposição de sua solicitação spot.
Veja a seguir os códigos de status de solicitação spot:
az-group-constraint
-
O Amazon EC2 não pode executar todas as instâncias que você solicitou na mesma zona de disponibilidade.
bad-parameters
-
Um ou mais parâmetros para sua solicitação spot são inválidos (por exemplo, a AMI que você especificou não existe). A mensagem de status de solicitação indica qual parâmetro é inválido.
canceled-before-fulfillment
-
O usuário cancelou a solicitação spot antes de ser atendida.
capacity-not-available
-
Não há capacidade suficiente disponível para as instâncias solicitadas.
constraint-not-fulfillable
-
A solicitação spot não pode ser atendida porque uma ou mais restrições são inválidas (por exemplo, a zona de disponibilidade não existe). A mensagem de status de solicitação indica qual restrição é inválida.
fulfilled
-
A solicitação spot é
active
e Amazon EC2 está executando seu Instâncias spot. instance-stopped-by-price
-
Sua instância foi interrompida porque o preço spot excedeu seu preço máximo.
instance-stopped-by-user
-
A instância foi interrompida porque um usuário interrompeu a instância ou executou o comando de desligamento a partir da instância.
instance-stopped-no-capacity
-
Sua instância foi interrompida devido às necessidades de gerenciamento de capacidade do EC2.
instance-terminated-by-price
-
Sua instância foi encerrada porque o preço spot excedeu seu preço máximo. Se sua solicitação for uma sugestão de preço persistente, o processo será reiniciado, portanto, sua solicitação está com a avaliação pendente.
instance-terminated-by-schedule
-
Sua instância spot foi encerrada no final da duração prevista.
instance-terminated-by-service
-
A instância foi encerrada em um estado interrompido.
instance-terminated-by-user
ouspot-instance-terminated-by-user
-
Você encerrou uma instância spot que tinha sido atendida, portanto, o estado da solicitação é
closed
(a menos que se trate de uma requisição persistente) e o estado da instância éterminated
. instance-terminated-launch-group-constraint
-
Uma ou mais instâncias no grupo de execução foram encerradas, portanto, a restrição do grupo de execução deixou de ser atendida.
instance-terminated-no-capacity
-
Sua instância foi encerrada devido aos processos padrão de gerenciamento de capacidade.
launch-group-constraint
-
O Amazon EC2 não pode executar todas as instâncias que você solicitou ao mesmo tempo. Todas as instâncias em um grupo de execução são iniciadas e encerradas juntas.
limit-exceeded
-
O limite no número de volumes EBS ou de armazenamento de volume total foi excedido. Para obter mais informações sobre esses limites e como solicitar um aumento, consulte Limites do Amazon EBS no Referência geral da Amazon Web Services.
marked-for-stop
-
A instância spot é marcada para interrupção.
marked-for-termination
-
A instância spot é marcada para encerramento.
not-scheduled-yet
-
A solicitação spot não é avaliada até a data programada.
pending-evaluation
-
Após criar uma solicitação de instância spot, ela entrará no estado
pending-evaluation
enquanto o sistema avalia os parâmetros da solicitação. pending-fulfillment
-
O Amazon EC2 está tentando provisionar as Instâncias spot.
placement-group-constraint
-
A solicitação spot ainda não pode ser atendida porque uma instância spot não pode ser adicionada ao grupo de posicionamento no momento.
price-too-low
-
A solicitação ainda não pode ser atendida porque seu preço máximo está abaixo do preço spot. Nesse caso, nenhuma instância é executada e sua solicitação permanece
open
. request-canceled-and-instance-running
-
Você cancelou a solicitação spot enquanto as Instâncias spot ainda estão em execução. A solicitação é
cancelled
, mas instâncias permanecemrunning
. schedule-expired
-
A solicitação spot expirou porque não foi atendida antes da data especificada.
system-error
-
Houve um erro de sistema inesperado. Se esse for um problema recorrente, entre em contato com o AWS Support para obter assistência.
Evento de atendimento de solicitação de instância spot do EC2
Quando uma solicitação de instância spot é atendida, o Amazon EC2 envia um evento de atendimento de solicitação de instância spot do EC2 ao Amazon EventBridge. É possível criar uma regra para realizar uma ação sempre que esse evento ocorrer, como invocar uma função Lambda ou notificar um tópico do Amazon SNS.
A seguir estão dados de exemplo para esse evento.
{
"version": "0",
"id": "01234567-1234-0123-1234-012345678901
",
"detail-type": "EC2 Spot Instance Request Fulfillment",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-2
",
"resources": ["arn:aws:ec2:us-east-2
:123456789012
:instance/i-1234567890abcdef0
"],
"detail": {
"spot-instance-request-id": "sir-1a2b3c4d
",
"instance-id": "i-1234567890abcdef0
"
}
}
Para obter mais informações, consulte o Guia do Usuário do Amazon EventBridge.