Criar uma fila para instâncias spot
Crie uma fila de sessões de jogo para adicionar frotas spot à solução de hospedagem de jogos. Para obter mais informações sobre instâncias spot e como elas podem oferecer economias de custo significativas para hospedagem, consulte Instâncias sob demanda versus instâncias spot. Para aproveitar os menores custos de hospedagem com instâncias spot, é necessário criar uma fila de sessões de jogo ao configurar uma frota gerenciada do Amazon GameLift para usar instâncias spot, instâncias sob demanda ou uma combinação das duas. Saiba mais sobre como o Amazon GameLift usa instâncias spot em . Para usar frotas spot, sua integração com o jogo requer os ajustes listados nesta página.
Você está usando FlexMatch para a criação de jogos? É possível adicionar frotas spot às suas filas de sessões de jogo existentes para colocações de criação de jogos.
-
Determine os destinos da fila de sessões de jogo.
Gerenciar o posicionamento da sessão de jogo com uma fila é sempre uma melhor prática necessária ao usar instâncias spot. Como as instâncias spot nem sempre estão disponíveis quando necessário, é preciso projetar uma fila resiliente que inclua frotas spot e frotas sob demanda para oferecer capacidade de backup. Você pode manter as frotas sob demanda em escala vertical reduzida até que elas sejam necessárias. Para projetar a fila, considere o seguinte:
-
Locais: escolha locais geograficamente próximos aos jogadores. As frotas spot e sob demanda devem
-
Tipos de instância: considere os requisitos de hardware dos servidores de jogos e a disponibilidade de instâncias nos locais escolhidos.
Para experimentar uma fila que otimize a disponibilidade e a resiliência do spot, consulte Tutorial: criar uma fila do Amazon GameLift com instâncias spot. Para ver as práticas recomendadas de design de spot, consulte Melhores práticas do Amazon GameLift em filas de sessão de jogo.
-
-
Crie as frotas para a sua fila otimizada para spot.
Com base no design da fila, crie frotas para implantar os servidores de jogos nos locais e tipos de instância desejados. Consulte Criar uma frota EC2 gerenciada do Amazon GameLift para receber ajuda sobre como criar e configurar novas frotas.
-
Criar uma fila de sessões de jogos.
Adicione os destinos da frota, configure o processo de posicionamento da sessão de jogo e defina as prioridades de posicionamento. Consulte Criar uma fila de sessões de jogo para receber ajuda sobre como criar e configurar a nova fila.
-
Atualize o serviço de cliente do jogo para usar a fila.
Quando o cliente do jogo usa uma fila para solicitar recursos, a fila evita recursos com alta chance de interrupção e seleciona o local que corresponde às suas prioridades definidas. Para receber ajuda sobre como implantar posicionamentos de sessões de jogo no seu jogo, consulte Criar sessões de jogos.
-
Atualize o servidor de jogos lidar com interrupções spot.
A AWS pode interromper as instâncias spot com notificação de dois minutos quando ela precisar da capacidade de volta. Configure o servidor de jogos para lidar com interrupções e minimizar o impacto do jogador.
Antes de AWS recuperar uma Instância Spot, ela envia uma notificação de encerramento. O Amazon GameLift passa a notificação para todos os processos afetados do servidor invocando a função de retorno de chamada do SDK do servidor do Amazon GameLift.
onProcessTerminate()
Implemente esse retorno de chamada para encerrar a sessão de jogo ou mover a sessão de jogo e os jogadores para uma nova instância. Consulte Responder a uma notificação de desligamento do processo do servidor para receber ajuda sobre como implementaronProcessTerminate()
.nota
A AWS faz todos os esforços para fornecer a notificação antes que ela recupere uma instância, mas é possível que a AWS recupere a Instância spot antes que o aviso chegue. Prepare o servidor de jogos para lidar com interrupções inesperadas.
-
Revise o desempenho das frotas spot e das filas.
Veja as métricas do Amazon GameLift no console do Amazon GameLift ou com o Amazon CloudWatch para rever o desempenho. Para obter mais informações sobre as métricas do Amazon GameLift, consulte Monitorar o Amazon GameLift com o Amazon CloudWatch. As principais métricas incluem:
-
Taxa de interrupção: use as métricas
InstanceInterruptions
eGameSessionInterruptions
para acompanhar a quantidade e a frequência das interrupções relacionadas a instâncias spot e sessões de jogos. As sessões de jogo recuperadas pela AWS têm um statusTERMINATED
e um motivo de statusINTERRUPTED
. -
Eficácia da fila: acompanhe as taxas de sucesso de posicionamento, tempo médio de espera e profundidade da fila, para verificar se o uso de frotas spot não tem impacto no desempenho da fila.
-
Uso da frota: monitore dados sobre instâncias, sessões de jogos e sessões de jogadores. O uso de frotas sob demanda pode ser um indicador de que as filas estão evitando posicionamentos em suas frotas spot para evitar interrupções.
-
Melhores práticas para filas com frotas Spot
Se sua fila incluir frotas Spot, configure uma fila resiliente. Isso aproveita a economia de custos com as frotas Spot e, ao mesmo tempo, minimiza o efeito das interrupções nas sessões de jogo. Para obter ajuda sobre como criar frotas e filas de sessões de jogo corretamente para uso com frotas Spot, consulte Tutorial: criar uma fila do Amazon GameLift com instâncias spot. Para obter mais informações sobre instâncias spot, consulte Criar uma fila para instâncias spot.
Além das melhores práticas gerais na seção anterior, considere estas melhores práticas específicas do SPOT:
-
Crie pelo menos uma frota sob demanda em cada local. As frotas sob demanda fornecem servidores de jogos de backup para seus jogadores. Você poderá reduzir a escala de suas frotas de backup até que sejam necessárias e usar o ajuste de escala automático para aumentar a capacidade sob demanda quando as frotas spot não estiverem disponíveis.
-
Selecione diferentes tipos de instância em várias frotas Spot em um local. Se um tipo de Instância Spot ficar temporariamente indisponível, a interrupção afetará somente uma frota Spot no local. A melhor prática é escolher tipos de instância amplamente disponíveis e usar tipos de instância da mesma família (por exemplo, m5.large, m5.xlarge, m5.2xlarge). Use o console do Amazon GameLift
para visualizar dados históricos de preços para tipos de instância.