Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagaimana wadah bekerja di GameLift Server Amazon
Amazon GameLift ServersArmada kontainer dirancang untuk memberi Anda fleksibilitas dalam cara Anda menerapkan dan menskalakan aplikasi kontainer Anda. Ini menggunakan Amazon Elastic Container Service (Amazon ECS) untuk mengelola penyebaran dan eksekusi tugas untuk armada AndaAmazon GameLift Servers. Topik ini menjelaskan elemen struktural dasar untuk menjalankan kontainer pada armada yang Amazon GameLift Servers dikelola, menggambarkan arsitektur umum, dan menguraikan beberapa konsep inti.
Percepat orientasi dengan alat berikut untuk wadah terkelola:
-
Kit starter kontainer mer
ampingkan integrasi dan pengaturan armada. Ini menambahkan fitur manajemen sesi game penting ke server game Anda, dan menggunakan templat yang telah dikonfigurasi sebelumnya untuk membangun armada kontainer dan pipeline penerapan otomatis untuk server game Anda. Setelah penerapan, gunakan Amazon GameLift Servers konsol dan alat API untuk memantau kinerja armada, mengelola sesi game, dan menganalisis metrik. -
Untuk pengembang Unreal Engine atau Unity, gunakan Amazon GameLift Servers plugin
untuk mengintegrasikan server game Anda dan membangun armada kontainer dari dalam lingkungan pengembangan mesin game Anda. Alur kerja terpandu plugin membantu Anda membuat solusi cepat dan sederhana dengan hosting berbasis cloud menggunakan wadah terkelola. Kemudian bangun di atas fondasi ini untuk membuat solusi hosting khusus untuk game Anda.
Komponen armada kontainer
- Armada
Armada kontainer adalah kumpulan instans Amazon EC2 untuk meng-host server game kontainer Anda. Instans ini dikelola oleh Amazon GameLift Servers atas nama Anda. Saat Anda membuat armada, Anda mengonfigurasi bagaimana arsitektur kontainer dengan perangkat lunak server game Anda diterapkan ke setiap instance armada. Anda dapat membuat armada kontainer dengan instance di satu atau beberapa lokasi geografis. Anda dapat menggunakan alat Amazon GameLift Servers penskalaan untuk secara otomatis menskalakan kapasitas armada kontainer untuk menjadi tuan rumah sesi permainan dan pemain.
- Instans
Instans Amazon EC2 adalah server virtual yang menyediakan kapasitas komputasi untuk hosting game. DenganAmazon GameLift Servers, Anda dapat memilih dari berbagai jenis instance. Setiap jenis instance menawarkan kombinasi CPU, memori, penyimpanan, dan kapasitas jaringan yang berbeda.
Saat Anda membuat armada kontainer, Amazon GameLift Servers gunakan kontainer berdasarkan jenis instans yang Anda pilih dan konfigurasi armada Anda. Setiap instance armada yang digunakan identik dan menjalankan perangkat lunak server game kontainer Anda dengan cara yang sama. Jumlah instance dalam armada menentukan ukuran armada dan kapasitas hosting game.
- Grup kontainer
Amazon GameLift Serversmenggunakan konsep grup kontainer untuk menggambarkan dan mengelola satu set kontainer. Grup kontainer mirip dengan wadah “tugas” atau “pod”. Dalam setiap grup kontainer, Anda dapat menentukan bagaimana kontainer berperilaku, mengatur dependensi, dan berbagi sumber daya CPU dan memori yang tersedia.
Setiap instance armada dapat memiliki jenis grup kontainer berikut:
-
Grup kontainer server game mengelola kontainer yang menjalankan aplikasi server game Anda dan perangkat lunak pendukung. Armada kontainer harus memiliki salah satu dari jenis grup kontainer ini untuk menjadi tuan rumah sesi permainan dan pemain. Grup kontainer server game dapat direplikasi di seluruh instance armada. Jumlah replika grup server game per instance armada tergantung pada persyaratan komputasi perangkat lunak Anda dan sumber daya komputasi yang tersedia di instans.
Grup kontainer per instans, yang bersifat opsional, memberi Anda kemampuan untuk menjalankan perangkat lunak tambahan pada setiap instance armada. Mereka berguna untuk menjalankan layanan latar belakang atau program utilitas, seperti untuk pemantauan. Perangkat lunak server game Anda tidak secara langsung bergantung pada proses dalam grup per instans. Hanya satu salinan grup kontainer per instans yang digunakan untuk setiap instance armada.
Setiap kelompok kontainer dalam armada kontainer memiliki satu kontainer yang ditunjuk “esensial”. Wadah penting mendorong siklus hidup grup kontainer. Jika wadah esensial gagal, seluruh grup kontainer dimulai ulang.
-
- Kontainer
Wadah adalah elemen paling dasar dari arsitektur berbasis wadah. Ini termasuk gambar kontainer dengan perangkat lunak yang dapat dieksekusi dan file dependen. Tentukan wadah untuk mengkonfigurasi bagaimana perangkat lunak berjalan dan berinteraksi dengannyaAmazon GameLift Servers.
Amazon GameLift Serversmendefinisikan dua jenis wadah:
-
W adah server game mencakup semua yang Anda butuhkan untuk menjalankan proses server game Anda dan menyelenggarakan sesi game untuk pemain. Ini termasuk build server game Anda dan perangkat lunak dependen. Tentukan satu wadah server game untuk grup kontainer server game armada. Wadah server game secara otomatis dianggap penting untuk grup kontainer.
-
Kontainer dukungan menjalankan perangkat lunak tambahan untuk mendukung server game Anda. Ini mirip dengan konsep wadah “sidecar”. Ini memberi Anda opsi untuk menjalankan dan menskalakan perangkat lunak pendukung di samping server game Anda tetapi mengelola sebagai wadah terpisah. Dalam grup kontainer server game, Anda dapat menentukan nol atau lebih wadah dukungan. Dalam grup kontainer per instans, semua kontainer adalah wadah pendukung. Wadah dukungan apa pun dapat ditetapkan penting.
-
- Hitung
Komputasi mewakili salinan grup kontainer server game pada instance armada.
Arsitektur umum
Diagram berikut menggambarkan struktur armada kontainer paling sederhana. Dalam struktur ini, setiap instance dalam armada mempertahankan satu salinan grup kontainer server game. Grup kontainer memiliki wadah server game tunggal yang menjalankan satu proses server game. Dalam contoh ini, armada kontainer dikonfigurasi untuk menempatkan satu salinan grup kontainer server game per instance. Dengan arsitektur ini, setiap instance menjalankan satu proses server game.
Diagram kedua ini menggambarkan arsitektur armada kontainer yang lebih kompleks. Dalam struktur ini, armada memiliki grup kontainer server game dan grup kontainer per-instance. Grup wadah server game memiliki wadah terpisah untuk proses server game dan proses dukungan. Armada dikonfigurasi untuk menempatkan tiga salinan grup kontainer server game pada setiap instance armada. Grup kontainer per instans tidak pernah direplikasi. Dalam contoh ini, armada kontainer dikonfigurasi untuk menempatkan tiga salinan grup kontainer server game per instance. Dengan arsitektur ini, setiap instance menjalankan tiga proses server game.
Fitur inti
Bagian ini merangkum bagaimana Amazon GameLift Servers menerapkan beberapa konsep wadah dasar. Untuk petunjuk tentang cara bekerja dengan armada kontainer, lihat topik yang relevan dalam panduan ini.
Pembaruan armada aktif
Container terkelola menyediakan dukungan lanjutan untuk membantu Anda mengelola siklus hidup perangkat lunak dan arsitektur kontainer yang dihosting. Anda dapat memperbarui definisi kontainer, termasuk gambar kontainer, dan menerapkan perubahan ke armada yang ada. Fitur ini membuatnya lebih cepat dan lebih mudah untuk mengulangi perubahan pada wadah Anda selama pengembangan. Ini juga menyediakan fitur untuk membantu Anda membangun, menerapkan, dan melacak pembaruan versi perangkat lunak Anda dari waktu ke waktu. Fitur ini mencakup:
-
Kelola pembaruan definisi grup kontainer dan pembuatan versi. Anda dapat memperbarui hampir semua properti definisi grup kontainer, termasuk gambar kontainer dan pengaturan konfigurasi. Setiap kali Anda memperbarui wadah, Amazon GameLift Servers secara otomatis menetapkan nomor versi untuk pembaruan dan secara default mempertahankan semua versi. Anda dapat mengakses versi tertentu, dan Anda dapat menghapus versi sesuai keinginan. Saat membuat armada kontainer, Anda dapat menentukan definisi grup kontainer dan versi yang akan digunakan.
-
Perbarui armada kontainer yang ada dengan definisi grup kontainer baru dan pengaturan konfigurasi. Anda dapat menerapkan pembaruan kontainer ke armada yang sudah diterapkan ke instans armada. Anda dapat melacak status penerapan pembaruan di setiap lokasi armada menggunakan Konsol Manajemen AWS atau AWS SDK dan CLI.
-
Konfigurasikan bagaimana Anda ingin pembaruan armada diterapkan di seluruh armada aktif.
-
Perlindungan sesi permainan. Pilih untuk melindungi instance armada dengan sesi game aktif hingga sesi game berakhir (penerapan aman). Atau pilih untuk mengganti instance armada terlepas dari aktivitas sesi game (penyebaran tidak aman). Gunakan penerapan yang tidak aman selama fase pengembangan dan pengujian untuk mengurangi waktu penerapan.
-
Persentase sehat minimum. Tentukan persentase tugas sehat yang ingin Anda pertahankan selama penerapan. Fitur ini memungkinkan Anda memutuskan berapa banyak instans armada yang terpengaruh selama penerapan. Nilai rendah memprioritaskan kecepatan penerapan, sementara nilai tinggi memastikan bahwa ketersediaan server game tetap tinggi selama penerapan.
-
Strategi kegagalan penerapan. Putuskan tindakan apa yang harus diambil jika penerapan gagal. Kegagalan penerapan berarti bahwa beberapa kontainer yang diperbarui telah gagal memeriksa status dan dianggap terganggu. Anda dapat mengatur penerapan untuk mengembalikan semua instans armada secara otomatis ke status yang digunakan sebelumnya. Atau Anda dapat memilih untuk mempertahankan beberapa instance armada yang rusak untuk digunakan dalam debugging.
-
Kemampuan untuk memperbarui armada aktif sangat berguna ketika Anda ingin menerapkan pembaruan ke perangkat lunak server game Anda. Setelah Anda membuat image kontainer baru untuk server game Anda, penerapannya adalah proses dua langkah: pertama, perbarui definisi grup kontainer dengan gambar baru, dan kedua, perbarui armada kontainer. Amazon GameLift Serversmenangani semua tugas lain sesuai kebutuhan.
Kemasan kontainer
Saat mengembangkan struktur kontainer Anda untuk penerapan dalam armada kontainer, tujuan umum adalah mengoptimalkan penggunaan daya komputasi yang tersedia. Untuk mencapai tujuan ini, Anda ingin mengemas sebanyak mungkin grup kontainer server game ke setiap instance armada.
Amazon GameLift Serversmembantu Anda melakukan ini dengan menghitung grup kontainer server game maksimum per instance, berdasarkan informasi berikut:
-
Jenis instance armada dan sumber daya vCPU dan memori.
-
Persyaratan vCPU dan memori untuk semua wadah dalam grup wadah server game.
Persyaratan vCPU dan memori untuk semua wadah dalam grup kontainer per instans, jika ada.
Saat Anda membuat armada kontainer, Anda dapat menggunakan maksimum yang dihitung atau Anda dapat menentukan nomor yang diinginkan. Sebagai praktik terbaik, rencanakan untuk bereksperimen dengan perangkat lunak server game kontainer Anda untuk menentukan persyaratan sumber daya untuk kinerja server game yang optimal.
Penskalaan kapasitas
Kapasitas armada mengukur jumlah sesi permainan yang dapat menjadi tuan rumah armada secara bersamaan. Anda juga dapat mengukur kapasitas berdasarkan jumlah pemain bersamaan yang dapat didukung oleh armada. Untuk menambah atau mengurangi kapasitas hosting armada, Anda menambahkan atau menghapus instans armada.
Armada kontainer dikonfigurasi untuk menjalankan sejumlah proses server game bersamaan tertentu pada setiap instance armada. (Anda dapat menghitung ini berdasarkan (1) grup wadah server game per instance dan (2) jumlah proses server game yang berjalan di setiap grup kontainer.) Jumlah server game bersamaan per instans memberi tahu Anda apa dampak penambahan atau penghapusan setiap instance armada. Misalnya, jika armada kontainer Anda menjalankan 1 proses server game di setiap grup kontainer server game, dan setiap instance armada menampung 100 grup kontainer server game, Anda meningkatkan atau mengurangi kapasitas armada Anda untuk menyelenggarakan sesi game bersamaan dengan penambahan 100. Jika setiap sesi permainan memiliki 10 slot pemain, maka Anda meningkatkan atau mengurangi kapasitas armada Anda untuk menampung pemain dengan penambahan 1000.
Dengan armada kontainer, Anda dapat menggunakan salah satu metode penskalaan kapasitas yang disediakan olehAmazon GameLift Servers. Ini termasuk:
-
Tetapkan kapasitas armada secara manual dengan mengatur jumlah instance armada yang diinginkan.
-
Siapkan penskalaan otomatis dengan menargetkan buffer yang diinginkan dari instans yang tersedia (pelacakan target). Metode ini secara otomatis mempertahankan sejumlah sumber daya hosting idle sehingga pemain yang masuk dapat masuk ke game dengan cepat. Ketika permintaan pemain meningkat atau berkurang, ukuran buffer ini terus disesuaikan.
-
Siapkan penskalaan otomatis dengan aturan penskalaan khusus (fitur lanjutan). Metode ini memungkinkan Anda menskalakan berdasarkan metrik armada yang Anda pilih.
Kon client/server eksi permainan
Dengan arm Amazon GameLift Servers ada terkelola, klien game terhubung langsung ke server game yang di-host cloud Anda. Ketika klien game meminta untuk bergabung dengan game, Amazon GameLift Servers menemukan sesi game dan memberikan informasi koneksi (IP dan port) ke klien game. Anda dapat mengontrol akses eksternal ke instans armada dengan membuka rentang port tertentu (izin masuk) untuk armada. Izin masuk menentukan port mana yang terbuka untuk lalu lintas masuk. Anda dapat dengan cepat mematikan semua port, membatasi beberapa, atau membuka semua port.
Armada kontainer terkelola memerlukan pengaturan tambahan yang memungkinkan akses ke proses yang berjalan dalam wadah. Saat Anda membuat definisi kontainer, Anda menentukan satu set port, satu untuk setiap proses yang mengambil koneksi. Hal ini mencakup:
-
Semua proses server game yang akan berjalan secara bersamaan di wadah server game. Semua proses server game harus memungkinkan klien game untuk terhubung untuk bergabung dengan sesi game.
-
Setiap proses dalam wadah dukungan yang perlu dihubungkan oleh sumber eksternal. Misalnya, Anda dapat terhubung dari jarak jauh ke aplikasi pengujian.
Saat Anda mengatur pengaturan port kontainer yang menghadap ke internal, gunakan pengaturan tersebut Amazon GameLift Servers untuk menghitung izin masuk yang menghadap ke eksternal yang dapat dihubungkan oleh klien game dan aplikasi lain. Amazon GameLift Serversjuga mengelola pemetaan antara izin masuk dan port kontainer individu yang memberi pemain akses ke sesi game dalam wadah. Pemetaan internal ini memberikan lapisan keamanan dengan melindungi server game Anda dari akses langsung ke port kontainer. Anda memiliki opsi untuk menyesuaikan pengaturan port eksternal armada sesuai kebutuhan. Untuk informasi selengkapnya tentang pengaturan port armada kontainer secara manual, lihatKonfigurasikan koneksi jaringan.
Anda dapat mengubah pengaturan port armada kontainer kapan saja. Perubahan ini memerlukan penyebaran pembaruan armada.
Diagram berikut menggambarkan peran koneksi pelabuhan di seluruh armada kontainer. Seperti yang ditunjukkan, Anda menetapkan port pada masing-masing kontainer, dan Amazon GameLift Servers menggunakan informasi ini untuk mengonfigurasi port yang cukup pada instance armada untuk dipetakan ke setiap port kontainer. Baik izin masuk instans yang menghadap ke eksternal maupun port koneksi yang menghadap ke internal dihitung berdasarkan armada Anda, kecuali jika Anda memilih Amazon GameLift Servers untuk menyetelnya secara manual.
Pencatatan kontainer
Dalam armada kontainer terkelola, aliran keluaran standar (dan kesalahan standar) ditangkap untuk semua kontainer. Ini termasuk log sesi game server game Anda. Anda dapat mengonfigurasi armada kontainer untuk menggunakan salah satu dari beberapa opsi untuk menangani aliran keluaran:
-
Simpan output kontainer sebagai aliran CloudWatch log Amazon. Setiap aliran log mereferensikan ID armada dan kontainer. Jika Anda memilih opsi pencatatan ini untuk armada, Anda menentukan grup CloudWatch log, yang mengatur semua aliran log dari armada. Anda kemudian dapat menggunakan CloudWatch fitur untuk mencari dan menganalisis data log sesuai kebutuhan.
-
Simpan output kontainer ke bucket penyimpanan Amazon Simple Storage Service (Amazon S3). Anda dapat melihat, berbagi, atau mengunduh konten sesuai kebutuhan.
Matikan logging. Dalam skenario ini, output kontainer tidak disimpan.
Amazon GameLift Serversmengirimkan data log dari armada kontainer terkelola ke CloudWatch atau layanan Amazon S3 di AWS akun Anda. Untuk melihat data Anda, gunakan alat Konsol Manajemen AWS atau alat lainnya dengan masuk ke AWS akun Anda dan bekerja dengan layanan individual. Anda memperluas akses terbatas Amazon GameLift Servers untuk mengambil tindakan ini dengan membuat peran layanan untuk armada kontainer Anda.
Anda dapat mengubah konfigurasi logging armada kontainer kapan saja. Perubahan ini memerlukan penyebaran pembaruan armada.
Armada kontainer dan GameLift Server Amazon Agen
Arsitektur kontainer yang umum digunakan menjalankan satu proses di setiap wadah. Dalam armada Amazon GameLift Servers kontainer, grup kontainer server game memiliki satu wadah server game, yang menjalankan satu proses server game. Dengan arsitektur ini, Amazon GameLift Servers mengelola siklus hidup proses server game tunggal di setiap grup kontainer server game pada instance armada.
Jika Anda memilih untuk membangun arsitektur kontainer yang menjalankan beberapa proses server game di setiap grup kontainer server game, Anda memerlukan cara untuk mengelola siklus hidup semua proses. Ini termasuk tugas-tugas seperti memulai, mematikan, dan mengganti proses sesuai kebutuhan, mengelola sejumlah proses yang diinginkan untuk dijalankan secara bersamaan, dan menangani status kegagalan.
Anda dapat memilih untuk menggunakan Amazon GameLift Servers Agen untuk tugas-tugas ini. Untuk armada kontainer, Agen mengimplementasikan instruksi runtime yang menentukan eksekusi mana yang akan dijalankan (dan berapa banyak), menyediakan parameter peluncuran, dan menetapkan aturan seputar aktivasi server game. Misalnya, instruksi runtime mungkin memberitahu Agen untuk mempertahankan sepuluh proses server game untuk penggunaan produksi, dan satu proses server game dengan parameter peluncuran khusus untuk pengujian.
Untuk menggunakan Agen dengan armada kontainer Anda, tambahkan Agen ke image kontainer Anda dan sertakan serangkaian instruksi runtime. Untuk informasi lebih lanjut tentang Agen, lihatBekerja dengan Amazon GameLift Servers Agen.