Remote-Verbindung zu Amazon- GameLift Flotten-Instances - Amazon GameLift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Remote-Verbindung zu Amazon- GameLift Flotten-Instances

Sie können eine Verbindung zu jeder Instance in Ihren aktiven von Amazon GameLift verwalteten EC2-Flotten herstellen. Häufige Gründe für den Zugriff auf eine Instance sind:

  • Beheben von Problemen mit Ihrer Spieleserver-Integration

  • Optimieren Sie Ihre Laufzeitkonfiguration und andere flottenspezifische Einstellungen

  • Erhalten Sie Echtzeit-Spielserveraktivitäten, z. B. Protokollverfolgung.

  • Führen Sie Benchmarking-Tools mit tatsächlichem Spielerdatenverkehr aus.

  • Untersuchen Sie bestimmte Probleme mit einer Spielsitzung oder einem Serverprozess.

Berücksichtigen Sie beim Herstellen einer Verbindung mit einer Instance die folgenden potenziellen Probleme:

  • Sie können eine Verbindung zu Instances in aktiven Flotten herstellen. Nicht aktive Flotten, die aktivieren oder sich in einem Fehlerzustand befinden, sind möglicherweise für einen kurzen Zeitraum zugänglich. Hilfe zu Problemen bei der Flottenaktivierung finden Sie unter Probleme mit der GameLift Amazon-Flotte beheben.

  • Das Herstellen einer Verbindung mit einer aktiven Instance wirkt sich nicht auf die Hosting-Aktivität der Instance aus. Die Instance startet und stoppt weiterhin Serverprozesse basierend auf der Laufzeitkonfiguration. Es aktiviert und hostet Spielsitzungen. Es kann als Reaktion auf ein Herunterskalierungsereignis oder ein anderes Ereignis heruntergefahren werden.

  • Alle Änderungen, die Sie an Dateien oder Einstellungen auf der Instance vornehmen, können sich auf die aktiven Spielsitzungen und verbundenen Spieler der Instance auswirken.

In den folgenden Anweisungen wird beschrieben, wie Sie mithilfe der AWS Befehlszeilenschnittstelle (CLI) eine Remote-Verbindung zu einer Instance herstellen. Sie können auch programmgesteuerte Aufrufe mit dem AWS SDK tätigen, wie in der Amazon- GameLift Service-API-Referenz dokumentiert.

Erfassen von Instance-Daten

Sammeln Sie die folgenden Informationen:

  • Die ID der Instance, mit der Sie eine Verbindung herstellen möchten. Sie können entweder die Instance-ID oder den ARN verwenden.

  • Die Amazon GameLift Server SDK-Version, die auf der Instance verwendet wird. Das Server-SDK ist in den Spiele-Build integriert, der auf der Instance ausgeführt wird.

So rufen Sie Instance-Daten ab

Bei den folgenden Schritten wird davon ausgegangen, dass Sie über eine verwaltete EC2-Flotten-ID für die Instance verfügen, mit der Sie eine Verbindung herstellen möchten.

  1. Rufen Sie den Datenverarbeitungsnamen ab.

    Rufen Sie list-compute für die verwaltete EC2-Flotte auf, um eine Liste aller aktiven Rechenvorgänge in der Flotte zu erhalten. Geben Sie für eine Flotte mit einem Standort die Flotten-ID oder den ARN an. Geben Sie für eine Flotte mit mehreren Standorten die Flotten-ID oder den ARN und einen Standort an. Für eine verwaltete EC2-Flotte sind Rechenvorgänge EC2-Instances und die zurückgegebene Eigenschaft ComputeName ist die Instance-ID. Beispielsweise:

    Anforderung

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

    Antwort

    { "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. Suchen Sie die Server-SDK-Version.

    Die Server-SDK-Version ist ein Attribut einer Build-Ressource.

    1. Rufen Sie describe-fleet-attributes mit einer Flotten-ID auf, um die Build-ID und den ARN der Flotte abzurufen.

    2. Rufen Sie describe-build mit der Build-ID oder dem ARN auf, um die Server-SDK-Version des Builds abzurufen.

      Beispielsweise:

      Anforderung

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

    Antwort

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

    Anforderung

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

    Antwort

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

Herstellen einer Verbindung mit einer Instance (Server-SDK 5)

Wenn auf der Instance, mit der Sie eine Verbindung herstellen möchten, ein Spiele-Build mit Server-SDK-Version 5.x ausgeführt wird, verwenden Sie die folgenden Anweisungen, um sich mit Amazon EC2 Systems Manager (SSM) mit der Instance zu verbinden. Sie können auf Remote-Instances zugreifen, die auf Windows oder Linux ausgeführt werden.

  1. Fordern Sie Anmeldeinformationen für die Instance an. Wenn Sie einen Datenverarbeitungsnamen und eine Flotten-ID für die Instance haben, mit der Sie eine Verbindung herstellen möchten, rufen Sie aufget-compute-access. Bei Erfolg gibt Amazon einen Satz temporärer Anmeldeinformationen für den Zugriff auf die Instance GameLift zurück. Beispielsweise:

    Anforderung

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

    Antwort

    { "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. Exportieren Sie die Anmeldeinformationen für den Zugriff. Sie können die Anmeldeinformationen optional in Umgebungsvariablen exportieren und sie verwenden, um die AWS CLI für den Standardbenutzer zu konfigurieren. Weitere Informationen finden Sie unter Umgebungsvariablen zum Konfigurieren der AWS CLI im AWS Command Line Interface-Benutzerhandbuch.

    export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
  3. Stellen Sie eine Verbindung mit der Flotten-Instance her. Starten Sie eine SSM-Sitzung mit der Instance, mit der Sie eine Verbindung herstellen möchten. Geben Sie die AWS Region oder den Speicherort der Instance an. Weitere Informationen finden Sie unter Starten einer Sitzung (AWS-CLI) im Amazon EC2 Systems Manager-Benutzerhandbuch. Verwenden Sie die Anmeldeinformationen, die Sie in Schritt 1 erhalten haben. Beispielsweise:

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

Herstellen einer Verbindung mit einer Instance (Server-SDK 4.x oder früher)

Wenn auf der Instance, mit der Sie eine Verbindung herstellen möchten, ein Spiele-Build mit Server-SDK Version 4 oder früher ausgeführt wird, befolgen Sie die folgenden Anweisungen. Sie können eine Verbindung zu Instances herstellen, auf denen Windows oder Linux ausgeführt wird. Stellen Sie über einen Remote Desktop Protocol (RDP)-Client eine Verbindung zu einer Windows-Instance her. Stellen Sie über einen SSH-Client eine Verbindung zu einer Linux-Instance her.

  1. Fordern Sie Anmeldeinformationen für die Instance an. Wenn Sie über eine Instance-ID verfügen, verwenden Sie den Befehl , get-instance-access um Anmeldeinformationen für den Zugriff anzufordern. Bei Erfolg gibt Amazon das Betriebssystem, die IP-Adresse und einen Satz von Anmeldeinformationen (Benutzername und geheimer Schlüssel) der Instance GameLift zurück. Das Format der Anmeldeinformationen ist vom Betriebssystem der Instance abhängig. Verwenden Sie die folgenden Anweisungen, um Anmeldeinformationen für RDP oder SSH abzurufen.

    • Für Windows-Instances – Für die Verbindung mit einer Windows-Instance benötigt RDP einen Benutzernamen und ein Passwort. Die get-instance-access-Anforderung gibt diese Werte als einfache Zeichenfolgen zurück. Daher können Sie die zurückgegebenen Werte unverändert verwenden. Beispiel für Anmeldeinformationen:

      "Credentials": { "Secret": "aA1bBB2cCCd3EEE", "UserName": "gl-user-remote" }
    • Für Linux-Instances – Um eine Verbindung zu einer Linux-Instance herzustellen, benötigt SSH einen Benutzernamen und einen privaten Schlüssel. Amazon GameLift gibt private RSA-Schlüssel aus und gibt sie als einzelne Zeichenfolge zurück, wobei das Zeilenumbrüche durch das Zeilenumbruchzeichen (\n) angezeigt werden. Um den privaten Schlüssel verwendbar zu machen, führen Sie die folgenden Schritte aus: (1) Konvertieren der Zeichenfolge in eine .pem Datei und (2) Festlegen von Berechtigungen für die neue Datei. Beispiel für zurückgegebene Anmeldeinformationen:

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

      Wenn Sie die AWS CLI verwenden, können Sie automatisch eine .pem Datei generieren, indem Sie die Parameter --query und ---output in Ihre get-instance-access Anfrage aufnehmen.

      Um für die .pem-Datei Berechtigungen festzulegen, führen Sie den folgenden Befehl aus:

      $ chmod 400 MyPrivateKey.pem
  2. Öffnen Sie einen Port für die Remote-Verbindung. Sie können über jeden Port, der in der Flottenkonfiguration autorisiert ist, auf Instances in Amazon- GameLift Flotten zugreifen. Sie können die Port-Einstellungen einer Flotte mit dem Befehl describe-fleet-port-settings anzeigen.

    Als bewährte Methode wird empfohlen, Ports für den Remote-Zugriff nur zu öffnen, wenn Sie diese benötigen, und sie zu schließen, wenn Sie diese nicht mehr benötigen. Sie können die Porteinstellungen nicht aktualisieren, nachdem Sie eine Flotte erstellt haben, aber bevor sie aktiv ist. Wenn Sie hängen bleiben, erstellen Sie die Flotte mit den offenen Porteinstellungen neu.

    Verwenden Sie den Befehl update-fleet-port-settings, um eine Port-Einstellung für die Remote-Verbindung hinzuzufügen (z. B. 22 für SSH oder 3389 für RDP). Geben Sie als Wert für den IP-Adressbereich die IP-Adressen für die Geräte an, die Sie verwenden möchten, um eine Verbindung herzustellen (in das CIDR-Format konvertiert). Beispiel:

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

    Im folgenden Beispiel wird Port 3389 auf einer Windows-Flotte geöffnet

    $ 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. Öffnen Sie einen Remote-Verbindungs-Client. Verwenden Sie Remote Desktop für Windows-Instances oder SSH für Linux-Instances. Stellen Sie die Verbindung mit der Instance unter Verwendung von IP-Adresse, Port-Einstellung und Anmeldeinformationen her.

    SSH-Beispiel:

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

Anzeigen von Dateien auf Remote-Instances

Wenn Sie remote mit einer Instance verbunden sind, verfügen Sie über einen vollständigen Benutzer- und Administratorzugriff. Das bedeutet, dass Sie auch Fehler und Ausfälle für das Spiele-Hosting verursachen können. Wenn die Instance Spiele mit aktiven Spielern hostet, besteht das Risiko, dass Spielsitzungen abstürzen und Spieler ablegen oder Prozesse zum Herunterfahren von Spielen unterbrechen und Fehler in gespeicherten Spieldaten und -protokollen verursachen.

Suchen Sie auf einer Hosting-Instance nach diesen Ressourcen:

  • Build-Dateien von Spielen. Diese Dateien sind der Spiele-Build, den Sie in Amazon hochgeladen haben GameLift. Sie enthalten eine oder mehrere ausführbare Dateien, Komponenten und Abhängigkeiten des Spieleservers. Spiele-Build-Dateien befinden sich in einem Stammverzeichnis namens game:

    • Bei Windows: c:\game

    • Bei Linux: /local/game

  • Protokolldateien von Spielen. Suchen Sie die Protokolldateien, die Ihr Spieleserver generiert, im game Stammverzeichnis unter dem von Ihnen angegebenen Verzeichnispfad.

  • Amazon GameLift -Hosting-Ressourcen. Das Stammverzeichnis Whitewater enthält Dateien, die vom Amazon- GameLift Service zur Verwaltung von Spiel-Hosting-Aktivitäten verwendet werden. Ändern Sie diese Dateien nicht aus irgendeinem Grund.

  • Laufzeitkonfiguration. Greifen Sie nicht auf die Laufzeitkonfiguration für einzelne Instances zu. Um Änderungen an einer Laufzeitkonfigurationseigenschaft vorzunehmen, aktualisieren Sie die Laufzeitkonfiguration der Flotte (siehe SDKAWS-Operation UpdateRuntimeConfiguration oder AWS CLI update-runtime-configuration).

  • Flottendaten. Eine JSON-Datei enthält Informationen über die Flotte, zu der die Instance gehört, zur Verwendung durch Serverprozesse, die auf der Instance ausgeführt werden. Die JSON-Datei befindet sich am folgenden Speicherort:

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

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

  • TLS-Zertifikate. Wenn sich die Instance auf einer Flotte befindet, für die die TLS-Zertifikatsgenerierung aktiviert ist, suchen Sie am folgenden Speicherort nach Zertifikatsdateien, einschließlich Zertifikat, Zertifikatkette, privatem Schlüssel und Stammzertifikat:

    • Bei Windows: c:\\GameMetadata\Certificates

    • Bei Linux: /local/gamemetadata/certificates/