Administrar los recursos GameLift de alojamiento de Amazon mediante AWS CloudFormation - Amazon GameLift

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.

Administrar los recursos GameLift de alojamiento de Amazon mediante AWS CloudFormation

Puedes usarlo AWS CloudFormation para gestionar tus GameLift recursos de Amazon. En AWS CloudFormation, creas una plantilla que modela cada recurso y, a continuación, utilizas la plantilla para crear tus recursos. Para actualizar los recursos, debe realizar los cambios en la plantilla y utilizarlos AWS CloudFormation para implementar las actualizaciones. Puede organizar sus recursos en grupos lógicos, llamados "pilas" y "conjuntos de pilas".

El uso AWS CloudFormation para mantener tus recursos de GameLift hosting de Amazon ofrece una forma más eficiente de gestionar conjuntos de AWS recursos. Puede utilizar el control de versiones para realizar un seguimiento de los cambios en las plantillas a lo largo del tiempo y coordinar las actualizaciones realizadas por varios miembros del equipo. También puede reutilizar las plantillas. Por ejemplo, al implementar un juego en varias regiones, puede usar la misma plantilla para crear recursos idénticos en cada región. También puede utilizar estas plantillas para implementar los mismos conjuntos de recursos en otra partición.

Para obtener más información al respecto AWS CloudFormation, consulte la Guía AWS CloudFormation del usuario. Para ver la información de las plantillas de GameLift los recursos de Amazon, consulta la referencia del tipo de GameLift recurso de Amazon.

Prácticas recomendadas

Para obtener una guía detallada sobre su uso AWS CloudFormation, consulta las prácticas AWS CloudFormation recomendadas en la Guía del AWS CloudFormation usuario. Además, estas prácticas recomendadas tienen especial relevancia en Amazon GameLift.

  • Administre de forma coherente los recursos que utiliza mediante AWS CloudFormation. Si cambias tus recursos externos, AWS CloudFormation tus recursos no estarán sincronizados con tus plantillas de recursos.

  • Usa AWS CloudFormation pilas y conjuntos de pilas para gestionar de forma eficiente varios recursos.

    • Utilice pilas para administrar grupos de recursos conectados. Por ejemplo, una pila que contiene una compilación, una flota que hace referencia a la compilación y un alias que hace referencia a la flota. Si actualizas la plantilla para reemplazar una compilación, AWS CloudFormation reemplaza las flotas conectadas a la compilación. AWS CloudFormation a continuación, actualiza los alias existentes para que apunten a las nuevas flotas. Para obtener más información, consulte Trabajo con pilas en la Guía del usuario de AWS CloudFormation .

    • Usa conjuntos de AWS CloudFormation pilas si vas a implementar pilas idénticas en varias regiones o cuentas. AWS Para obtener más información, consulte Trabajo con conjuntos de pilas en la Guía del usuario de AWS CloudFormation .

  • Si utiliza instancias de spot, incluya una flota bajo demanda como respaldo. Es recomendable que configure las plantillas con dos flotas en cada región, una con instancias de spot y otra con instancias bajo demanda.

  • Agrupe los recursos específicos de la ubicación y los recursos globales en pilas distintas cuando administre recursos en varias ubicaciones.

  • Coloque sus recursos globales cerca de los servicios que los utilizan. Los recursos como las colas y las configuraciones de emparejamiento suelen recibir un gran volumen de solicitudes de orígenes específicos. Al colocar sus recursos cerca del origen de esas solicitudes, minimiza el tiempo de viaje de la solicitud y puede mejorar el rendimiento general.

  • Coloque su configuración de emparejamiento en la misma región que la cola de sesiones del juego que utiliza.

  • Cree un alias distinto para cada flota de la pila.

Uso de pilas AWS CloudFormation

Recomendamos utilizar las siguientes estructuras al configurar AWS CloudFormation pilas para los GameLift recursos de Amazon. La estructura óptima de la pila varía en función de si va a implementar el juego en una sola región o en varias regiones.

Pilas para una sola ubicación

Para gestionar GameLift los recursos de Amazon en una única ubicación, recomendamos una estructura de dos pilas:

  • Pila de soporte: esta pila contiene los recursos de los que dependen tus GameLift recursos de Amazon. Como mínimo, esta pila debe incluir el bucket de S3 donde almacena el servidor de juegos personalizado o los archivos de script de Realtime. La pila también debe incluir una IAM función que dé GameLift permiso a Amazon para recuperar los archivos del bucket de S3 al crear un recurso de GameLift compilación o script de Amazon. Esta pila también puede contener otros AWS recursos que se utilizan con el juego, como tablas de DynamoDB, clústeres de Amazon Redshift y funciones de Lambda.

  • Amazon GameLift stack: esta pila contiene todos tus GameLift recursos de Amazon, incluida la compilación o el script, un conjunto de flotas, alias y la cola de sesiones de juego. AWS CloudFormation crea un recurso de compilación o script con los archivos almacenados en la ubicación del depósito de S3 e implementa la compilación o el script en uno o más recursos de la flota. Cada flota debe tener su alias correspondiente. La cola de sesiones del juego hace referencia a algunos o todos los alias de la flota. Si lo utilizas FlexMatch para el emparejamiento, esta pila también contiene una configuración de emparejamiento y un conjunto de reglas.

El siguiente diagrama ilustra una estructura de dos pilas para implementar recursos en una sola región. AWS

Diagrama con 2 AWS CloudFormation pilas de GameLift recursos y AWS servicios de soporte de Amazon.

Pilas para varias regiones

Al implementar el juego en más de una región, tenga en cuenta cómo los recursos pueden interactuar entre regiones. Algunos recursos, como las GameLift flotas de Amazon, solo pueden hacer referencia a otros recursos de la misma región. Otros recursos, como una GameLift cola de Amazon, son independientes de la región. Para gestionar GameLift los recursos de Amazon en varias regiones, recomendamos la siguiente estructura.

  • Pilas de soporte regional: estas pilas contienen recursos de los que dependen tus GameLift recursos de Amazon. Esta pila debe incluir el bucket de S3 en el que almacena el servidor de juegos personalizado o los archivos de script de Realtime. También puede contener otros AWS recursos para el juego, como tablas de DynamoDB, clústeres de Amazon Redshift y funciones Lambda. Muchos de estos recursos son específicos de cada región, por lo que debe crearlos en cada una. Amazon GameLift también necesita un IAM rol que permita el acceso a estos recursos de soporte. Como un IAM rol es independiente de la región, solo necesitas un recurso de rol, ubicado en cualquier región y al que se haga referencia en todos los demás paquetes de soporte.

  • Pilas regionales de GameLift Amazon: esta pila contiene GameLift los recursos de Amazon que deben existir en cada región en la que se despliegue tu juego, incluida la compilación o el guion, un conjunto de flotas y los alias. AWS CloudFormation crea un recurso de compilación o script con archivos en una ubicación de bucket de S3 e implementa la compilación o el script en uno o más recursos de la flota. Cada flota debe tener su alias correspondiente. La cola de sesiones del juego hace referencia a algunos o todos los alias de la flota. Puede mantener una plantilla para describir este tipo de pila y utilizarla para crear conjuntos de recursos idénticos en cada región.

  • GameLift Pila global de Amazon: esta pila contiene la cola de sesiones de juego y los recursos de emparejamiento. Estos recursos se pueden colocar en cualquier región, aunque se suelen colocar en la misma región. La cola puede hacer referencia a flotas o alias que se encuentran en cualquier región. Para colocar colas adicionales en diferentes regiones, cree pilas globales adicionales.

Los siguientes diagramas ilustran una estructura de múltiples pilas para desplegar recursos en varias regiones. AWS El primer diagrama muestra una estructura para una sola cola de sesiones del juego. El segundo diagrama muestra una estructura con varias colas.

Diagrama con pilas AWS CloudFormation de recursos que contienen recursos globales y específicos de la región.
El diagrama muestra cómo las AWS CloudFormation pilas regionales pueden compartir recursos globales, como las colas.

Actualización de las compilaciones

Las GameLift versiones de Amazon son inmutables, al igual que la relación entre una construcción y una flota. Por consiguiente, cuando actualice sus recursos de alojamiento para usar un nuevo conjunto de archivos de compilación del juego, proceda de la siguiente forma:

  • Cree una nueva compilación usando el nuevo conjunto de archivos (reemplazo).

  • Cree un nuevo conjunto de flotas para implementar la nueva compilación del juego (reemplazo).

  • Redirija los alias para que apunten a las nuevas flotas (actualización sin interrupción).

Para obtener más información, consulte Comportamientos de actualización de los recursos de la pila en la Guía del usuario de AWS CloudFormation .

Implementación de actualizaciones de compilación automáticamente

Al actualizar una pila que contiene recursos de compilación, flota y alias relacionados, el AWS CloudFormation comportamiento predeterminado es realizar estos pasos de forma automática y secuencial. Esta actualización se activa al cargar primero los nuevos archivos de compilación en una nueva ubicación de S3. A continuación, modificas la plantilla de AWS CloudFormation compilación para que apunte a la nueva ubicación de S3. Cuando actualiza la pila con la nueva ubicación S3, se desencadena la siguiente secuencia de AWS CloudFormation :

  1. Recupera los archivos nuevos de S3, los valida y crea una nueva versión de Amazon GameLift .

  2. Se actualiza la referencia de compilación en la plantilla de flota, lo que desencadena la creación de una nueva flota.

  3. Una vez activadas las nuevas flotas, se actualiza la referencia de flota en el alias, lo que hace que el alias se actualice para apuntar a las nuevas flotas.

  4. Se elimina la flota antigua.

  5. Se elimina la compilación antigua.

Si la cola de sesiones del juego utiliza alias de flota, el tráfico de jugadores se cambia automáticamente a las nuevas flotas en cuanto se actualizan los alias. Las flotas antiguas se van quedando poco a poco sin jugadores a medida que terminan las sesiones del juego. El escalado automático controla la tarea de añadir y eliminar instancias de cada conjunto de flotas a medida que fluctúa el tráfico de jugadores. También puede especificar un recuento inicial de las instancias deseadas para que el cambio se produzca rápidamente y habilitar el escalado automático más adelante.

También puede AWS CloudFormation conservar los recursos en lugar de eliminarlos. Para obtener más información, consulte RetainResourcesla AWS CloudFormation APIReferencia.

Implementación de actualizaciones de compilación manualmente

Si desea tener más control sobre cuándo se activan las nuevas flotas para los jugadores, dispone de algunas opciones. Puedes elegir gestionar los alias manualmente mediante la GameLift consola de Amazon o laCLI. Otra opción es añadir un segundo conjunto de definiciones de compilación y flota en la plantilla, en lugar de actualizar la plantilla de compilación para reemplazar la compilación y las flotas. Al actualizar la plantilla, AWS CloudFormation crea un segundo recurso de compilación y las flotas correspondientes. Dado que los recursos existentes no se reemplazan, estos no se eliminan y los alias siguen apuntando a las flotas originales.

La principal ventaja de este enfoque es que le ofrece flexibilidad. Puede crear recursos distintos para la nueva versión de su compilación, probar los nuevos recursos y controlar cuándo se activan las nuevas flotas para los jugadores. Un posible inconveniente es que requiere el doble de recursos en cada región durante un breve período de tiempo.

En el siguiente diagrama se ilustra este proceso.

El diagrama muestra cómo puedes usar las AWS CloudFormation pilas para actualizar las compilaciones de los servidores de juegos.

Cómo funcionan las restauraciones

Al ejecutar una actualización de recursos, si algún paso no se completa correctamente, AWS CloudFormation inicia automáticamente una restauración. Este proceso invierte cada paso en orden, eliminando los recursos recién creados.

Si necesita activar manualmente una restauración, cambie la clave de ubicación de S3 de la plantilla de compilación a la ubicación original y actualice la pila. Se crea una nueva estructura y flota de Amazon GameLift , y el alias cambia a la nueva flota una vez que la flota está activa. Si administra alias por separado, debe cambiarlos para que apunten a las nuevas flotas.

Para obtener más información sobre cómo controlar una restauración que da un error o se bloquea, consulte Continuación de la restauración de una actualización en la Guía del usuario de AWS CloudFormation .