Creación de una flota de EC2 administrada por Amazon GameLift Servers - Amazon GameLift Servers

Creación de una flota de EC2 administrada por Amazon GameLift Servers

En este tema se explica cómo crear una flota de EC2 administrada por Amazon GameLift Servers. Las flotas administradas utilizan instancias de recursos de computación de Amazon Elastic Compute Cloud (Amazon EC2) optimizadas para el alojamiento de juegos multijugador. Puede crear flotas administradas que implementen recursos de computación de forma global en Regiones de AWS y en las zonas locales compatibles con Amazon GameLift Servers.

Al crear un nuevo recurso de flota de EC2 administrada, se inicia inmediatamente la primera fase de creación de la flota administrada. La creación de flotas administradas pasa por varias fases a medida que Amazon GameLift Servers implementa una instancia de EC2, instala un entorno de tiempo de ejecución y la compilación del servidor de juegos en la instancia, e inicia el lanzamiento de los servidores de juegos. Según el entorno de tiempo de ejecución que requiera la compilación del servidor de juegos, Amazon GameLift Servers implementa la versión más reciente de la imagen de máquina de Amazon (AMI) en el momento de crear la flota (y todas las instancias futuras de la flota utilizarán la misma versión). Puede supervisar el estado de la flota en la consola o mediante la AWS Command Line Interface (AWS CLI). Cuando la flota está lista para alojar sesiones de juego, el estado cambia a ACTIVE. Para obtener más información sobre la creación de flotas administradas, consulte estos temas:

nota

Como práctica recomendada, es aconsejable reemplazar las flotas cada 30 días para mantener un entorno de tiempo de ejecución seguro y actualizado para los servidores de juegos alojados. Para ello, es necesario crear una nueva flota y migrar a ella el tráfico de jugadores. Para obtener más orientación, consulte Prácticas recomendadas de seguridad para Amazon GameLift Servers.

Creación de una flota de EC2 administrada

Utilice la consola de Amazon GameLift Servers o la AWS Command Line Interface (AWS CLI) para crear una flota de EC2 administrada.

Console

En la consola de Amazon GameLift Servers, use el panel de navegación para abrir la página EC2 administrado, Flotas. Seleccione Crear flota de EC2 administrada para iniciar el flujo de trabajo de creación de la flota.

Paso 1. Definir los detalles de la flota de EC2 administrada
Para una configuración de flota mínima:
  • Proporcione un nombre de flota.

  • Elija Tipo binario: compilación. Elija una compilación de la lista de compilaciones de servidor que haya cargado previamente en Amazon GameLift Servers.

  • Omita las secciones Detalles adicionales y Etiquetas para usar los ajustes predeterminados.

  1. Rellene la sección Detalles de la flota:

    1. Escriba un Nombre para la flota. Los nombres de flota son meramente descriptivos, y son útiles para ordenar o filtrar una lista de flotas. No es necesario que sean únicos.

    2. Proporcione una descripción breve de la flota para incluir cualquier información personalizada que desee registrar sobre la flota.

    3. Seleccione Tipo binario, Compilación y use la lista desplegable para elegir una compilación del servidor de juegos que haya cargado previamente en Amazon GameLift Servers.

  2. Defina los Detalles adicionales según sea necesario.

    1. Si el ejecutable del servidor de juegos necesita acceder a otros recursos de AWS en su cuenta, especifique un rol de instancia de IAM con los permisos necesarios. Para obtener más información, lo que incluye la manera de autorizar otras aplicaciones en el servidor (como el agente de CloudWatch), consulte Conexión de un servidor de juegos alojado en Amazon GameLift Servers a otros recursos de AWS. Esta configuración no se puede cambiar después de crear la flota.

      Debe crear el rol antes de crear una flota que lo utilice. Además, para crear una flota con un rol de instancia, el usuario de AWS debe tener el permiso PassRole de IAM (consulte Ejemplo de permisos de IAM para Amazon GameLift Servers).

    2. Active la opción Generar un certificado TLS para configurar la autenticación y el cifrado del juego. Los clientes del juego utilizan este certificado para autenticar un servidor de juego al conectarse y cifrar todas las comunicaciones entre el cliente y el servidor. Para cada instancia de una flota habilitada con TLS, Amazon GameLift Servers también crea una nueva entrada de DNS con el certificado. Esta configuración no se puede cambiar después de crear la flota.

    3. Amazon GameLift Servers emite datos de métricas para cada flota. Si desea combinar los datos de las métricas de varias flotas, especifique un nombre en Grupo de métricas. Utilice el mismo nombre de grupo de métricas para todas las flotas cuyas métricas desea combinar. Utilice CloudWatch para ver los datos agregados del grupo de métricas.

  3. Añada Etiquetas al recurso de flota. Cada etiqueta está formada por una clave y un valor opcional, ambos definidos por el usuario. Asigne etiquetas a los recursos de AWS que desee categorizar; por ejemplo, por finalidad, propietario o entorno. Para cada etiqueta que desee añadir, elija Añadir etiqueta nueva.

  4. Seleccione Siguiente para continuar con el flujo de trabajo.

Paso 2: definir los detalles de la instancia

En este paso, especifique el tipo de recursos de hardware que va a utilizar para los servidores de juegos y dónde quiere implementarlos. Si elige varias ubicaciones, podrá implementar el servidor de juegos en una ubicación geográfica más amplia, de modo que esté más cerca de los jugadores y minimice la latencia. Todas las instancias de EC2 de una flota deben ser del mismo tipo. No todos los tipos de instancias están disponibles en todas las ubicaciones.

Para una configuración de flota mínima:
  • Empiece por implementar solo en la ubicación de origen. No es necesario añadir ubicaciones remotas para las fases iniciales de desarrollo y prueba.

  • Defina el tipo de flota como “Bajo demanda”. Las flotas de spot requieren un trabajo de configuración adicional.

  • Establezca el tipo de instancia en “c5.large”. Este tipo de instancia de uso común está disponible en todas las Regiones de AWS. Puede optimizar el uso del hardware más tarde.

  1. En Implementación de instancias, especifique el tipo y las ubicaciones de la flota.

    1. Seleccione una o más Ubicaciones adicionales en las que desee implementar las instancias de flota. Estas ubicaciones remotas se añaden a la ubicación de origen de la flota (que está preseleccionada): la Región de AWS donde se va a crear la flota. Puede seleccionar ubicaciones remotas de todas las Regiones de AWS y zonas locales que admite Amazon GameLift Servers.

      Para obtener más información sobre las ubicaciones compatibles, lo que incluye cómo usar una Región de AWS que no esté habilitada de forma predeterminada, consulte Ubicaciones de servicio de Amazon GameLift Servers para informarse sobre el alojamiento administrado. Consulte también las cuotas de Amazon GameLift Servers en las ubicaciones por flota.

    2. Seleccione si va a usar instancias Bajo demanda o de Spot para esta flota. Para obtener más información sobre los tipos de flotas, consulte Instancias bajo demanda frente a instancias de spot.

  2. Elija una Configuración de instancias de Amazon EC2 que se adapte a sus necesidades y que esté disponible en todas las ubicaciones seleccionadas. Esta lista se filtra en función de su ubicación actual y de las selecciones de tipo de flota. Puede filtrarla aún más por otros factores, como el tipo de instancia, la familia y la arquitectura. No se puede cambiar el tipo de instancia después de crear la flota.

    Algunas ubicaciones tienen opciones limitadas de tipos de instancia. Si el tipo de instancia que prefiere no está disponible en todas las ubicaciones, elija el valor de disponibilidad de la ubicación para ver todos los detalles. Para dar cabida a todas las ubicaciones, es posible que necesite crear flotas independientes con distintos tipos de instancias.

    Para obtener más información sobre cómo elegir un tipo de instancia, consulte Tipos de instancias. Para obtener más información sobre las arquitecturas ARM de Amazon EC2, consulte Procesadores AWS Graviton y Tipos de instancias de Amazon EC2. Para obtener una lista completa de los tipos de instancia compatibles con Amazon GameLift Servers, consulte la referencia de la API para EC2InstanceType (CreateFleet()).

    nota

    Las instancias de Graviton ARM requieren una compilación de servidor para una AMI de Linux. Se requiere el SDK de servidor 5.1.1 o posterior para C++ y C#. Se requiere el SDK de servidor 5.1.1 o posterior para continuar. Estas instancias no ofrecen soporte inmediato para la instalación de Mono en Amazon Linux 2023 (AL2023) o Amazon Linux 2 (AL2).

  3. Seleccione Siguiente para continuar con el flujo de trabajo.

Paso 4: configurar el tiempo de ejecución

En este paso, describe cómo quiere que cada instancia de la flota ejecute el software de su servidor de juegos. Defina una línea de proceso de servidor independiente para cada ejecutable que se ejecute en una instancia y decida cuántos procesos de servidor se ejecutarán simultáneamente. Abra los puertos en cada instancia para que los jugadores puedan conectarse directamente a los servidores del juego. Puede actualizar estos ajustes de flota más tarde.

Para una configuración de flota mínima:
  • Defina un elemento de línea de proceso de servidor único para el archivo ejecutable del servidor de juegos. Si el servidor de juegos requiere que se ejecuten otros procesos, cree también una definición para cada uno de ellos.

  • Use el número predeterminado de procesos simultáneos (1) para cada elemento de línea.

  • Omita la configuración de activación de la sesión de juego.

  • Especifique un número de puerto único.

  • Omita la configuración de recursos de la sesión de juego.

  1. Cree una configuración del tiempo de ejecución para dar instrucciones a Amazon GameLift Servers sobre cómo ejecutar procesos del servidor en cada una de las instancias de la flota. Puede cambiar la configuración de tiempo de ejecución de una flota en cualquier momento tras la implementación.

    1. Introduzca la Ruta de lanzamiento de un archivo ejecutable en su compilación. En las instancias de Windows, los ejecutables de servidores de juegos se compilan en la ruta C:\game. En las instancias de Linux, los servidores de juegos están diseñados para /local/game. Ejemplos: C:\game\MyGame\server.exe o /local/game/MyGame/server.exe.

    2. Introduzca Parámetros de lanzamiento opcionales para pasarlos al ejecutable del juego. Ejemplo: : +sv_port 33435 +start_lobby.

    3. Especifique el número de Procesos simultáneos que se ejecutarán en cada instancia. En el caso de un ejecutable de servidor de juegos, cada proceso puede alojar una sesión de juego, por lo que los procesos simultáneos determinan el número de sesiones de juego que la instancia puede alojar simultáneamente.

      Revise las cuotas de Amazon GameLift Servers en los procesos de servidor por instancia. Estas cuotas se aplican al total de procesos simultáneos de todas las configuraciones. Si configura la flota de manera que se superen, esta no podrá activarse.

  2. Use los valores predeterminados de Activación de la sesión de juego o personalícelos para su juego. Si la configuración del tiempo de ejecución requiere varios procesos de servidor de juego simultáneos por instancia, estos ajustes determinan la rapidez con la que se pueden iniciar nuevas sesiones de juego.

    1. Establezca el Número máximo de activaciones de sesiones de juego simultáneas para limitar el número de servidores de juego en una instancia que estén preparando una nueva sesión de juego. Esta configuración resulta útil cuando el inicio de varias sesiones de juego nuevas requiere muchos recursos y puede afectar al rendimiento de otras sesiones de juego en curso.

    2. Establezca el Tiempo de espera de la nueva activación de modo que refleje el tiempo máximo que debe tardar una nueva sesión de juego en completar la activación y en informar a los jugadores de que todo está listo. Amazon GameLift Servers finaliza la activación de una sesión de juego cuando se excede este valor.

  3. Abra la Configuración de puertos de EC2 para permitir que el tráfico entrante acceda a los procesos del servidor de la flota. Estos ajustes no son necesarios para crear una flota, pero sí es necesario configurarlos para que los jugadores puedan conectarse a las sesiones de juego de la flota.

    Para cada configuración de puerto, elija el Tipo de protocolo de transferencia de datos que se utilizará para la comunicación entre el cliente del juego y el servidor. Proporcione un Rango de puertos (en formato nnnnn[-nnnnn]) y un Rango de direcciones IP en notación CIDR (como 0.0.0.0/0, que permite el acceso a cualquier persona).

    Si necesita establecer varios rangos no consecutivos, cree varios ajustes de puerto.

  4. Especifique la Configuración de los recursos de la sesión de juego (opcional). Puede actualizar esta configuración en cualquier momento después de la implementación.

    1. Active o desactive la Política de protección para el escalado de juegos en todas las instancias de la flota. Durante un evento de reducción vertical, Amazon GameLift Servers no finalizará las instancias de flota protegidas si alojan sesiones de juego activas.

    2. Establezca un Límite de creación de recursos máximo si quiere limitar el número de sesiones de juego que puede crear un jugador durante un período de tiempo específico.

  5. Seleccione Siguiente para continuar con el flujo de trabajo.

Paso 5: revisar y crear

Antes de crear la flota, revise la configuración. Aunque algunos ajustes se pueden actualizar más adelante (consulte Actualización de la configuración de una flota de Amazon GameLift Servers), no se permiten cambios en los siguientes ajustes tras crear la flota:

  • Tipo de procesamiento: no se puede convertir una flota de EC2 administrada a una flota de Anywhere.

  • Binario de servidor de juegos: para implementar una actualización en la compilación del servidor de juegos, debe crear una flota nueva.

  • Opciones adicionales, como el rol de instancia y la generación de certificados TLS.

  • Detalles de la instancia, como el tipo de flota (Spot o bajo demanda) y el tipo de instancia de EC2.

Cuando esté listo para implementar la nueva flota, elija Crear. Amazon GameLift Servers comienza inmediatamente el proceso de activación de la flota, para lo cual asigna un ID único y pone la flota en estado NEW. Haga un seguimiento del progreso de la flota desde la página Flotas. Consulte la página de detalles de la flota y vaya a la pestaña Eventos.

Puede actualizar la capacidad de alojamiento de la flota después de que esta haya alcanzado el estado ACTIVO. Amazon GameLift Servers implementa inicialmente una flota con una sola instancia en cada ubicación de la flota, y usted ajusta la capacidad añadiendo instancias a cada ubicación. Para obtener más información, consulte Escalado de la capacidad de alojamiento de juegos con Amazon GameLift Servers.

AWS CLI

Utilice el comando create-fleet para crear una flota con el tipo de recurso de computación EC2. Amazon GameLift Servers crea el recurso de flota en su Región de AWS predeterminada actual (también puede añadir una etiqueta --region para especificar una Región de AWS distinta).

Creación de una flota administrada de nivel mínimo

El siguiente ejemplo de solicitud crea una nueva flota con los ajustes mínimos necesarios para implementar una flota con servidores de juegos en funcionamiento a los que los clientes de juegos puedan conectarse. La nueva flota tiene las siguientes características:

  • Especifica una compilación de servidor de juegos que se ha cargado en Amazon GameLift Servers y se encuentra en estado READY.

  • Utiliza instancias bajo demanda c5.large con el sistema operativo necesario para la compilación del juego seleccionada.

  • Establece la Región de AWS de origen de la flota en us-west-2 e implementa instancias únicamente en esa región.

  • Según la configuración del tiempo de ejecución, cada recurso de computación de la flota ejecuta un proceso de servidor de juegos, lo que significa que cada recurso solo puede alojar una sesión de juego a la vez. El tiempo de espera de activación de la sesión de juego está establecido en el valor predeterminado de 300 segundos y no hay un límite en el número de activaciones simultáneas.

  • Los jugadores pueden conectarse a los servidores del juego mediante una configuración de puerto único de 33435.

  • Todas las demás características están desactivadas o utilizan la configuración predeterminada.

aws gamelift create-fleet \ --name MinimalFleet123 \ --description "A basic test fleet" \ --region us-west-2 \ --ec2-instance-type c5.large \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --runtime-configuration "ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, ConcurrentExecutions=10}]" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33435,IpRange=0.0.0.0/0,Protocol=UDP"

Creación de una flota administrada completamente configurada

La siguiente solicitud de ejemplo crea una flota de producción con la configuración de todas las características opcionales. La nueva flota tiene las siguientes características:

  • Especifica una compilación de servidor de juegos que se ha cargado en Amazon GameLift Servers y se encuentra en estado READY.

  • Utiliza instancias bajo demanda c5.large con el sistema operativo necesario para la compilación del juego seleccionada.

  • Establece la Región de AWS de origen de la flota en us-west-2 e implementa instancias en la región de origen y en una ubicación remota sa-east-1.

  • Según la configuración del tiempo de ejecución:

    • Cada recurso de computación de la flota ejecuta diez procesos de servidor de juegos con los mismos parámetros de inicio, lo que significa que cada recurso puede alojar hasta diez sesiones de juego simultáneamente.

    • En cada recurso de computación, solo se pueden activar dos sesiones de juego al mismo tiempo. Las sesiones de juego en activación deben estar listas para alojar a jugadores en un plazo de 300 segundos (5 minutos); de lo contrario, finalizarán.

  • Los jugadores pueden conectarse a los servidores del juego mediante un puerto del rango 33435 to 33535.

  • Genera un certificado TLS para la comunicación cifrada entre el cliente y el servidor del juego.

  • Todas las sesiones de juego en la flota tienen la protección de sesión de juego activada.

  • Los jugadores individuales pueden crear hasta tres nuevas sesiones de juego en un período de 15 minutos.

  • Las métricas de esta flota se incluyen en el grupo de métricas AMERfleets, que, para este ejemplo, agrega las métricas de un grupo de flotas en América del Norte, América Central y del América del Sur.

aws gamelift create-fleet \ --name ProdFleet123 \ --description "A fully configured prod fleet" \ --ec2-instance-type c5.large \ --region us-west-2 \ --locations "Location=sa-east-1" \ --fleet-type ON_DEMAND \ --build-id build-1111aaaa-22bb-33cc-44dd-5555eeee66ff \ --certificate-configuration "CertificateType=GENERATED" \ --runtime-configuration "GameSessionActivationTimeoutSeconds=300, MaxConcurrentGameSessionActivations=2, ServerProcesses=[{LaunchPath=C:\game\Bin64.dedicated\MultiplayerSampleProjectLauncher_Server.exe, Parameters=+sv_port 33435 +start_lobby, ConcurrentExecutions=10}]" \ --new-game-session-protection-policy "FullProtection" \ --resource-creation-limit-policy "NewGameSessionsPerCreator=3, PolicyPeriodInMinutes=15" \ --ec2-inbound-permissions "FromPort=33435,ToPort=33535,IpRange=0.0.0.0/0,Protocol=UDP" \ --metric-groups "AMERfleets"

Si la solicitud de creación de la flota se realiza correctamente, Amazon GameLift Servers devuelve un conjunto de atributos de flota que incluye los valores de configuración solicitados y un ID de flota nuevo. Amazon GameLift Servers inicia inmediatamente el proceso de activación de la flota y establece el estado de la flota en Nuevo. Puede realizar un seguimiento del estado de la flota y ver más información sobre la flota con estos comandos de la CLI:

Puede cambiar la capacidad de la flota y otras opciones de configuración según sea necesario mediante estos comandos: