Menyeimbangkan layanan Amazon ECS di seluruh Availability Zone - Amazon Elastic Container Service

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

Menyeimbangkan layanan Amazon ECS di seluruh Availability Zone

Mulai 5 September 2025, Amazon ECS memungkinkan penyeimbangan kembali Availability Zone untuk semua layanan yang memenuhi syarat untuk fitur tersebut. Layanan memenuhi syarat ketika penyebaran Availability Zone adalah strategi penempatan tugas pertama, atau ketika tidak ada strategi penempatan.

Untuk membantu aplikasi Anda mencapai ketersediaan tinggi, kami sarankan untuk mengonfigurasi layanan multi-tugas Anda agar berjalan di beberapa Availability Zone. Untuk layanan yang menentukan strategi penempatan pertama mereka sebagai penyebaran Availability Zone, AWS lakukan upaya terbaik untuk mendistribusikan tugas layanan secara merata di seluruh Availability Zone yang tersedia.

Namun, mungkin ada kalanya jumlah tugas yang berjalan di satu Availability Zone tidak sama dengan Availability Zone lainnya, seperti setelah gangguan Availability Zone. Untuk mengatasi ketidakseimbangan tugas ini, Anda dapat mengaktifkan fitur penyeimbangan kembali Availability Zone.

Dengan penyeimbangan kembali Availability Zone, Amazon ECS terus memantau distribusi tugas di seluruh Availability Zone untuk setiap layanan Anda. Saat Amazon ECS mendeteksi distribusi tugas yang tidak merata, Amazon secara otomatis mengambil tindakan untuk menyeimbangkan kembali beban kerja di seluruh Availability Zone. Ini melibatkan peluncuran tugas baru di Availability Zones dengan tugas paling sedikit dan mengakhiri tugas di Availability Zone yang kelebihan beban.

Redistribusi ini memastikan tidak ada Availability Zone tunggal yang menjadi titik kegagalan, membantu menjaga ketersediaan keseluruhan aplikasi kontainer Anda. Proses penyeimbangan ulang otomatis menghilangkan kebutuhan akan intervensi manual, mempercepat waktu untuk pemulihan setelah suatu peristiwa.

Berikut ini adalah ikhtisar proses penyeimbangan kembali Availability Zone:

  1. Amazon ECS mulai memantau layanan setelah mencapai kondisi tunak, dan melihat jumlah tugas yang berjalan di setiap Availability Zone.

  2. Amazon ECS melakukan operasi berikut ketika mendeteksi ketidakseimbangan dalam jumlah tugas yang berjalan di setiap Availability Zone:

    • Mengirim acara layanan yang menunjukkan bahwa penyeimbangan kembali Availability Zone dimulai.

    • Memulai tugas di Availability Zones dengan jumlah tugas yang berjalan paling sedikit

    • Menghentikan tugas di Availability Zones dengan jumlah tugas yang berjalan terbesar.

    • Penjadwal menunggu tugas yang baru dimulai HEALTHY dan RUNNING sebelum menghentikan tugas di Availability Zone yang terlalu berskala.

    • Mengirim acara layanan dengan hasil penyeimbangan kembali Availability Zone.

Bagaimana Amazon ECS mendeteksi distribusi tugas yang tidak merata

Amazon ECS menentukan ketidakseimbangan dalam jumlah tugas yang berjalan di setiap Availability Zone dengan membagi jumlah tugas yang diinginkan layanan dengan jumlah Availability Zone yang dikonfigurasi. Jika jumlah tugas yang diinginkan tidak dibagi secara merata, Amazon ECS mendistribusikan sisa tugas secara merata di seluruh Availability Zone yang dikonfigurasi. Setiap Availability Zone harus memiliki setidaknya satu tugas.

Misalnya, pertimbangkan layanan Amazon ECS dengan hitungan dua tugas yang diinginkan yang dikonfigurasi untuk dua Availability Zone. Dalam skenario ini, jumlah tugas yang diinginkan terbagi secara merata. Distribusi yang seimbang akan menjadi satu tugas per Availability Zone. Jika ada dua tugas di Availability Zone 1 dan zero task di Availability Zone 2, Amazon ECS akan memulai rebalancing dengan memulai tugas di Availability Zone 2 sebelum menghentikan tugas di Availability Zone 1.

Sekarang, pertimbangkan layanan Amazon ECS dengan hitungan tiga tugas yang diinginkan yang dikonfigurasi untuk dua Availability Zone. Dalam skenario ini, jumlah tugas yang diinginkan tidak membagi secara merata. Distribusi yang seimbang akan menjadi satu tugas di Availability Zone 1 dan dua tugas di Availability Zone 2 karena setiap Availability Zone memiliki setidaknya satu tugas dan tugas sisanya ditempatkan di Availability Zone 2.

Pertimbangkan layanan Amazon ECS yang memiliki jumlah lima tugas yang diinginkan yang dikonfigurasi untuk tiga Availability Zone. Dalam skenario ini, jumlah tugas yang diinginkan tidak membagi secara merata. Distribusi yang seimbang akan menjadi satu tugas di Availability Zone 1 dan dua tugas masing-masing di Availability Zones 2 dan 3. Setelah memperhitungkan setiap Availability Zone yang masing-masing memiliki satu tugas, dua tugas yang tersisa didistribusikan secara merata di seluruh Availability Zone.

Pertimbangan untuk mengonfigurasi penyeimbangan kembali Availability Zone

Pertimbangkan hal berikut ketika Anda ingin mengonfigurasi penyeimbangan kembali Availability Zone:

  • Penyeimbangan kembali Availability Zone mendukung Fargate dan tipe peluncuran. EC2 Untuk Fargate, Amazon ECS akan secara otomatis mendistribusikan kembali tugas di seluruh Availability Zone yang tersedia untuk menjaga keseimbangan. Untuk jenis EC2 peluncuran, Amazon ECS menyeimbangkan kembali tugas di seluruh instans kontainer yang ada dengan upaya terbaik, dengan menghormati strategi dan batasan penempatan yang Anda tentukan. Namun, Amazon ECS tidak dapat meluncurkan instans baru di Availability Zone yang kurang dimanfaatkan sebagai bagian dari proses penyeimbangan kembali, sehingga membatasi penyeimbangan kembali ke instance container yang ada.

  • Penyeimbangan ulang Availability Zone berfungsi dalam konfigurasi berikut:

    • Layanan yang menggunakan Replica strategi

    • Layanan yang menentukan penyebaran Availability Zone sebagai strategi penempatan tugas pertama, atau tidak menentukan strategi penempatan.

  • Anda tidak dapat menggunakan penyeimbangan kembali Availability Zone dengan layanan yang memenuhi salah satu kriteria berikut:

    • Menggunakan Daemon strategi

    • Menggunakan tipe EXTERNAL peluncuran (ECS Anywhere)

    • Menggunakan 100% untuk maximumPercent nilainya

    • Menggunakan Classic Load Balancer

    • Menggunakan attribute:ecs.availability-zone sebagai kendala penempatan tugas

Strategi penempatan dan kendala penempatan dengan penyeimbangan kembali Availability Zone

Strategi penempatan menentukan cara Amazon ECS memilih instans kontainer dan Availability Zone untuk penghentian penempatan tugas. Kendala penempatan tugas adalah aturan yang menentukan apakah tugas diizinkan untuk dijalankan pada instance kontainer tertentu.

Untuk jenis EC2 peluncuran, Anda dapat menggunakan strategi penempatan dan batasan penempatan bersama dengan penyeimbangan kembali Availability Zone. Namun, agar penyeimbangan kembali Availability Zone berfungsi, strategi penempatan spread Availability Zone harus menjadi strategi pertama yang ditentukan.

Penyeimbangan kembali Availability Zone kompatibel dengan berbagai kombinasi strategi penempatan. Misalnya, Anda dapat membuat strategi yang pertama-tama mendistribusikan tugas secara merata di seluruh Availability Zone, lalu bin pack tugas berdasarkan memori dalam setiap Availability Zone. Dalam hal ini, penyeimbangan kembali Availability Zone berfungsi karena strategi penyebaran Availability Zone ditentukan terlebih dahulu.

Penting untuk dicatat bahwa penyeimbangan kembali Availability Zone tidak akan berfungsi jika strategi pertama dalam array strategi penempatan bukan komponen penyebaran Availability Zone. Persyaratan ini memastikan bahwa fokus utama distribusi tugas adalah menjaga keseimbangan di seluruh Availability Zone, yang sangat penting untuk ketersediaan tinggi.

Untuk informasi selengkapnya tentang strategi dan kendala penempatan tugas, lihat. Bagaimana Amazon ECS menempatkan tugas pada instans kontainer

Strategi penempatan tugas dan kendala tidak didukung untuk tugas yang menggunakan tipe peluncuran Fargate. Fargate akan mencoba yang terbaik untuk menyebarkan tugas di seluruh Availability Zone yang dapat diakses. Jika penyedia kapasitas mencakup Fargate dan Fargate Spot, perilaku spread bersifat independen untuk setiap penyedia kapasitas.

Contoh strategi berikut mendistribusikan tugas secara merata di seluruh Availability Zones, dan kemudian bin pack tugas berdasarkan memori dalam setiap Availability Zone. Penyeimbangan ulang Availability Zone kompatibel dengan layanan karena spread strateginya adalah yang pertama.

"placementStrategy": [ { "field": "attribute:ecs.availability-zone", "type": "spread" }, { "field": "memory", "type": "binpack" } ]

Aktifkan penyeimbangan kembali Availability Zone

Anda perlu mengaktifkan penyeimbangan kembali Availability Zone untuk layanan baru dan yang sudah ada.

Anda dapat mengaktifkan dan menonaktifkan penyeimbangan kembali Availability Zone menggunakan konsol,, APIs AWS CLI, dan. AWS CloudFormation

Perilaku default AvailabilityZoneRebalancing berbeda antara membuat dan memperbarui permintaan:

  • Untuk membuat permintaan layanan, bila tidak ada nilai yang ditentukanAvailabilityZoneRebalancing, Amazon ECS akan me-default nilainya ke. ENABLED

  • Untuk permintaan layanan pembaruan, jika tidak ada nilai yang ditentukanAvailabilityZoneRebalancing, Amazon ECS default ke nilai layanan yang ada. AvailabilityZoneRebalancing Jika layanan tidak pernah memiliki AvailabilityZoneRebalancing nilai yang ditetapkan, Amazon ECS memperlakukan ini sebagaiDISABLED.

Contoh berikut menunjukkan cara mengaktifkan penyeimbangan kembali layanan saat membuat layanan baru:

aws ecs create-service \ --cluster my-cluster \ --service-name my-service \ --task-definition my-task-definition:1 \ --desired-count 6 \ --availability-zone-rebalancing ENABLED

Pemecahan masalah penyeimbangan kembali layanan

Jika Anda mengalami masalah dengan penyeimbangan kembali layanan, pertimbangkan langkah-langkah pemecahan masalah berikut:

Penyeimbangan kembali tidak dimulai

Verifikasi bahwa:

Kegagalan penempatan tugas selama penyeimbangan kembali

Jika Anda melihat SERVICE_TASK_PLACEMENT_FAILURE acara:

  • Untuk jenis EC2 peluncuran: Periksa apakah Anda memiliki instance kontainer yang tersedia di Zona Ketersediaan target

  • Untuk jenis peluncuran Fargate: Periksa apakah ada kendala sumber daya atau kuota layanan yang membatasi penempatan tugas

  • Tinjau batasan penempatan tugas Anda untuk memastikan mereka tidak mencegah distribusi tugas yang tepat

Penyeimbangan kembali berhenti secara tak terduga

Jika Anda melihat SERVICE_REBALANCING_STOPPED acara:

  • Periksa perlindungan tugas yang mungkin menghalangi operasi

  • Cari penerapan layanan bersamaan yang dapat mengganggu penyeimbangan kembali

  • Tinjau peristiwa layanan untuk informasi tambahan tentang mengapa penyeimbangan kembali dihentikan

Praktik terbaik untuk penyeimbangan kembali layanan

Ikuti praktik terbaik ini untuk mendapatkan hasil maksimal dari penyeimbangan kembali layanan:

  • Memantau operasi penyeimbangan kembali - Siapkan CloudWatch alarm untuk memantau peristiwa layanan yang terkait dengan penyeimbangan kembali untuk mengidentifikasi masalah apa pun dengan cepat.

  • Pertimbangkan dampak kinerja - Sadarilah bahwa operasi penyeimbangan kembali dapat meningkatkan penggunaan sumber daya sementara saat tugas baru dimulai sebelum tugas lama dihentikan.

  • Gunakan perlindungan tugas secara strategis - Jika Anda memiliki tugas penting yang tidak boleh dihentikan selama penyeimbangan kembali, pertimbangkan untuk menggunakan perlindungan tugas.

  • Rencanakan EC2 kapasitas - Untuk jenis EC2 peluncuran, pastikan Anda memiliki instans kontainer yang cukup di semua Availability Zone untuk mendukung penyeimbangan kembali yang efektif.

  • Uji perilaku penyeimbangan kembali - Sebelum mengandalkan penyeimbangan kembali dalam produksi, uji bagaimana layanan Anda berperilaku selama operasi penyeimbangan kembali di lingkungan non-produksi.