View a markdown version of this page

Sambungkan ke instans armada - GameLift Server Amazon

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

Sambungkan ke instans armada

Anda dapat terhubung dari jarak jauh ke EC2 ter Amazon GameLift Servers kelola aktif atau instance armada kontainer terkelola untuk memecahkan masalah server game, memeriksa log, dan men-debug perilaku runtime. Hubungkan menggunakan Amazon GameLift Servers konsol atau AWS CLI.

Akses jarak jauh melalui konsol

Anda dapat terhubung ke instans armada langsung dari Amazon GameLift Servers konsol menggunakan Amazon EC2 Systems Manager (SSM). Metode ini menyediakan akses aman tanpa memerlukan pengaturan tambahan atau manajemen kredensia. Untuk armada kontainer, setelah terhubung ke instance, Anda dapat mengakses kontainer individual yang berjalan di atasnya. Untuk informasi selengkapnya, lihat Connect ke kontainer.

  1. Di Amazon GameLift Servers konsol, pilih Man aged EC2 atau Container terkelola dari panel navigasi, lalu Armada.

  2. Pilih ID armada yang berisi instance yang ingin Anda akses.

  3. Pada halaman detail armada, pilih tab Instans untuk melihat semua instans komputasi untuk armada.

  4. Pilih instance yang ingin Anda sambungkan, lalu pilih Hubun gkan. Ini menampilkan dialog Connect to instance yang memberi tahu Anda tentang detail koneksi, dan memungkinkan Anda untuk melihat skrip yang akan digunakan untuk terhubung ke instance Anda. Konfirmasikan dengan memilih Connect lagi.

  5. Dalam dialog koneksi, pilih J alankan untuk membuat sesi SSM baru. Sistem mengautentikasi sesi Anda melalui AWS Key Management Service (AWS KMS) dan membuka terminal di browser Anda.

catatan

Console-based akses jarak jauh tersedia untuk armada yang menjalankan server SDK versi 5.x. Untuk armada yang menjalankan versi SDK sebelumnya, gunakan metode AWS CLI yang dijelaskan di bagian berikut.

Akses jarak jauh dengan AWS CLI

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

Kumpulkan data instans

Untuk menyambung ke instans armada EC2 terkel Amazon GameLift Servers ola, Anda memerlukan informasi berikut:

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

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

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

  1. Dapatkan nama komputasi. Dapatkan daftar semua komputasi aktif di armada. Panggil list-compute dengan ID armada atau ARN. Untuk armada satu lokasi, tentukan pengidentifikasi armada saja. Untuk armada multi-lokasi, tentukan pengenal armada dan lokasi. Dengan armada EC2 terkelola, list-compute mengembalikan daftar instance armada, dan propertinya 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 Server SDK adalah properti build.

    1. Panggil describe-fleet-properties dengan 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.

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

Sambungkan ke instance (server SDK 5)

Jika instans yang ingin Anda sambungkan menjalankan build game dengan SDK server versi 5.x, sambungkan ke instans menggunakan Amazon EC2 Systems Manager (SSM). Anda dapat mengakses instans jarak jauh yang menjalankan Windows atau Linux. Untuk armada kontainer, setelah terhubung ke instance, Anda dapat mengakses kontainer individual yang berjalan di atasnya. Untuk informasi selengkapnya, lihat Connect ke kontainer.

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 Pengelola Sesi untuk AWS CLI di Panduan Pengguna Amazon EC2 Systems Manager.

  1. Minta kredentif akses untuk instance. Panggil get-compute-access dengan ID armada dan nama komputasi untuk instance yang ingin Anda sambungkan. Amazon GameLift Serversmengembalikan satu set kredenSIAL sementara untuk mengakses instance. 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 kredenSIAL akses (opsional). Anda dapat mengekspor kredenSIAL ke variabel lingkungan dan menggunakannya untuk mengonfigurasi AWS CLI untuk pengguna default. Untuk detail selengkapnya, lihat Variabel lingkungan untuk mengkonfigurasi AWS CLI di 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. Hubungkan 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 Mem ulai sesi (AWS CLI) di Panduan Pengguna Amazon EC2 Systems Manager.

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

Menghubungkan ke instance (server SDK 4.x atau versi sebelumnya)

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

  1. Minta kredentif akses untuk instance. Bila Anda memiliki ID instance, gunakan perintah get-instance-access untuk meminta kredenSIAL akses. Jika berhasil, Amazon GameLift Servers mengembalikan sistem operasi instans, alamat IP, dan satu set kredenSIAL (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 instance Linux — Untuk terhubung ke instance Linux, SSH memerlukan nama pengguna dan kunci pribadi. Amazon GameLift Serversmengeluarkan kunci pribadi RSA dan mengembalikannya sebagai string tunggal, dengan karakter baris baru (\n) menunjukkan jeda baris. Untuk membuat kunci pribadi dapat digunakan, lakukan langkah-langkah ini: (1) konversi string ke .pem file, dan (2) atur 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 menghasilkan .pem file dengan memasukkan 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 instance di armada Amazon GameLift Servers melalui port mana 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 terjebak, buat kembali 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

Setelah terhubung ke instance armada, Anda memiliki akses pengguna dan administratif penuh. Ini berarti Anda juga memiliki kemampuan untuk menyebabkan kesalahan atau kegagalan dengan hosting game. Jika instans tersebut menghosting game dengan pemain aktif, Anda mungkin berisiko mengalami crash sesi game dan menjatuhkan pemain, atau mengganggu proses penutupan game yang dapat menyebabkan kesalahan dalam data dan log game yang disimpan.

Untuk armada kontainer, setelah mengakses kontainer (lihatConnect ke kontainer), lokasi file berikut berlaku dalam sistem file kontainer. Untuk armada EC2, lokasi file ini berlaku langsung pada instans.

Cari sumber daya ini pada instance hosting:

  • File pembuatan game. File-file ini adalah build game yang Anda unggahAmazon GameLift Servers. Mereka mencakup satu atau lebih file eksekusi server game, 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.

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

  • Konfigurasi runtime. Jangan mengakses konfigurasi runtime untuk instans individual. Untuk membuat perubahan pada properti konfigurasi runtime, perbarui konfigurasi runtime armada (lihat operasi AWS SDK UpdateRuntimeConfiguration atau konfigurasi AWS CLI update-run time-).

  • 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/