Reducción de los costos de alojamiento de juegos con flotas de spot - Amazon GameLift Servers

Reducción de los costos de alojamiento de juegos con flotas de spot

A la hora de alojar servidores de juegos multijugador mediante un alojamiento administrado por Amazon GameLift Servers, las instancias de spot pueden ofrecer una alternativa rentable a las instancias bajo demanda. El modelo de precios de spot ofrece el mismo hardware y rendimiento que bajo demanda, pero con posibilidades de un ahorro de costos significativo (de hasta un 70-90 %). Sin embargo, esto lleva asociada una limitación: cuando AWS necesita recuperar capacidad, puede reclamar estas instancias con una notificación de interrupción de dos minutos.

Amazon GameLift Servers mitiga el riesgo de interrupciones en el alojamiento del servidor de juegos. Amazon GameLift Servers predice la probabilidad de que se produzcan interrupciones en los tipos de instancias de spot y evita poner en riesgo las sesiones de juego de cualquier instancia. Si se produce una interrupción, lo que será poco frecuente, la notificación le permite finalizar sin problemas una sesión de juego para los jugadores.

Funcionamiento de Amazon GameLift Servers con flotas de spot

Cuando se configuran flotas de spot para el alojamiento de juegos, Amazon GameLift Servers evalúa continuamente los tipos de instancias y las ubicaciones de las flotas de spot para comprobar la viabilidad del alojamiento de juegos.

  • El algoritmo de viabilidad de spot analiza los patrones de disponibilidad recientes y las tasas de interrupción históricas de los tipos de instancias de spot por ubicación.

  • Basándose en este análisis, Amazon GameLift Servers identifica los tipos de instancias de spot y las ubicaciones en las que las probabilidades de interrupción de las sesiones de juego son inaceptables. Lleva a cabo las siguientes acciones:

    • Marca la combinación del tipo de instancia y la ubicación como temporalmente inviable.

    • Deja de considerar cualquier ubicación de flota de spot inviable a la hora de ubicar las nuevas sesiones de juego. Como resultado de ello, las sesiones de juego solo se ubican en ubicaciones de flota de spot que ofrecen una alta probabilidad de alojar servidores de juegos sin interrupciones.

    • Esto agota las instancias existentes en la flota de spot, incluso si AWS no las reclama, de modo que no tenga que pagar por instancias que no se puedan utilizar para el alojamiento de juegos. Si la protección de las sesiones de juego está activada, las instancias solo se cierran una vez completadas las sesiones de juego activas.

  • Amazon GameLift Servers reevalúa continuamente los tipos y ubicaciones de las instancias de las flotas de spot para comprobar la viabilidad del alojamiento de juegos. Cuando un tipo de instancia que antes no era viable vuelve a ser viable en función de los datos históricos actualizados, puede volver a escalar verticalmente la flota de spot; en este caso, Amazon GameLift Servers reanudará la ubicación de las sesiones de juego con ella.

Consideraciones sobre el diseño

A la hora de diseñar una solución que utilice flotas de spot, tenga en cuenta los siguientes aspectos:

  • Evalúe la duración de las sesiones de juego: la duración media de las sesiones de juego puede influir en cómo funciona Spot con su juego. Con sesiones de juego más cortas, el menor tiempo de respuesta hace que las sesiones de juego se ejecuten en tipos de instancias viables basándose en los datos históricos más recientes. Las sesiones de juego más largas siguen ejecutándose en tipos de instancias sin evaluar los datos de viabilidad recientes, lo que aumenta el riesgo de interrupción a lo largo del tiempo.

  • Evalúe la disponibilidad de los tipos de instancia: no todas las ubicaciones de la flota ofrecen todos los tipos de instancias como spot. Al elegir un tipo de instancia para su flota de spot, utilice la herramienta de creación de flotas de la consola de Amazon GameLift Servers para encontrar tipos de instancias de spot en las ubicaciones que necesite. Con esta herramienta, puede seleccionar ubicaciones de flota y, a continuación, ver la disponibilidad de los tipos de instancias en esas ubicaciones.

  • Cree flotas de Spot con múltiples ubicaciones: puede crear flotas de spot con múltiples ubicaciones. Una única flota de spot con múltiples ubicaciones implementa instancias con el mismo tipo de instancia en varias Regiones de AWS o zonas locales. El algoritmo de viabilidad de spot evalúa la viabilidad en función del tipo de instancia y la ubicación. Si la ubicación de una flota de spot se considera inviable, esto no afectará a otras ubicaciones de la flota, que podrán seguir utilizándose para alojar sesiones de juego.

  • Cree colas con diversidad de flotas de spot: si utiliza flotas de spot para el alojamiento del juego, tendrá que configurar una cola de ubicación de sesiones de juego. Para cada nueva solicitud de sesión de juego, la cola busca los recursos de alojamiento de juegos disponibles y selecciona la mejor opción posible. Con las flotas de spot, lo ideal es disponer de una cola capaz de buscar entre múltiples flotas que varíen tanto en cuanto a ubicaciones como a tipos de instancias, e incluir al menos una flota bajo demanda como capacidad de reserva. Una cola de múltiples flotas correctamente diseñada y que ofrezca diversas opciones de ubicación es muy resistente a interrupciones, ralentizaciones y cortes. Para obtener más información sobre cómo diseñar una cola para spot, consulte Creación de una cola para instancias de spot.

  • Gestione las interrupciones eficazmente: configure el servidor de juegos para minimizar el impacto en los jugadores en caso de que se produzca una interrupción de spot. Cuando AWS reclama una instancia de spot, Amazon GameLift Servers envía la notificación de finalización a todos los procesos del servidor afectados mediante la función de devolución de llamada onProcessTerminate() del SDK del servidor. El juego debe implementar esta devolución de llamada para finalizar la sesión de juego sin problemas. Para obtener más información, consulte Respuesta a una notificación de cierre del proceso del servidor.

    nota

    AWS hace todo lo posible por enviar la notificación antes de recuperar una instancia, pero es posible que AWS recupere la instancia de spot antes de que llegue la advertencia. También debe preparar el servidor de juegos para que gestione las interrupciones imprevistas.

  • Configure el escalado automático de las flotas de reserva para mantener el servicio durante una interrupción de spot. El escalado automático con seguimiento de objetivos mantiene un búfer de capacidad y escala automáticamente en función de la demanda. Con el escalado automático, las flotas de reserva (de spot o bajo demanda) empezarán a aumentar su capacidad al empezar a recibir más solicitudes de sesiones de juego.

    Para reemplazar rápidamente la capacidad perdida cuando una flota de spot deja de ser viable, un mecanismo de escalado personalizado puede utilizar las métricas de colas y flotas disponibles para iniciar un escalado rápido de las flotas de reserva. Detecte cuándo las flotas de spot dejan de ser viables con métricas como FirstChoiceOutOfCapacity, FirstChoiceNotViable y PercentAvailableGameSessions. Para hacer una estimación de las necesidades de capacidad de sustitución, puede analizar los datos recientes de las métricas de PlacementsStarted. Tras escalar las flotas de reserva para dar cabida a la demanda inmediata, puede continuar con el escalado automático normal.

  • Integración con FlexMatch: si su solución utiliza un emparejador de FlexMatch, no hay requisitos especiales para las flotas de spot. Puede configurar un emparejador para que utilice una cola con las flotas de spot. Amazon GameLift Servers prioriza automáticamente las ubicaciones de las partidas en las flotas de spot y bajo demanda, incluso al ubicar las nuevas sesiones de juego y al reponer los espacios vacíos para jugadores en las sesiones de juego existentes.