View a markdown version of this page

Connect ke instance armada - Amazon GameLift Servers

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

Connect ke instance armada

Anda dapat terhubung dari jarak jauh ke EC2 Amazon GameLift Servers terkelola aktif atau instans armada kontainer terkelola untuk memecahkan masalah server game, memeriksa log, dan men-debug perilaku runtime. Connect 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 kredensyal. 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 EC2 Terkelola atau Kontainer 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 Connect. 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 Jalankan untuk membuat sesi SSM baru. Sistem mengotentikasi sesi Anda melalui AWS Key Management Service (AWS KMS) dan membuka terminal di browser Anda.

catatan

Akses jarak jauh berbasis konsol 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

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 layanan untuk. Amazon GameLift Servers

Kumpulkan data instance

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

  • ID dari 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 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.

      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. 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 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 Serversmengembalikan satu set kredensyal 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 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 Servers 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 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, 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 instance dalam Amazon GameLift Servers armada 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

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 menghosting game dengan pemain aktif, Anda mungkin berisiko menabrak sesi game dan menjatuhkan pemain, atau mengganggu proses shutdown 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 di dalam sistem file kontainer. Untuk armada EC2, lokasi file ini berlaku langsung pada instance.

Cari sumber daya ini pada instance hosting:

  • Game membangun file. File-file ini adalah game build yang Anda unggah. Amazon GameLift Servers 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.

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