Connessione remota alle istanze GameLift della flotta Amazon - Amazon GameLift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Connessione remota alle istanze GameLift della flotta Amazon

Puoi connetterti a qualsiasi istanza delle tue EC2 flotte GameLift gestite da Amazon attive. I motivi più comuni per accedere in remoto a un'istanza includono:

  • Risolvi i problemi relativi all'integrazione del server di gioco.

  • Perfeziona la configurazione di runtime e altre impostazioni specifiche del parco veicoli.

  • Ottieni informazioni sulle attività dei server di gioco in tempo reale, ad esempio il tracciamento dei log.

  • Esegui strumenti di benchmarking utilizzando il traffico effettivo dei giocatori.

  • Esamina problemi specifici relativi a una sessione di gioco o a un processo del server.

Quando ti connetti a un'istanza, considera questi potenziali problemi:

  • Puoi connetterti a qualsiasi istanza in un parco istanze attivo. In genere, non è possibile connettersi a flotte non attive, ad esempio flotte in fase di attivazione o in stato di errore. (Queste flotte potrebbero avere una disponibilità limitata per un breve periodo di tempo.) Per assistenza con i problemi di attivazione della flotta, consultaEsegui il debug dei problemi relativi alla GameLift flotta Amazon.

  • La connessione a un'istanza attiva non influisce sull'attività di hosting dell'istanza. L'istanza continua ad avviare e arrestare i processi del server in base alla configurazione di runtime. Attiva ed esegue sessioni di gioco. L'istanza potrebbe chiudersi in risposta a un evento di ridimensionamento o a un altro evento.

  • Qualsiasi modifica apportata ai file o alle impostazioni sull'istanza potrebbe influire sulle sessioni di gioco attive dell'istanza e sui giocatori connessi.

Le seguenti istruzioni descrivono come connettersi in remoto a un'istanza utilizzando l'interfaccia a riga di AWS comando (CLI). Puoi anche effettuare chiamate programmatiche utilizzando il AWS SDK, come documentato nel riferimento del GameLift servizio API Amazon.

Raccogli dati delle istanze

Per connetterti a un'istanza EC2 della flotta GameLift gestita da Amazon, hai bisogno delle seguenti informazioni:

  • L'ID dell'istanza a cui desideri connetterti. Puoi utilizzare l'ID dell'istanza oARN.

  • La SDK versione GameLift del server Amazon utilizzata sull'istanza. Il server SDK è integrato con la build del gioco in esecuzione sull'istanza.

Le seguenti istruzioni descrivono come completare queste attività utilizzando AWS CLI. Devi conoscere l'ID della flotta per l'istanza a cui desideri connetterti.

  1. Ottieni il nome del computer. Ottieni un elenco di tutti i computer attivi della flotta. Calcola l'elenco delle chiamate con un Fleet ID o. ARN Per una flotta con una sola sede, specifica solo l'identificatore della flotta. Per una flotta con più sedi, specifica l'identificatore della flotta e una posizione. Con le EC2 flotte gestite, list-compute restituisce un elenco di istanze del parco istanze e la proprietà ComputeName è l'ID dell'istanza. Trova il computer a cui desideri accedere.

    Richiesta

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

    Risposta

    { "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. Trova la SDK versione del server. Per queste informazioni devi cercare la build utilizzata nella flotta. SDKLa versione del server è una proprietà di compilazione.

    1. Chiama describe-fleet-attributescon un ID flotta o ARN per ottenere l'ID di build della flotta eARN.

    2. Chiama describe-build con l'ID di build o ARN per ottenere la versione del server della build. SDK

      Per esempio:

      Richiesta

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

    Risposta

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

    Richiesta

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

    Risposta

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

Connect a un'istanza (server SDK 5)

Se l'istanza a cui vuoi connetterti esegue una build di gioco con la SDK versione del server 5.x, connettiti all'istanza utilizzando Amazon EC2 Systems Manager (SSM). Puoi accedere alle istanze remote in esecuzione su Windows o Linux.

Prima di iniziare:

Completa i passaggi di SSM configurazione e installa il SSM plugin sul tuo computer locale. Per ulteriori informazioni, consulta Configurazione SSM e installazione del plug-in Session Manager AWS CLI nella Amazon EC2 Systems Manager User Guide.

  1. Richiedere le credenziali di accesso all'istanza. Chiama get-compute-accesscon l'ID della flotta e il nome di calcolo dell'istanza a cui desideri connetterti. Amazon GameLift restituisce un set di credenziali temporanee per accedere all'istanza. Per esempio:

    Richiesta

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

    Risposta

    { "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. Esporta le credenziali di accesso (opzionale). È possibile esportare le credenziali in variabili di ambiente e utilizzarle per configurarle AWS CLI per l'utente predefinito. Per maggiori dettagli, consulta Variabili di ambiente da configurare AWS CLI nella Guida per l' AWS Command Line Interface utente.

    export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
  3. Connect all'istanza fleet. Avvia una SSM sessione con l'istanza a cui desideri connetterti. Includi la AWS regione o la posizione dell'istanza. Per ulteriori informazioni, tra cui la configurazione SSM e il SSM plug-in, consulta Avvio di una sessione (AWS CLI) nella Amazon EC2 Systems Manager User Guide.

    La richiesta di avvio della sessione utilizzerà automaticamente le credenziali acquisite nella fase 1.

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

    Se viene visualizzato un errore di accesso negato, è possibile che una variabile di AWS_PROFILE ambiente sia impostata AWS su un profilo, il che causa l'utilizzo di credenziali errate AWS CLI per l'accesso remoto. Per risolvere, disattiva temporaneamente la variabile di AWS_PROFILE ambiente. In alternativa, è possibile creare un AWS profilo personalizzato per le credenziali di accesso remoto e aggiungere il parametro della riga di --profile comando alla richiestastart-session.

Connect a un'istanza (server SDK 4.x o precedente)

Se l'istanza a cui vuoi connetterti esegue una build di gioco con server SDK versione 4 o precedente, usa le seguenti istruzioni. Puoi connetterti a istanze che eseguono Windows o Linux. Connect a un'istanza di Windows utilizzando un client di protocollo desktop remoto (RDP). Connect a un'istanza Linux utilizzando un SSH client.

  1. Richiedere le credenziali di accesso all'istanza. Se disponi di un ID di istanza, usa il comando get-instance-accessper richiedere le credenziali di accesso. In caso di successo, Amazon GameLift restituisce il sistema operativo dell'istanza, l'indirizzo IP e un set di credenziali (nome utente e chiave segreta). Il formato delle credenziali dipende dal sistema operativo dell'istanza. Utilizza le seguenti istruzioni per recuperare le credenziali per uno o. RDP SSH

    • Per le istanze Windows: per connettersi a un'istanza di Windows, sono RDP necessari un nome utente e una password. La richiesta get-instance-access restituisce tali valori come stringhe semplici, pertanto è possibile utilizzare i valori restituiti così come sono. Credenziali di esempio:

      "Credentials": { "Secret": "aA1bBB2cCCd3EEE", "UserName": "gl-user-remote" }
    • Per le istanze Linux: per connettersi a un'istanza Linux, sono SSH necessari un nome utente e una chiave privata. Amazon GameLift emette chiavi RSA private e le restituisce come una singola stringa, con il carattere newline (\n) che indica le interruzioni di riga. Per rendere utilizzabile la chiave privata, procedi nel seguente modo: (1) converti la stringa in un .pem file e (2) imposta le autorizzazioni per il nuovo file. Credenziali di esempio restituite:

      "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" }

      Quando si utilizza AWS CLI, è possibile generare automaticamente un .pem file includendo i parametri --query e --output nella richiesta. get-instance-access

      Per impostare le autorizzazioni sul file .pem, eseguire il comando seguente:

      $ chmod 400 MyPrivateKey.pem
  2. Aprire una porta per la connessione remota. Puoi accedere alle istanze nelle GameLift flotte Amazon tramite qualsiasi porta autorizzata nella configurazione del parco veicoli. È possibile visualizzare le impostazioni di porta del parco istanze tramite il comando describe-fleet-port-settings.

    Come best practice, si consiglia di aprire le porte per l'accesso remoto solo quando necessario e di chiuderle al termine dell'operazione. Non puoi aggiornare le impostazioni delle porte dopo aver creato una flotta ma prima che sia attiva. Se rimani bloccato, ricrea la flotta con le impostazioni del porto aperte.

    Usa il comando update-fleet-port-settingsper aggiungere un'impostazione di porta per la connessione remota (ad esempio 22 per SSH o 3389 perRDP). Per il valore dell'intervallo IP, specifica gli indirizzi IP dei dispositivi che intendi utilizzare per la connessione (convertiti in CIDR formato). Esempio:

    $ 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"

    L'esempio seguente apre la porta 3389 su un parco sistemi 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. Aprire un client di connessione remota. Usa Remote Desktop per Windows o SSH per istanze Linux. Connettersi all'istanza utilizzando l'indirizzo IP, l'impostazione di porta e le credenziali di accesso.

    SSHesempio:

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

Visualizza file su istanze remote

Quando ti connetti in remoto a un'istanza, disponi dell'accesso utente e amministratore completo. Ciò vuol dire che puoi inoltre causare errori e guasti nell'hosting di gioco. Se l'istanza ospita giochi con giocatori attivi, corri il rischio di interrompere le sessioni di gioco e far cadere i giocatori, oppure di interrompere i processi di chiusura del gioco e causare errori nei dati e nei registri di gioco salvati.

Cerca queste risorse su un'istanza di hosting:

  • File della build di gioco. Questi file sono la build del gioco che hai caricato su Amazon GameLift. Includono uno o più file eseguibili, risorse e dipendenze dei server di gioco. I file di build del gioco si trovano in una directory principale chiamata: game

    • Su Windows: c:\game

    • In Linux: /local/game

  • File di log del gioco. Trova i file di registro generati dal tuo server di gioco nella directory game principale in qualsiasi percorso di directory che hai designato.

  • Risorse GameLift di hosting Amazon. La directory principale Whitewater contiene i file utilizzati dal GameLift servizio Amazon per gestire l'attività di hosting dei giochi. Non modificare questi file per nessun motivo.

  • Configurazione di runtime. Non accedete alla configurazione di runtime per le singole istanze. Per apportare modifiche a una proprietà di configurazione di runtime, aggiorna la configurazione di runtime della flotta (vedi l' AWS SDKoperazione UpdateRuntimeConfigurationo il AWS CLI update-runtime-configuration).

  • Dati sulla flotta. Un JSON file contiene informazioni sulla flotta a cui appartiene l'istanza, utilizzabili dai processi del server in esecuzione sull'istanza. Il JSON file si trova nella seguente posizione:

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

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

  • TLScertificati. Se l'istanza fa parte di un parco istanze in cui è abilitata la generazione di certificati, inclusi il certificato, la catena di certificati, la chiave privata e il certificato principale, nella seguente posizione: TLS

    • Su Windows: c:\\GameMetadata\Certificates

    • In Linux: /local/gamemetadata/certificates/