Terhubung dari jarak jauh ke instance GameLift armada Amazon - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terhubung dari jarak jauh ke instance GameLift armada Amazon

Anda dapat terhubung ke instans apa pun di EC2 armada GameLift terkelola Amazon aktif Anda. Alasan umum untuk mengakses instance dari jarak jauh meliputi:

  • Memecahkan masalah dengan integrasi server game Anda.

  • Sempurnakan konfigurasi runtime Anda dan pengaturan khusus armada lainnya.

  • Dapatkan aktivitas server game real-time, seperti pelacakan log.

  • Jalankan alat benchmarking menggunakan lalu lintas pemain yang sebenarnya.

  • Selidiki masalah tertentu dengan sesi permainan atau proses server.

Saat menghubungkan ke sebuah instance, pertimbangkan potensi masalah ini:

  • Anda dapat terhubung ke instans apa pun dalam armada aktif. Umumnya, Anda tidak dapat terhubung ke armada non-aktif, seperti armada yang sedang dalam proses mengaktifkan atau berada dalam keadaan kesalahan. (Armada ini mungkin memiliki ketersediaan terbatas untuk waktu yang singkat.) Untuk bantuan terkait masalah aktivasi armada, lihat Debug masalah GameLift armada Amazon.

  • Menghubungkan ke instans aktif tidak memengaruhi aktivitas hosting instans. Instance terus memulai dan menghentikan proses server berdasarkan konfigurasi runtime. Ini mengaktifkan dan menjalankan sesi permainan. Instance mungkin dimatikan sebagai respons terhadap peristiwa penurunan skala atau peristiwa lainnya.

  • Setiap perubahan yang Anda buat pada file atau pengaturan pada instance dapat memengaruhi sesi permainan aktif instans dan pemain yang terhubung.

Petunjuk berikut menjelaskan cara menghubungkan jarak jauh ke sebuah instance menggunakan antarmuka baris AWS perintah (CLI). Anda juga dapat melakukan panggilan terprogram menggunakan AWS SDK, seperti yang didokumentasikan dalam APIreferensi GameLift layanan Amazon.

Kumpulkan data instance

Untuk menyambung ke instans EC2 armada GameLift terkelola Amazon, Anda memerlukan informasi berikut:

  • ID dari instance yang ingin Anda sambungkan. Anda dapat menggunakan ID instance atauARN.

  • SDKVersi GameLift server Amazon yang digunakan pada instance. Server SDK terintegrasi dengan game build yang berjalan pada instance.

Instruksi berikut menjelaskan bagaimana menyelesaikan tugas-tugas ini menggunakan AWS CLI. Anda harus mengetahui ID armada untuk contoh yang ingin Anda sambungkan.

  1. Dapatkan nama komputasi. Dapatkan daftar semua komputasi aktif di armada. Panggil daftar-komputasi dengan ID armada atau. ARN Untuk armada satu lokasi, tentukan pengenal armada saja. Untuk armada multi-lokasi, tentukan pengenal armada dan lokasi. Dengan EC2 armada terkelola, list-compute mengembalikan daftar instance armada, dan properti ComputeName adalah ID instance. Temukan komputasi yang ingin Anda akses.

    Permintaan

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

    Respons

    { "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. Temukan SDK versi server. Untuk informasi ini, Anda perlu mencari build yang dikerahkan ke armada. SDKVersi server adalah properti build.

    1. Hubungi describe-fleet-attributesdengan ID armada atau ARN untuk mendapatkan ID build armada danARN.

    2. Panggil describe-build dengan ID build atau ARN untuk mendapatkan versi server build. SDK

      Sebagai contoh:

      Permintaan

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

    Respons

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

    Permintaan

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

    Respons

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

Connect ke sebuah instance (server SDK 5)

Jika instance yang ingin Anda sambungkan menjalankan game build dengan server SDK versi 5.x, sambungkan ke instance menggunakan Amazon EC2 Systems Manager (SSM). Anda dapat mengakses instans jarak jauh yang menjalankan Windows atau Linux.

Sebelum Anda mulai:

Selesaikan langkah-langkah SSM pengaturan dan instal SSM plugin di mesin lokal Anda. Untuk informasi selengkapnya, lihat Menyiapkan SSM dan Menginstal plugin Session Manager AWS CLI di Panduan Pengguna Amazon EC2 Systems Manager.

  1. Minta kredensi akses untuk instance. Panggil get-compute-accessdengan ID armada dan nama komputasi untuk instance yang ingin Anda sambungkan. Amazon GameLift mengembalikan satu set kredensi sementara untuk mengakses instance. Sebagai contoh:

    Permintaan

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

    Respons

    { "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. Ekspor kredenal akses (opsional). Anda dapat mengekspor kredensi ke variabel lingkungan dan menggunakannya untuk mengkonfigurasi AWS CLI untuk pengguna default. Untuk detail selengkapnya, lihat Variabel lingkungan untuk mengonfigurasi AWS CLI dalam Panduan AWS Command Line Interface Pengguna.

    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 ke instance armada. Mulai SSM sesi dengan instance yang ingin Anda sambungkan. Sertakan AWS Wilayah atau lokasi instance. Untuk informasi selengkapnya, termasuk cara mengatur SSM dan SSM plugin, lihat Memulai sesi (AWS CLI) di Panduan Pengguna Amazon EC2 Systems Manager.

    Permintaan sesi awal akan secara otomatis menggunakan kredenal yang Anda peroleh di Langkah 1.

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

    Jika Anda mendapatkan kesalahan akses ditolak, Anda mungkin memiliki variabel AWS_PROFILE lingkungan yang disetel ke AWS profil, yang menyebabkan AWS CLI penggunaan kredenal yang salah untuk akses jarak jauh. Untuk mengatasinya, hapus sementara variabel AWS_PROFILE lingkungan Anda. Atau, Anda dapat membuat AWS profil khusus untuk kredenal akses jarak jauh Anda dan menambahkan parameter baris --profile perintah ke permintaan Andastart-session.

Connect ke sebuah instance (server SDK 4.x atau lebih lama)

Jika instance yang ingin Anda sambungkan menjalankan game build dengan server SDK versi 4 atau lebih lama, gunakan petunjuk berikut. Anda dapat terhubung ke instance yang menjalankan Windows atau Linux. Connect ke instance Windows menggunakan remote desktop protocol (RDP) klien. Connect ke instance Linux menggunakan SSH klien.

  1. Minta kredensi akses untuk instance. Bila Anda memiliki ID instance, gunakan perintah get-instance-accessuntuk meminta kredensi akses. Jika berhasil, Amazon GameLift mengembalikan sistem operasi instans, alamat IP, dan satu set kredensi (nama pengguna dan kunci rahasia). Format kredensial tergantung pada sistem operasi instans. Gunakan petunjuk berikut untuk mengambil kredensi untuk salah satu atau. RDP SSH

    • Untuk instance Windows — Untuk terhubung ke instance Windows, RDP memerlukan nama pengguna dan kata sandi. Permintaan get-instance-access mengembalikan nilai-nilai ini sebagai string sederhana, sehingga Anda dapat menggunakan nilai yang dikembalikan apa adanya. Kredenensi contoh:

      "Credentials": { "Secret": "aA1bBB2cCCd3EEE", "UserName": "gl-user-remote" }
    • Untuk instance Linux — Untuk terhubung ke instance Linux, SSH memerlukan nama pengguna dan kunci pribadi. Amazon GameLift mengeluarkan kunci RSA pribadi dan mengembalikannya sebagai string tunggal, dengan karakter baris baru (\n) menunjukkan jeda baris. Untuk membuat kunci pribadi dapat digunakan, ambil langkah-langkah ini: (1) konversi string ke .pem file, dan (2) mengatur izin untuk file baru. Contoh kredensial yang dikembalikan:

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

      Saat menggunakan AWS CLI, Anda dapat membuat .pem file secara otomatis dengan menyertakan parameter --query dan --output ke permintaan Andaget-instance-access.

      Gunakan perintah berikut untuk memeriksa izin pada .pem file.

      $ chmod 400 MyPrivateKey.pem
  2. Buka port untuk koneksi jarak jauh. Anda dapat mengakses instans di GameLift armada Amazon melalui port apa pun yang diotorisasi dalam konfigurasi armada. Anda dapat melihat pengaturan port armada menggunakan perintah describe-fleet-port-settings.

    Sebagai praktik terbaik, kami menyarankan untuk membuka port untuk akses jarak jauh hanya saat Anda membutuhkannya dan menutupnya saat Anda selesai. Anda tidak dapat memperbarui pengaturan port setelah membuat armada tetapi sebelum aktif. Jika Anda macet, buat ulang armada dengan pengaturan port terbuka.

    Gunakan perintah update-fleet-port-settingsuntuk menambahkan pengaturan port untuk koneksi jarak jauh (seperti 22 untuk SSH atau 3389 untukRDP). Untuk nilai rentang IP, tentukan alamat IP untuk perangkat yang Anda rencanakan untuk digunakan untuk terhubung (dikonversi ke CIDR format). Contoh:

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

    Contoh berikut membuka port 3389 pada armada 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. Buka klien koneksi jarak jauh. Gunakan Remote Desktop untuk Windows atau SSH untuk instance Linux. Connect ke instans menggunakan alamat IP, pengaturan port, dan kredensial akses.

    SSHcontoh:

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

Melihat file pada instance jarak jauh

Saat terkoneksi ke instans dari jarak jauh, Anda memiliki akses pengguna dan administratif penuh. Ini berarti Anda juga memiliki kemampuan untuk menyebabkan kesalahan dan kegagalan dalam hosting game. Jika instans menghosting game dengan pemain aktif, Anda berisiko menabrak sesi game dan menjatuhkan pemain, atau mengganggu proses shutdown game dan menyebabkan kesalahan dalam data dan log game yang disimpan.

Cari sumber daya ini pada instance hosting:

  • Game membangun file. File-file ini adalah game build yang Anda unggah ke Amazon GameLift. Mereka termasuk satu atau lebih server game executable, aset, dan dependensi. File build game ada di direktori root yang disebutgame:

    • Pada Windows:c:\game

    • Pada Linux:/local/game

  • File log game. Temukan file log yang dihasilkan server game Anda di direktori game root di jalur direktori apa pun yang Anda tentukan.

  • Sumber daya GameLift hosting Amazon. Direktori root Whitewater berisi file yang digunakan oleh GameLift layanan Amazon untuk mengelola aktivitas hosting game. Jangan memodifikasi file-file ini karena alasan apa pun.

  • Konfigurasi runtime. Jangan mengakses konfigurasi runtime untuk instance individual. Untuk membuat perubahan pada properti konfigurasi runtime, perbarui konfigurasi runtime armada (lihat AWS SDK operasi UpdateRuntimeConfigurationatau). AWS CLI update-runtime-configuration

  • Data armada. JSONFile berisi informasi tentang armada yang dimiliki instance, untuk digunakan oleh proses server yang berjalan pada instance. JSONFile berada di lokasi berikut:

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

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

  • TLSsertifikat. Jika instance berada di armada yang mengaktifkan pembuatan TLS sertifikat, cari file sertifikat, termasuk sertifikat, rantai sertifikat, kunci pribadi, dan sertifikat root di lokasi berikut:

    • Pada Windows:c:\\GameMetadata\Certificates

    • Pada Linux:/local/gamemetadata/certificates/