View a markdown version of this page

Mit Flotteninstanzen verbinden - GameLift Amazon-Server

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.

Mit Flotteninstanzen verbinden

Sie können sich per Fernzugriff mit jeder aktiven Amazon GameLift Servers verwalteten EC2- oder Container-Flotteninstanz verbinden, um Probleme mit dem Spielserver zu beheben, Protokolle zu überprüfen und das Laufzeitverhalten zu debuggen. Stellen Sie über die Amazon GameLift Servers Konsole oder die AWS CLI eine Verbindung her.

Fernzugriff über die Konsole

Mit Amazon EC2 Systems Manager (SSM) können Sie direkt von der Amazon GameLift Servers Konsole aus eine Verbindung zu Flotten-Instances herstellen. Diese Methode bietet sicheren Zugriff, ohne dass eine zusätzliche Einrichtung oder Verwaltung der Anmeldeinformationen erforderlich ist. Bei Container-Flotten können Sie, nachdem Sie eine Verbindung zur Instance hergestellt haben, auf einzelne Container zugreifen, die darauf laufen. Weitere Informationen finden Sie unter Connect zu Containern herstellen.

  1. Wählen Sie in der Amazon GameLift Servers Konsole im Navigationsbereich Managed EC2 oder Managed Containers und dann Fleets aus.

  2. Wählen Sie die Flotten-ID aus, die die Instance enthält, auf die Sie zugreifen möchten.

  3. Wählen Sie auf der Seite mit den Flottendetails den Tab Instances aus, um alle Recheninstanzen für die Flotte anzuzeigen.

  4. Wählen Sie die Instance aus, zu der Sie eine Verbindung herstellen möchten, und wählen Sie dann Verbinden aus. Daraufhin wird das Dialogfeld „Mit Instanz verbinden“ angezeigt, das Sie über die Details der Verbindung informiert und Ihnen ermöglicht, das Skript anzuzeigen, das für die Verbindung zu Ihrer Instance verwendet wird. Bestätigen Sie, indem Sie erneut Verbinden wählen.

  5. Wählen Sie im Verbindungsdialogfeld Ausführen, um eine neue SSM-Sitzung zu erstellen. Das System authentifiziert Ihre Sitzung über den AWS Key Management Service (AWS KMS) und öffnet ein Terminal in Ihrem Browser.

Anmerkung

Console-based Fernzugriff ist für Flotten verfügbar, auf denen Server-SDK Version 5.x ausgeführt wird. Verwenden Sie für Flotten, auf denen frühere SDK-Versionen ausgeführt werden, die im folgenden Abschnitt beschriebene AWS CLI-Methode.

Fernzugriff mit dem AWS CLI

Die folgenden Anweisungen beschreiben, wie Sie mithilfe der AWS Befehlszeilenschnittstelle (CLI) eine Remoteverbindung zu einer Instance herstellen. Sie können mithilfe des AWS SDK auch programmatische Aufrufe tätigen, wie in der Service-API-Referenz für Amazon GameLift Servers dokumentiert.

Sammeln Sie Instanzdaten

Um eine Verbindung zu einer Amazon GameLift Servers verwalteten EC2-Flotteninstanz herzustellen, benötigen Sie die folgenden Informationen:

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

  • das Server-SDK für die Amazon GameLift Servers Version, die auf der Instanz verwendet wird. Das Server-SDK ist in den Spiel-Build integriert, der auf der Instanz ausgeführt wird.

In den folgenden Anweisungen wird beschrieben, wie Sie diese Aufgaben mithilfe der AWS CLI ausführen. Sie müssen die Flotten-ID der Instance kennen, zu der Sie eine Verbindung herstellen möchten.

  1. Rufen Sie den Computenamen ab. Ruft eine Liste aller aktiven Computer in der Flotte ab. Rufen Sie list-compute mit einer Flotten-ID oder einem ARN auf. Geben Sie bei einer Flotte mit nur einem Standort nur die Flottenkennzeichnung an. Geben Sie bei einer Flotte mit mehreren Standorten die Flottenkennzeichnung und einen Standort an. Gibt bei verwalteten EC2-Flotten eine Liste von Flotteninstanzen list-compute zurück, und die Eigenschaft ComputeName ist die Instance-ID. Suchen Sie den Computer, auf den Sie zugreifen möchten.

    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_2023", "Type": "c4.large" } ] }
  2. Suchen Sie die Server-SDK-Version. Für diese Informationen müssen Sie den Build nachschlagen, der in der Flotte eingesetzt wird. Die Server-SDK-Version ist eine Build-Eigenschaft.

    1. Rufen Sie describe-fleet-attributes mit einer Flotten-ID oder einem ARN 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.

      Beispiel:

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

Stellen Sie eine Verbindung zu einer Instanz her (Server-SDK 5)

Wenn auf der Instance, zu der Sie eine Verbindung herstellen möchten, ein Spiel mit der Server-SDK-Version 5.x ausgeführt wird, stellen Sie mithilfe des Amazon EC2 Systems Manager (SSM) eine Verbindung zu der Instance her. Sie können auf Remote-Instances zugreifen, die auf Windows oder Linux ausgeführt werden. Bei Container-Flotten können Sie, nachdem Sie eine Verbindung zur Instance hergestellt haben, auf einzelne Container zugreifen, die darauf laufen. Weitere Informationen finden Sie unter Connect zu Containern herstellen.

Bevor Sie beginnen:

Führen Sie die SSM-Setup-Schritte durch und installieren Sie das SSM-Plugin auf Ihrem lokalen Computer. Weitere Informationen finden Sie unter SSM einrichten und das Session Manager-Plug-In für die AWS CLI installieren im Amazon EC2 Systems Manager-Benutzerhandbuch.

  1. Fordern Sie Anmeldeinformationen für die Instance an. Rufen Sie get-compute-access mit der Flotten-ID und dem Computenamen der Instance auf, zu der Sie eine Verbindung herstellen möchten. Amazon GameLift Serversgibt eine Reihe temporärer Anmeldeinformationen für den Zugriff auf die Instanz zurück. Beispiel:

    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 Zugangsdaten (optional). Sie können die Anmeldeinformationen in Umgebungsvariablen exportieren und sie verwenden, um die AWS CLI für den Standardbenutzer zu konfigurieren. Weitere Informationen finden Sie unter Umgebungsvariablen zur Konfiguration 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 zur Flotteninstanz her. Starten Sie eine SSM-Sitzung mit der Instance, zu der Sie eine Verbindung herstellen möchten. Geben Sie die AWS Region oder den Standort der Instanz an. Weitere Informationen, einschließlich der Einrichtung von SSM und des SSM-Plug-ins, finden Sie unter Starting a Session (AWS CLI) im Amazon EC2 Systems Manager-Benutzerhandbuch.

    Bei der Anfrage zum Starten der Sitzung werden automatisch die Anmeldeinformationen verwendet, die Sie in Schritt 1 erhalten haben.

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

    Wenn Sie die Fehlermeldung „Zugriff verweigert“ erhalten, haben Sie möglicherweise eine AWS_PROFILE Umgebungsvariable auf ein AWS Profil gesetzt, was dazu führt, dass AWS CLI die falschen Anmeldeinformationen für den Fernzugriff verwendet. Um das Problem zu beheben, deaktivieren Sie vorübergehend Ihre AWS_PROFILE Umgebungsvariable. Alternativ können Sie ein benutzerdefiniertes AWS Profil für Ihre RAS-Anmeldeinformationen erstellen und Ihrer start-session Anfrage den --profile Befehlszeilenparameter hinzufügen.

Stellen Sie eine Verbindung zu einer Instanz her (Server-SDK 4.x oder früher)

Wenn auf der Instanz, zu der Sie eine Verbindung herstellen möchten, ein Spiel mit Server-SDK Version 4 oder früher ausgeführt wird, folgen Sie den folgenden Anweisungen. Sie können eine Verbindung zu Instanzen herstellen, auf denen entweder Windows oder Linux ausgeführt wird. Stellen Sie mithilfe eines RDP-Clients (Remote Desktop Protocol) eine Verbindung zu einer Windows-Instanz her. Stellen Sie mithilfe eines SSH-Clients eine Verbindung zu einer Linux-Instanz her.

  1. Fordern Sie Anmeldeinformationen für die Instance an. Wenn Sie eine Instanz-ID haben, verwenden Sie den Befehl get-instance-access, um Zugangsdaten anzufordern. Wenn dies erfolgreich ist, gibt Amazon GameLift Servers das Betriebssystem, die IP-Adresse und einen Satz von Anmeldeinformationen (Benutzername und geheimer Schlüssel) für die Instance 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-Instanzen — Um eine Verbindung zu einer Windows-Instanz herzustellen, 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-Instanzen — Um eine Verbindung zu einer Linux-Instanz herzustellen, benötigt SSH einen Benutzernamen und einen privaten Schlüssel. Amazon GameLift Serversgibt private RSA-Schlüssel aus und gibt sie als einzelne Zeichenfolge zurück, wobei das Zeilenumbruchzeichen (\n) für Zeilenumbrüche steht. Gehen Sie wie folgt vor, um den privaten Schlüssel nutzbar zu machen: (1) konvertieren Sie die Zeichenfolge in eine .pem Datei und (2) legen Sie die Berechtigungen für die neue Datei fest. 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 in der Amazon GameLift Servers Flottenkonfiguration autorisierten Port auf Instances in 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 nicht weiterkommen, erstellen Sie die Flotte mit geöffneten 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"

    Das folgende Beispiel öffnet Port 3389 in einer Windows-Flotte

    $ 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

Dateien auf Remote-Instances anzeigen

Sobald Sie mit einer Flotteninstanz verbunden sind, haben Sie vollen Benutzer- und Administratorzugriff. Das bedeutet, dass du auch die Möglichkeit hast, Fehler oder Ausfälle beim Game-Hosting zu verursachen. Wenn die Instanz Spiele mit aktiven Spielern hostet, besteht möglicherweise das Risiko, dass Spielsitzungen abstürzen und Spieler verloren gehen oder das Herunterfahren von Spielen unterbrochen wird, was zu Fehlern in den gespeicherten Spieldaten und Protokollen führen kann.

Für Container-Flotten gelten nach dem Zugriff auf den Container (sieheConnect zu Containern herstellen) die folgenden Dateispeicherorte innerhalb des Container-Dateisystems. Bei EC2-Flotten gelten diese Dateispeicherorte direkt für die Instance.

Suchen Sie auf einer Hosting-Instance nach diesen Ressourcen:

  • Build-Dateien von Spielen. Diese Dateien sind der Spiel-Build, in den du hochgeladen hastAmazon GameLift Servers. Sie enthalten eine oder mehrere ausführbare Dateien, Ressourcen und Abhängigkeiten auf dem Spielserver. Die Build-Dateien des Spiels befinden sich in einem Stammverzeichnis mit dem Namen: game

    • Bei Windows: c:\game

    • Bei Linux: /local/game

  • Protokolldateien von Spielen. Finde die Logdateien, die dein Spieleserver generiert, im game Stammverzeichnis unter dem von dir angegebenen Verzeichnispfad.

  • Hosting-Ressourcen von Amazon GameLift Servers. Das Stammverzeichnis Whitewater enthält Dateien, die vom Amazon GameLift Servers Dienst zur Verwaltung der Spielhosting-Aktivitäten verwendet werden. Verändern Sie diese Dateien aus keinem Grund.

  • Laufzeitkonfiguration. Greifen Sie nicht auf die Laufzeitkonfiguration für einzelne Instanzen zu. Um Änderungen an einer Laufzeitkonfigurationseigenschaft vorzunehmen, aktualisieren Sie die Laufzeitkonfiguration der Flotte (siehe AWS SDK-Vorgang UpdateRuntimeConfiguration oder AWS CLI https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-runtime-configuration.html Update-Runtime-Konfiguration).

  • 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 in einer Flotte befindet, für die die TLS-Zertifikatsgenerierung aktiviert ist, suchen Sie am folgenden Speicherort nach Zertifikatsdateien, einschließlich des Zertifikats, der Zertifikatskette, des privaten Schlüssels und des Stammzertifikats:

    • Bei Windows: c:\\GameMetadata\Certificates

    • Bei Linux: /local/gamemetadata/certificates/