Mengelola sumber daya menggunakan AWS CloudFormation - Amazon GameLift

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

Mengelola sumber daya menggunakan AWS CloudFormation

Anda dapat menggunakan AWS CloudFormation untuk mengelola GameLift sumber daya Amazon Anda. Masuk AWS CloudFormation, Anda membuat templat yang mendasari setiap sumber daya dan kemudian menggunakan templat tersebut untuk membuat sumber daya Anda. Untuk memperbarui sumber daya, Anda membuat perubahan pada templat Anda dan menggunakan AWS CloudFormation untuk menerapkan pembaruan. Anda dapat mengatur sumber daya Anda ke dalam grup logika, yang disebut tumpukan dan set tumpukan.

Menggunakan AWS CloudFormation untuk mempertahankan sumber daya GameLift hosting Amazon Anda menawarkan cara yang lebih efisien untuk mengelola kumpulan AWS sumber daya. Anda dapat menggunakan kontrol versi untuk melacak perubahan templat dari waktu ke waktu dan mengkoordinasikan pembaruan yang dibuat oleh beberapa anggota tim. Anda juga dapat menggunakan kembali templat. Misalnya, saat men-deploy game di beberapa Wilayah, Anda mungkin menggunakan templat yang sama untuk membuat sumber daya yang sama di setiap Wilayah. Anda juga dapat menggunakan templat ini untuk men-deploy set sumber daya yang sama di partisi lain.

Untuk informasi selengkapnya tentang AWS CloudFormation, lihat AWS CloudFormationPanduan Pengguna . Untuk melihat informasi template untuk GameLift sumber daya Amazon, lihat referensi jenis GameLift sumber daya Amazon.

Praktik terbaik

Untuk panduan terperinci tentang penggunaanAWS CloudFormation, lihat praktik AWS CloudFormation terbaik dalam Panduan AWS CloudFormation Pengguna. Selain itu, praktik terbaik ini memiliki relevansi khusus dengan AmazonGameLift.

  • Kelola sumber daya Anda secara konsisten. AWS CloudFormation Jika Anda mengubah sumber daya Anda di luar sumber daya AWS CloudFormation Anda akan keluar dari sinkron dengan template sumber daya Anda.

  • Gunakan AWS CloudFormation tumpukan dan set tumpukan untuk mengelola beberapa sumber daya secara efisien.

    • Gunakan tumpukan untuk mengelola grup sumber daya yang terhubung. Misalnya, tumpukan yang berisi build, armada yang mereferensikan build, dan alias yang mereferensikan armada. Jika Anda memperbarui template Anda untuk mengganti build, AWS CloudFormation gantikan armada yang terhubung ke build. AWS CloudFormationkemudian memperbarui alias yang ada untuk menunjuk ke armada baru. Untuk informasi selengkapnya, lihat Bekerja dengan tumpukan di Panduan AWS CloudFormation Pengguna.

    • Gunakan set tumpukan AWS CloudFormation jika Anda men-deploy tumpukan identik di beberapa wilayah atau akun AWS. Untuk informasi selengkapnya, lihat Bekerja dengan set tumpukan di AWS CloudFormationUser Guide.

  • Jika Anda menggunakan Instans Spot, sertakan Armada Sesuai Permintaan sebagai cadangan. Kami sarankan Anda mengatur templat Anda dengan dua armada di setiap wilayah, satu armada dengan Instans Spot, dan satu armada dengan Instans Sesuai Permintaan.

  • Kelompokkan sumber daya spesifik lokasi dan sumber daya global Anda ke tumpukan terpisah saat Anda mengelola sumber daya di beberapa lokasi.

  • Tempatkan sumber daya global Anda dekat dengan layanan yang menggunakannya. Sumber daya seperti antrian dan konfigurasi perjodohan cenderung menerima permintaan volume tinggi dari sumber tertentu. Dengan menempatkan sumber daya Anda dekat dengan sumber permintaan tersebut, Anda meminimalkan waktu perjalanan permintaan dan dapat meningkatkan kinerja secara keseluruhan.

  • Tempatkan konfigurasi perjodohan Anda di Wilayah yang sama dengan antrean sesi game yang digunakannya.

  • Buat alias terpisah untuk setiap armada di tumpukan.

Menggunakan AWS CloudFormation tumpukan

Kami merekomendasikan struktur berikut untuk digunakan saat menyiapkan AWS CloudFormation tumpukan untuk GameLift sumber daya Amazon. Struktur tumpukan optimal Anda bervariasi tergantung pada apakah Anda menerapkan game Anda di satu lokasi atau beberapa lokasi.

Tumpukan untuk satu lokasi

Untuk mengelola GameLift sumber daya Amazon di satu lokasi, kami merekomendasikan struktur dua tumpukan:

  • Tumpukan dukungan - Tumpukan ini berisi sumber daya yang bergantung pada GameLift sumber daya Amazon Anda. Minimal, tumpukan ini harus menyertakan bucket S3 tempat Anda menyimpan server game kustom atau file skrip Realtime. Tumpukan juga harus menyertakan peran IAM yang memberikan GameLift izin Amazon untuk mengambil file Anda dari bucket S3 saat membuat sumber daya GameLift build atau skrip Amazon. Tumpukan ini mungkin juga berisi sumber daya AWS yang digunakan dengan game Anda, seperti tabel DynamoDB, klaster Amazon Redshift, dan fungsi Lambda.

  • Amazon GameLift stack - Tumpukan ini berisi semua GameLift sumber daya Amazon Anda, termasuk build atau skrip, satu set armada, alias, dan antrean sesi game. AWS CloudFormationmembuat sumber daya build atau skrip dengan file yang disimpan di lokasi bucket S3 dan menyebarkan build atau skrip ke satu atau lebih sumber daya armada. Setiap armada harus memiliki alias yang sesuai. Antrean sesi game mereferensi beberapa atau seluruh alias armada. Jika Anda menggunakan FlexMatch untuk perjodohan, tumpukan ini juga berisi konfigurasi perjodohan dan set aturan.

Diagram di bawah menggambarkan struktur dua tumpukan untuk men-deploy sumber daya dalam satu Wilayah AWS.

Diagram menunjukkan dua tumpukan AWS CloudFormation. Satu berisi GameLift sumber daya Amazon, dan yang lainnya berisi sumber daya yang mendukungGameLift. Tumpukan terakhir ini mencakup bucket S3 yang digunakan untuk menyimpan file build atau skrip dan peran IAM yang GameLift memungkinkan Amazon mengambil file dari bucket S3.

Tumpukan untuk beberapa wilayah

Ketika men-deploy game Anda di lebih dari satu Wilayah, perlu diingat bagaimana sumber daya dapat berinteraksi di seluruh Wilayah. Beberapa sumber daya, seperti GameLift armada Amazon, hanya dapat mereferensikan sumber daya lain di Wilayah yang sama. Sumber daya lain, seperti GameLift antrian Amazon, adalah Region agnostik. Untuk mengelola GameLift sumber daya Amazon di beberapa Wilayah, kami merekomendasikan struktur berikut.

  • Tumpukan dukungan regional — Tumpukan ini berisi sumber daya yang bergantung pada sumber GameLift daya Amazon Anda. Tumpukan ini harus mencakup bucket S3 di mana Anda menyimpan server game kustom atau file skrip Realtime. Ini mungkin juga berisi sumber daya AWS untuk game Anda, seperti tabel DynamoDB, klaster Amazon Redshift, dan fungsi Lambda. Banyak dari sumber daya ini adalah khusus Wilayah, sehingga Anda harus membuat sumber daya di setiap Wilayah. Amazon GameLift juga memerlukan peran IAM yang memungkinkan akses ke sumber daya dukungan ini. Karena IAM role adalah agnostik Wilayah, Anda hanya perlu satu sumber daya peran, ditempatkan di setiap Wilayah dan direferensikan dalam semua tumpukan dukungan lainnya.

  • GameLiftTumpukan Amazon Regional —Tumpukan ini berisi GameLift sumber daya Amazon yang harus ada di setiap wilayah tempat game Anda digunakan, termasuk build atau skrip, satu set armada, dan alias. AWS CloudFormationmembuat sumber daya build atau skrip dengan file di lokasi bucket S3, dan menyebarkan build atau skrip ke satu atau lebih sumber daya armada. Setiap armada harus memiliki alias yang sesuai. Antrean sesi game mereferensi beberapa atau seluruh alias armada. Anda dapat mempertahankan satu templat untuk menggambarkan jenis tumpukan dan menggunakannya untuk membuat set identik sumber daya di setiap Wilayah.

  • Global Amazon GameLift stack - Tumpukan ini berisi antrean sesi game dan sumber daya perjodohan Anda. Sumber daya ini dapat ditemukan di Wilayah mana pun dan biasanya ditempatkan di Wilayah yang sama. Antrean dapat mereferensi armada atau alias yang terletak di Wilayah mana pun. Untuk menempatkan antrean tambahan di Wilayah yang berbeda, buat tumpukan global tambahan.

Diagram di bawah menggambarkan struktur dua tumpukan untuk men-deploy sumber daya dalam beberapa Wilayah AWS. Diagram pertama menunjukkan struktur untuk antrean sesi game tunggal. Diagram kedua menunjukkan struktur dengan beberapa antrean.

Diagram ini menunjukkan beberapa tumpukan AWS CloudFormation untuk tiga Wilayah. Tumpukan Support di setiap Wilayah berisi sumber daya dukungan seperti bucket S3. Salah satu tumpukan ini juga berisi peran IAM, yang dapat digunakan oleh Amazon GameLift untuk mengakses salah satu sumber daya dukungan terlepas dari Wilayah. GameLiftTumpukan Amazon regional berisi GameLift build atau skrip, armada, dan alias Amazon. GameLiftTumpukan Amazon global berisi sumber daya perjodohan dan antrean, yang dapat mereferensikan armada atau alias di beberapa Wilayah.
Diagram ini menunjukkan beberapa AWS CloudFormation tumpukan untuk tiga Wilayah, termasuk GameLift tumpukan Amazon global dengan antrean sesi game di dua Wilayah. Setiap antrian mereferensikan alias dari tumpukan Amazon regional. GameLift

Memperbarui build

Amazon GameLift membangun tidak berubah, seperti hubungan antara membangun dan armada. Akibatnya, ketika Anda memperbarui sumber daya hosting Anda untuk menggunakan satu set baru file build game, hal-hal berikut perlu terjadi:

  • Buat build baru menggunakan set file baru (pengganti).

  • Buat satu set armada baru untuk men-deploy build game baru (pengganti).

  • Alihkan alias untuk menunjuk ke armada baru (update tanpa gangguan).

Untuk informasi selengkapnya, lihat Memperbarui perilaku sumber daya tumpukan di Panduan AWS CloudFormation Pengguna.

Terapkan pembaruan build secara otomatis

Saat memperbarui tumpukan berisi sumber daya build, armada, dan alias terkait, perilaku default AWS CloudFormation adalah secara otomatis melakukan langkah-langkah ini secara berurutan. Anda memicu pembaruan ini dengan terlebih dahulu mengunggah file build baru ke lokasi S3 baru. Kemudian Anda memodifikasi templat build AWS CloudFormation Anda untuk menunjuk ke lokasi S3 baru. Ketika Anda memperbarui tumpukan Anda dengan lokasi S3 baru, ini memicu urutan AWS CloudFormation berikut:

  1. Mengambil file baru dari S3, memvalidasi file, dan membuat build Amazon baru. GameLift

  2. Memperbarui referensi build dalam templat armada, yang memicu pembuatan armada baru.

  3. Setelah armada baru aktif, update referensi armada dalam alias, yang memicu alias untuk memperbarui target armada baru.

  4. Menghapus armada lama.

  5. Menghapus build lama.

Jika antrean sesi game Anda menggunakan alias armada, lalu lintas pemain secara otomatis beralih ke armada baru segera setelah alias diperbarui. Armada lama secara bertahap ditinggalkan pemain saat sesi game berakhir. Penskalaan otomatis menangani tugas menambahkan dan menghapus instans dari setiap rangkaian armada saat lalu lintas pemain berfluktuasi. Atau, Anda dapat menentukan jumlah instans awal yang diinginkan untuk meningkatkan pengalihan dengan cepat dan mengaktifkan penskalaan otomatis nanti.

Anda juga dapat memiliki sumber daya AWS CloudFormation dipertahankan alih-alih menghapusnya. Untuk informasi selengkapnya, lihat RetainResources dalam Referensi API AWS CloudFormation.

Menyebarkan pembaruan build secara manual

Jika Anda ingin memiliki kontrol lebih atas kapan armada baru diluncurkan untuk pemain, Anda memiliki beberapa pilihan. Anda dapat memilih untuk mengelola alias secara manual menggunakan GameLift konsol Amazon atau CLI. Sebagai alternatif, alih-alih memperbarui templat build Anda untuk menggantikan build dan armada, Anda dapat menambahkan set kedua untuk definisi build dan armada ke templat Anda. Saat Anda memperbarui templat, AWS CloudFormation menciptakan sumber daya build kedua dan armada yang sesuai. Karena sumber daya yang ada tidak diganti, mereka tidak dihapus, dan alias tetap menunjuk ke armada asli.

Keuntungan utama pendekatan ini adalah pendekatan ini memberi Anda fleksibilitas. Anda dapat membuat sumber daya terpisah untuk versi baru build Anda, menguji sumber daya baru, dan mengontrol ketika armada baru diluncurkan ke pemain. Sebuah kelemahan potensial adalah bahwa dibutuhkan dua kali lebih banyak sumber daya di setiap Wilayah untuk jangka waktu singkat.

Diagram berikut menggambarkan prosesnya.

Diagram menunjukkan beberapa AWS CloudFormation tumpukan untuk tiga wilayah, termasuk tumpukan GameLift global Amazon dengan antrean sesi game di dua wilayah. Setiap antrian mereferensikan alias dari tumpukan regional AmazonGameLift.

Bagaimana rollback bekerja

Ketika menjalankan pembaruan sumber daya, jika langkah apapun tidak berhasil diselesaikan, AWS CloudFormation secara otomatis memulai rollback. Proses ini membalikkan setiap langkah secara berurutan, menghapus sumber daya yang baru dibuat.

Jika Anda perlu memicu rollback secara manual, ubah kunci lokasi S3 templat build kembali ke lokasi asli dan perbarui tumpukan Anda. GameLiftPembuatan dan armada Amazon baru dibuat, dan alias beralih ke armada baru setelah armada aktif. Jika Anda mengelola alias secara terpisah, Anda perlu mengalihkannya untuk menunjuk ke armada baru.

Untuk informasi selengkapnya tentang cara menangani rollback yang gagal atau macet, lihat Lanjutkan memutar kembali pembaruan di AWS CloudFormationPanduan Pengguna.