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

Puede conectarse a cualquier instancia de sus flotas EC2 activas GameLift gestionadas por Amazon. Entre los motivos habituales para acceder 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.

Cuando te conectes a una instancia, ten en cuenta estos posibles problemas:

  • Puede conectarse a instancias de flotas activas. Es posible que se pueda acceder a las flotas inactivas, las que se estén activando o se encuentren en un estado de error, durante un breve período de tiempo. Si necesita ayuda en relación con los problemas de activación de la flota, consulte Solución de problemas con la flota de Amazon GameLift.

  • 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 aloja la sesión de juego. Es posible que 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.

Las siguientes instrucciones describen 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 referencia de la API GameLift de Amazon Service.

Recopila datos de la instancia

Recopile la siguiente información:

  • El ID de la instancia a la que quieres conectarte. Puede usar el ID de instancia o el ARN.

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

Para recuperar los datos de la instancia

En los siguientes pasos se supone que tiene un ID de flota de EC2 gestionado para la instancia a la que desea conectarse.

  1. Obtenga el nombre del equipo.

    Llame a list-compute para la flota de EC2 gestionada para obtener una lista de todos los ordenadores activos de la flota. Para una flota de una sola ubicación, especifique el ID o el ARN de la flota. Para una flota con varias ubicaciones, especifique el ID o ARN de la flota y una ubicación. En el caso de una flota de EC2 gestionada, los cálculos son instancias de EC2 y la propiedad ComputeName devuelta es el ID de la instancia. Por ejemplo:

    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", "Type": "c4.large" } ] }
  2. Busque la versión del SDK del servidor.

    La versión del SDK del servidor es un atributo de un recurso de compilación.

    1. Llame describe-fleet-attributescon un identificador de flota para obtener el identificador de construcción y el ARN de la flota.

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

      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_2", "ServerSdkVersion": "5.1.1", . . . }

Conectarse a una instancia (SDK de servidor 5)

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

  1. Solicite credenciales de acceso para la instancia. Cuando tengas un nombre informático y un ID de flota para la instancia a la que quieres conectarte, llama. get-compute-access Si se ejecuta correctamente, 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. Exporte las credenciales de acceso. Si lo desea, puede exportar las credenciales a variables de entorno y utilizarlas para configurar la AWS CLI para el usuario predeterminado. Para obtener más información, consulte Variables de entorno para configurar la 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 sesión de SSM con la instancia a la que desee conectarse. Incluye la AWS región o la ubicación de la instancia. Para obtener más información, consulte Iniciar una sesión (AWSCLI) en la Guía del usuario de Amazon EC2 Systems Manager. Utilice las credenciales que adquirió en el paso 1. Por ejemplo:

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

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

Si la instancia a la que quieres conectarte ejecuta una compilación de juego con la versión 4 o anterior del SDK de 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 cliente SSH.

  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. Siga las siguientes instrucciones para recuperar las credenciales para RDP o SSH.

    • Para instancias Windows: para conectarse a una instancia Windows, RDP requiere 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 Linux: para conectarse a una instancia Linux, SSH requiere un nombre de usuario y una clave privada. Amazon GameLift emite claves privadas de RSA y las devuelve como una cadena única, con el carácter de nueva línea (\n) que indica los saltos de línea. Para que la clave privada sea utilizable, siga estos pasos: (1) convierta la cadena en un .pem archivo y (2) establezca 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 la AWS CLI, puede generar automáticamente un .pem archivo al incluir los parámetros --query y --output en su 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-settings para añadir una configuración de puerto para la conexión remota (como 22 para SSH o 3389 para RDP). Para el valor del rango de IP, especifique las direcciones IP de los dispositivos que desea utilizar para conectarse (convertidos al formato CIDR). 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. Utilice el escritorio remoto para Windows o SSH para instancias Linux. Conéctese a la instancia a través de la dirección IP, la configuración del puerto y las credenciales de acceso.

    Ejemplo de SSH:

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

Vea los 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 operación del AWS SDK UpdateRuntimeConfigurationo la AWS CLI update-runtime-configuration).

  • Datos de la flota. Un archivo JSON 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 archivo JSON se encuentra en la siguiente ubicación:

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

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

  • Certificados TLS. Si la instancia pertenece a una flota que tiene habilitada la generación de certificados TLS, busca 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/