Creación de una definición de grupo de contenedores para una flota de contenedores de Amazon GameLift Servers - Amazon GameLift Servers

Creación de una definición de grupo de contenedores para una flota de contenedores de Amazon GameLift Servers

Una definición de grupo de contenedores describe cómo implementar las aplicaciones de servidor de juegos en contenedores en una flota de contenedores. Se trata de un esquema que indica a Amazon GameLift Servers qué imágenes de contenedor deben implementarse en la flota y cómo utilizarlas. Cuando se crea una flota de contenedores, se especifican las definiciones de grupo de contenedores que se van a implementar en la flota. Para obtener más información sobre los grupos de contenedores, consulte Componentes de una flota de contenedores.

Antes de comenzar

Consejos sobre qué hacer antes de empezar a crear una definición de grupo de contenedores:

  • Finalice las imágenes de contenedores y envíelas a un repositorio de Amazon Elastic Container Registry (Amazon ECR) en la misma Región de AWS en la que tiene previsto crear el grupo de contenedores. Amazon GameLift Servers captura una instantánea de cada imagen al crear la definición del grupo de contenedores y la utiliza al implementarla en una flota de contenedores. Consulte Creación de una imagen de contenedor para Amazon GameLift Servers.

  • Cree sus definiciones de contenedor como archivos JSON. Una definición de grupo de contenedores incluye una o más definiciones de contenedores. Puede usar los archivos JSON si crea una definición de grupo de contenedores utilizando la CLI de AWS para Amazon GameLift Servers.

  • Compruebe que su usuario de AWS tiene permisos de IAM para tener acceso al repositorio de Amazon ECR. Consulte Ejemplo de permisos de IAM para Amazon GameLift Servers.

Creación de una definición de grupo de contenedores de servidor de juegos

Un grupo de contenedores de servidores de juegos ejecuta su software de servidor de juegos. Un grupo de contenedores de servidores de juegos tiene un contenedor de servidores de juegos, que ejecuta el ejecutable del servidor de juegos. También puede tener uno o más contenedores de soporte para ejecutar software adicional que sirva de soporte al servidor de juegos. (A veces se los denomina contenedores laterales).

En este tema se describe cómo crear una definición de grupo de contenedores de servidor de juegos sencilla utilizando la consola de Amazon GameLift Servers o las herramientas de la CLI de AWS. Para obtener información más detallada sobre las características opcionales, consulte Personalización de una flota de contenedores de Amazon GameLift Servers.

nota

Puede cambiar la mayoría de las definiciones de grupos de contenedores y los ajustes de definición de contenedores después de crearlos. Si realiza cambios en la definición de un contenedor, Amazon GameLift Servers captura una nueva instantánea de las imágenes del contenedor actualizadas.

Para crear una definición sencilla de grupo de contenedores de servidor de juegos:

En las siguientes instrucciones, se describe cómo crear una definición de grupo de contenedores con los parámetros mínimos requeridos y mediante los valores por defecto de Amazon GameLift Servers.

Console

En la consola de Amazon GameLift Servers, seleccione la Región de AWS en la que desea crear el grupo de contenedores.

Abra la barra de navegación izquierda de la consola y elija Contenedores administrados: definiciones de grupos. En la página de definición de grupos de contenedores, elija Crear definición de grupo.

Paso 1: Definición de los detalles de la definición del grupo de contenedores
  1. Introduzca un nombre de definición de grupo de contenedores. El nombre debe ser único en la región y la Cuenta de AWS.

  2. Seleccione el tipo de grupo de contenedores Servidor de juegos.

  3. En Límite total de memoria, introduzca los recursos de memoria máximos que estarán disponibles para todos los contenedores del grupo de contenedores. Si necesita ayuda para calcular este valor, consulte Establecimiento de los límites de recursos.

  4. En Límite total de vCPU, introduzca la potencia de cálculo máxima que estará disponible para todos los contenedores del grupo de contenedores. Si necesita ayuda para calcular este valor, consulte Establecimiento de los límites de recursos.

Paso 2: Adición de definiciones de contenedor

Como mínimo, un grupo de contenedores de servidores de juegos tiene un contenedor de servidores de juegos. En la consola, la primera definición de contenedor que se crea es el contenedor del servidor de juegos. En este paso se describe cómo definir la configuración mínima requerida para una definición de contenedor de servidor de juegos.

  1. Introduzca un nombre para la definición del grupo de contenedores. Cada contenedor definido para el grupo debe tener un valor de nombre único.

  2. Enlace a una imagen de contenedor con la compilación del servidor de juegos. Introduzca la URI de imagen de Amazon ECR para una imagen de contenedor en un repositorio público o privado. Puede usar cualquiera de los siguientes formatos:

    • Solo URI de imagen: [Cuenta de AWS].dkr.ecr.[Región de AWS].amazonaws.com/[repository ID]

    • URI de imagen + resumen: [Cuenta de AWS].dkr.ecr.[Región de AWS].amazonaws.com/[repository ID]@[digest]

    • URI de imagen + etiqueta: [Cuenta de AWS].dkr.ecr.[Región de AWS].amazonaws.com/[repository ID]:[tag]

  3. Especifica la versión del SDK del servidor de Amazon GameLift Servers que utiliza la compilación del servidor del juego. Para una flota de contenedores, este valor debe ser 5.2.0 o superior.

  4. En Rango de puertos de contenedores interno, configure el protocolo y defina un rango de puertos. El tamaño del rango debe ser superior al número de procesos simultáneos del servidor de juegos que se ejecutarán en este contenedor. Si el contenedor del servidor de juegos ejecuta solo un proceso de servidor por contenedor, este rango de puertos solo necesita unos pocos puertos. Para obtener más información, consulta Configuración de conexiones de red.

  5. Añada más contenedores según sea necesario para ejecutar software de soporte adicional. Los contenedores adicionales se designan automáticamente como contenedores de soporte. Un grupo de contenedores de servidores de juegos solo puede tener un contenedor de servidores de juegos y hasta ocho contenedores de soporte. Proporcione los siguientes ajustes mínimos necesarios:

    • Nombre de la definición de contenedor

    • URI de la imagen de ECR.

    • Puertos de contenedores internos (inclúyalos solo si el contenedor tiene procesos que necesiten acceso a la red).

Paso 3: Configuración de las dependencias
Paso 3: Revisar y crear
  1. Revise todos los ajustes de la definición de grupo de contenedores. Utilice Editar para realizar cambios en cualquier sección, incluidas todas las definiciones de contenedores del grupo.

  2. Cuando haya terminado, elija Crear.

    Si la solicitud se realiza correctamente, la consola muestra la página de detalles del nuevo recurso de definición de grupo de contenedores. Inicialmente el estado es COPYING, cuando Amazon GameLift Servers comienza a tomar instantáneas de todas las imágenes de contenedor del grupo. Cuando se completa esta fase, el estado de la definición del grupo de contenedores cambia a READY. Una definición de grupo de contenedores debe tener el estado READY para poder crear una flota de contenedores con ella.

AWS CLI

Cuando utilice la CLI de AWS para crear una definición de grupo de contenedores, mantenga las configuraciones de definición de contenedores en un archivo JSON aparte. Puede hacer referencia al archivo en el comando de la CLI. Consulte Creación de un archivo JSON de definición de contenedor para ver esquemas de ejemplo.

Creación de una definición de grupo de contenedores

Para crear una nueva definición de grupo de contenedores, utilice el comando create-container-group-definition de la CLI. Para obtener más información sobre este comando, consulte create-container-group-definition en la Referencia de comandos de la CLI de AWS.

Este ejemplo ilustra una solicitud de definición de grupo de contenedores de servidor de juegos. Presupone que se ha creado un archivo JSON con las definiciones de contenedor de este grupo.

aws gamelift create-container-group-definition \ --name MyAdventureGameContainerGroup \ --operating-system AMAZON_LINUX_2023 \ --container-group-type GAME_SERVER \ --total-memory-limit-mebibytes 4096 \ --total-vcpu-limit 1 \ --game-server-container-definition file://MyAdventureGameContainers.json

Creación de un archivo JSON de definición de contenedor

Al crear una definición de grupo de contenedores, también define los contenedores del grupo. Una definición de contenedor especifica el repositorio de Amazon ECR en el que se almacena la imagen del contenedor y las configuraciones opcionales para los puertos de red, los límites de uso de CPU y memoria y otros ajustes. Recomendamos crear un único archivo JSON con las configuraciones de todos los contenedores de un grupo de contenedores. Mantener un archivo es útil para almacenar, compartir y realizar un seguimiento de las versiones de estas configuraciones críticas. Si usa la CLI de AWS para crear sus definiciones de grupos de contenedores, puede hacer referencia al archivo en el comando.

Para crear una definición de contenedor
  1. Cree y abra un nuevo archivo .JSON. Por ejemplo:

    [~/work/glc]$ vim SimpleServer.json
  2. Cree una definición de contenedor independiente para cada uno de los contenedores del grupo. Copie el siguiente contenido de ejemplo y modifíquelo según sea necesario para sus contenedores. Para obtener más información sobre la sintaxis de una definición de contenedor, consulte ContainerDefinitionInput en la Referencia de la API de Amazon GameLift Servers.

  3. Guarde el archivo localmente para poder consultarlo en un comando de la CLI de AWS.

En este ejemplo se describe el contenedor esencial para el grupo de contenedores de servidores de juegos. El contenedor de réplicas esencial incluye la aplicación de servidor de juegos, el agente de Amazon GameLift Servers, y puede incluir otro software auxiliar para el alojamiento del juego. La definición debe incluir un nombre, un URI de imagen y una configuración de puertos. Este ejemplo también establece algunos límites de recursos específicos del contenedor.

{ "ContainerName": "MyAdventureGameServer", "ImageUri": "111122223333.dkr.ecr.us-east-1.amazonaws.com/gl-containers:myadventuregame-server", "PortConfiguration": { "ContainerPortRanges": [ { "FromPort": 2000, "Protocol": "TCP", "ToPort": 2010 } ] }, "ServerSdkVersion": "5.2.0" }