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 armada EC2 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.

Instruksi 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 referensi API GameLift layanan Amazon.

Kumpulkan data instance

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

  • ID dari instance yang ingin Anda sambungkan. Anda dapat menggunakan ID instance atau ARN.

  • Versi SDK 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 armada EC2 terkelola, list-compute mengembalikan daftar instance armada, dan properti ComputeName adalah ID instans. 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 versi SDK server. Untuk informasi ini, Anda perlu mencari build yang dikerahkan ke armada. Versi SDK Server adalah properti build.

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

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

      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 instans (server SDK 5)

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

Sebelum Anda mulai:

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

  1. Minta kredensyal akses untuk instance. Panggil get-compute-accessdengan ID armada dan nama komputasi untuk instance yang ingin Anda sambungkan. Amazon GameLift mengembalikan satu set kredensyal 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 kredensyal akses (opsional). Anda dapat mengekspor kredensyal ke variabel lingkungan dan menggunakannya untuk mengkonfigurasi AWS CLI untuk pengguna default. Untuk detail selengkapnya, lihat Variabel lingkungan untuk mengonfigurasi AWS CLI di AWS Command Line Interface Panduan 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 sesi SSM dengan instance yang ingin Anda sambungkan. Sertakan AWS Wilayah atau lokasi instance. Untuk informasi selengkapnya, termasuk cara mengatur SSM dan plugin SSM, lihat Memulai sesi (AWS CLI) di Panduan Pengguna Amazon EC2 Systems Manager.

    Permintaan sesi awal akan secara otomatis menggunakan kredensyal 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 menggunakan kredensyal yang salah untuk akses jarak jauh. Untuk mengatasinya, hapus sementara variabel AWS_PROFILE lingkungan Anda. Atau, Anda dapat membuat AWS profil khusus untuk kredensyal akses jarak jauh Anda dan menambahkan parameter baris --profile perintah ke permintaan Andastart-session.

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

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

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

    • Untuk instans Windows – Untuk connect ke instans 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 instans Linux – Untuk connect ke instans Linux, SSH membutuhkan nama pengguna dan kunci privat. Amazon GameLift mengeluarkan kunci pribadi RSA 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 secara otomatis membuat .pem file dengan menyertakan parameter --query dan --output ke permintaan Anda. get-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-settings untuk menambahkan pengaturan port untuk koneksi jarak jauh (seperti 22 untuk SSH atau 3389 untuk RDP). Untuk nilai rentang IP, tentukan alamat IP untuk perangkat yang akan Anda gunakan untuk connect (dikonversi ke format CIDR). 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 Desktop Jarak Jauh untuk Windows atau SSH untuk instans Linux. Connect ke instans menggunakan alamat IP, pengaturan port, dan kredensial akses.

    Contoh SSH:

    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 operasi AWS SDK UpdateRuntimeConfigurationatau). AWS CLI update-runtime-configuration

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

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

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

  • Sertifikat TLS. Jika instance berada di armada yang mengaktifkan pembuatan sertifikat TLS, 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/