Conéctese remotamente a las instancias de GameLift la flota de Amazon - 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.

Conéctese remotamente a las instancias de GameLift la flota de Amazon

Puedes conectarte a cualquier instancia de tus EC2 flotas GameLift gestionadas por Amazon activas. Entre los motivos habituales para acceder de forma remota a una instancia se incluyen los siguientes:

  • Soluciona problemas relacionados con la integración del servidor de juegos.

  • Ajusta la configuración del tiempo de ejecución y otros ajustes específicos de la flota.

  • Obtén información sobre la actividad del servidor de juegos en tiempo real, como el seguimiento de los registros.

  • Ejecuta herramientas de evaluación comparativa utilizando el tráfico real de jugadores.

  • Investiga problemas específicos relacionados con una sesión de juego o un proceso del servidor.

Al conectarte a una instancia, ten en cuenta estos posibles problemas:

  • Puede conectarse a cualquier instancia de una flota activa. Por lo general, no puede conectarse a flotas inactivas, como las que están en proceso de activación o que presentan un estado de error. (Es posible que estas flotas tengan una disponibilidad limitada durante un breve período de tiempo). Si necesita ayuda en relación con los problemas de activación de la flota, consulte Depura problemas con la GameLift flota de Amazon.

  • La conexión a una instancia activa no afecta a la actividad de alojamiento de la instancia. La instancia sigue iniciando y deteniendo los procesos del servidor en función de la configuración del tiempo de ejecución. Activa y ejecuta sesiones de juego. Es posible que la instancia se cierre en respuesta a un evento de reducción de escala u otro evento.

  • Cualquier cambio que realices en los archivos o la configuración de la instancia podría afectar a las sesiones de juego activas de la instancia y a los jugadores conectados.

En las siguientes instrucciones se describe cómo conectarse remotamente a una instancia mediante la interfaz de línea de AWS comandos (CLI). También puedes realizar llamadas programáticas mediante el AWS SDK, tal y como se documenta en la APIreferencia del GameLift servicio de Amazon.

Recopila datos de la instancia

Para conectarte a una instancia de EC2 flota GameLift gestionada por Amazon, necesitas la siguiente información:

  • El ID de la instancia a la que quieres conectarte. Puedes usar el ID de instancia oARN.

  • La SDK versión GameLift del servidor de Amazon que se utiliza en la instancia. El servidor SDK está integrado con la versión del juego que se ejecuta en la instancia.

Las siguientes instrucciones describen cómo completar estas tareas con AWS CLI. Debe conocer el identificador de flota de la instancia a la que desea conectarse.

  1. Obtén el nombre del equipo. Obtenga una lista de todos los ordenadores activos de la flota. Calcule la lista de llamadas con un identificador de flota o. ARN Para una flota de una sola ubicación, especifique únicamente el identificador de la flota. Para una flota con varias ubicaciones, especifique el identificador de la flota y una ubicación. En el caso de EC2 las flotas gestionadas, list-compute devuelve una lista de instancias de flota y la propiedad ComputeName es el ID de la instancia. Busca la computación a la que quieres acceder.

    Solicitud

    aws gamelift list-compute \ --fleet-id "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa" \ --location ""sa-east-1"

    Respuesta

    { "ComputeList": [ { "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "ComputeName": "i-0abc12d3e45fa6b78", "IpAddress": "00.00.000.00", "DnsName": "b08444ki909kvqu6zpw3is24x5pyz4b6m05i3jbxvpk9craztu0lqrbbrbnbkks.uwp57060n1k6dnlnw49b78hg1rw4rcz7.us-west-2.amazongamelift.com", "ComputeStatus": "Active", "Location": "sa-east-1", "CreationTime": "2023-07-09T22:51:45.931000-07:00", "OperatingSystem": "AMAZON_LINUX_2023", "Type": "c4.large" } ] }
  2. Busque la SDK versión del servidor. Para obtener esta información, debe buscar la versión que está desplegada en la flota. SDKLa versión del servidor es una propiedad de compilación.

    1. Llame describe-fleet-attributescon un ID de flota o ARN para obtener el ID de construcción de la flota yARN.

    2. Llama a describe-build con el ID de compilación o ARN para obtener la versión del servidor de la compilación. SDK

      Por ejemplo:

      Solicitud

    aws gamelift describe-fleet-attributes / --fleet-ids "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"

    Respuesta

    { "FleetAttributes": [ { "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "ComputeType": "EC2", "BuildId": "build-3333cccc-44dd-55ee-66ff-00001111aa22", . . . } ] }

    Solicitud

    aws gamelift describe-build / --build-id "build-3333cccc-44dd-55ee-66ff-00001111aa22"

    Respuesta

    "Build": { "BuildId": "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff", "Name": "My_Game_Server_Build_One", "OperatingSystem": "AMAZON_LINUX_2023", "ServerSdkVersion": "5.1.1", . . . }

Conectarse a una instancia (servidor SDK 5)

Si la instancia a la que quieres conectarte ejecuta una compilación de juego con la SDK versión 5.x del servidor, conéctate a la instancia mediante Amazon EC2 Systems Manager (SSM). Puede acceder a las instancias remotas que se ejecuten en Windows o Linux.

Antes de empezar:

Complete los pasos SSM de configuración e instale el SSM complemento en su máquina local. Para obtener más información, consulte Configuración SSM e instalación del complemento Session Manager AWS CLI en la Guía del usuario de Amazon EC2 Systems Manager.

  1. Solicite credenciales de acceso para la instancia. Llama get-compute-accesscon el identificador de flota y el nombre informático de la instancia a la que quieres conectarte. Amazon GameLift devuelve un conjunto de credenciales temporales para acceder a la instancia. Por ejemplo:

    Solicitud

    aws gamelift get-compute-access \ --compute-name i-11111111a222b333c \ --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa --region us-west-2

    Respuesta

    { "ComputeName": " i-11111111a222b333c ", "Credentials": { "AccessKeyId": " ASIAIOSFODNN7EXAMPLE ", "SecretAccessKey": " wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY ", "SessionToken": " AQoDYXdzEJr...<remainder of session token>" }, "FleetArn": " arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa ", "FleetId": " fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa " }
  2. Exporta las credenciales de acceso (opcional). Puede exportar las credenciales a variables de entorno y utilizarlas para configurarlas AWS CLI para el usuario predeterminado. Para obtener más información, consulte las variables de entorno para configurarlas AWS CLI en la Guía del AWS Command Line Interface usuario.

    export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
  3. Conéctese a la instancia de flota. Inicie una SSM sesión con la instancia a la que desee conectarse. Incluye la AWS región o ubicación de la instancia. Para obtener más información, incluida la configuración SSM y el SSM complemento, consulte Cómo iniciar una sesión (AWS CLI) en la Guía del usuario de Amazon EC2 Systems Manager.

    La solicitud de inicio de sesión utilizará automáticamente las credenciales que adquirió en el paso 1.

    aws ssm start-session \ --target i-11111111a222b333c \ --region us-west-2 \
    nota

    Si recibe un error de acceso denegado, es posible que tenga una variable de AWS_PROFILE entorno configurada en un AWS perfil, lo que provoca AWS CLI que utilice credenciales incorrectas para el acceso remoto. Para resolverlo, desactive temporalmente la variable de AWS_PROFILE entorno. Como alternativa, puede crear un AWS perfil personalizado para sus credenciales de acceso remoto y añadir el parámetro de línea de --profile comandos a su start-session solicitud.

Conectarse a una instancia (servidor SDK 4.x o anterior)

Si la instancia a la que quieres conectarte ejecuta una compilación de juego con la SDK versión 4 o anterior del servidor, sigue las instrucciones siguientes. Puedes conectarte a instancias que ejecuten Windows o Linux. Conéctese a una instancia de Windows mediante un cliente de protocolo de escritorio remoto (RDP). Conéctate a una instancia de Linux mediante un SSH cliente.

  1. Solicite credenciales de acceso para la instancia. Cuando tengas un ID de instancia, usa el comando get-instance-accesspara solicitar las credenciales de acceso. Si se ejecuta correctamente, Amazon GameLift devuelve el sistema operativo de la instancia, la dirección IP y un conjunto de credenciales (nombre de usuario y clave secreta). El formato de las credenciales depende del sistema operativo de la instancia. Sigue las siguientes instrucciones para recuperar las credenciales de una RDP u otraSSH.

    • Para instancias de Windows: para conectarse a una instancia de Windows, RDP necesita un nombre de usuario y una contraseña. La solicitud get-instance-access devuelve estos valores en forma de cadenas simples, por lo que puede utilizar los valores devueltos tal cual. Credenciales de ejemplo:

      "Credentials": { "Secret": "aA1bBB2cCCd3EEE", "UserName": "gl-user-remote" }
    • Para instancias de Linux: para conectarse a una instancia de Linux, se SSH requiere un nombre de usuario y una clave privada. Amazon GameLift emite claves RSA privadas y las devuelve como una sola cadena, con el carácter de nueva línea (\n) que indica los saltos de línea. Para que la clave privada sea utilizable, sigue estos pasos: (1) convierte la cadena en un .pem archivo y (2) establece los permisos para el nuevo archivo. Credenciales de ejemplo devueltas:

      "Credentials": { "Secret": "-----BEGIN RSA PRIVATE KEY-----nEXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/\nvBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW\nZ/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F\nG50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW\noPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu\n/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1\nmb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2\nbahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9\n81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR\noQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1\nYkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x\np9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws\nayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU\nWA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC\ngYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH\noMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs\nArq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy\nWBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j\njjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa\nNWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS\nVRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=\n-----END RSA PRIVATE KEY-----", "UserName": "gl-user-remote" }

      Al usar el AWS CLI, puedes generar automáticamente un .pem archivo al incluir los parámetros --query y --output en tu get-instance-access solicitud.

      Para establecer permisos en el nuevo archivo .pem, ejecute el siguiente comando:

      $ chmod 400 MyPrivateKey.pem
  2. Abra un puerto para la conexión remota. Puedes acceder a las instancias de las GameLift flotas de Amazon a través de cualquier puerto autorizado en la configuración de la flota. Puede ver la configuración de los puertos de la flota mediante el comando describe-fleet-port-settings.

    Recomendamos abrir los puertos para el acceso remoto solo cuando se necesiten y cerrarlos cuando haya terminado. No puedes actualizar la configuración de los puertos después de crear una flota, sino antes de que esté activa. Si te quedas atascado, vuelve a crear la flota con la configuración del puerto abierta.

    Utilice el comando update-fleet-port-settingspara añadir una configuración de puerto para la conexión remota (por ejemplo, 22 para SSH o 3389 paraRDP). Para el valor del rango de IP, especifique las direcciones IP de los dispositivos que planea usar para conectarse (convertidas al CIDR formato). Ejemplo:

    $ AWS gamelift update-fleet-port-settings --fleet-id "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa" --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=54.186.139.221/32,Protocol=TCP"

    En el siguiente ejemplo se abre el puerto 3389 en una flota de Windows.

    $ AWS gamelift update-fleet-port-settings --fleet-id "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa" --inbound-permission-authorizations "FromPort=3389,ToPort=3389,IpRange=54.186.139.221/32,Protocol=TCP"
  3. Abra un cliente de conexión remoto. Usa Remote Desktop para instancias de Windows o SSH Linux. Conéctese a la instancia a través de la dirección IP, la configuración del puerto y las credenciales de acceso.

    SSHejemplo:

    ssh -i MyPrivateKey.pem gl-user-remote@192.0.2.0

Ver archivos en instancias remotas

Al conectarse a una instancia de forma remota, dispone de acceso administrativo y de usuario pleno. Esto significa que también tendrá la capacidad de provocar errores y fallos al alojar juegos. Si la instancia aloja juegos con jugadores activos, corres el riesgo de bloquear las sesiones de juego y perder jugadores, o de interrumpir los procesos de cierre del juego y provocar errores en los datos y registros guardados de las partidas.

Busca estos recursos en una instancia de alojamiento:

  • Archivos de compilación de juegos. Estos archivos son la versión del juego que subiste a Amazon GameLift. Incluyen uno o más ejecutables, activos y dependencias del servidor de juegos. Los archivos de compilación del juego se encuentran en un directorio raíz llamado: game

    • En Windows: c:\game

    • En Linux: /local/game

  • Archivos de log de juegos. Busca los archivos de registro que genera tu servidor de juegos en el directorio game raíz, en la ruta de directorio que hayas designado.

  • Recursos de GameLift alojamiento de Amazon. El directorio raíz Whitewater contiene los archivos que utiliza el GameLift servicio de Amazon para gestionar la actividad de alojamiento de juegos. No modifiques estos archivos por ningún motivo.

  • Configuración de tiempos de ejecución. No accedas a la configuración del tiempo de ejecución para instancias individuales. Para realizar cambios en una propiedad de configuración de tiempo de ejecución, actualice la configuración de tiempo de ejecución de la flota (consulte la AWS SDK operación UpdateRuntimeConfigurationo la AWS CLI update-runtime-configuration).

  • Datos de la flota. Un JSON archivo contiene información sobre la flota a la que pertenece la instancia, para que la utilicen los procesos del servidor que se ejecutan en la instancia. El JSON archivo se encuentra en la siguiente ubicación:

    • En Windows: C:\GameMetadata\gamelift-metadata.json

    • En Linux: /local/gamemetadata/gamelift-metadata.json

  • TLScertificados. Si la instancia pertenece a una flota que tiene habilitada la generación de TLS certificados, busque los archivos de certificados, incluidos el certificado, la cadena de certificados, la clave privada y el certificado raíz, en la siguiente ubicación:

    • En Windows: c:\\GameMetadata\Certificates

    • En Linux: /local/gamemetadata/certificates/