Menjadwalkan kontainer Anda di Amazon ECS - Amazon Elastic Container Service

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

Menjadwalkan kontainer Anda di Amazon ECS

Amazon Elastic Container Service (Amazon ECS) adalah sistem konkurensi optimis status bersama yang menyediakan kemampuan penjadwalan fleksibel untuk beban kerja kontainer Anda. Penjadwal Amazon ECS menggunakan informasi status cluster yang sama dengan Amazon ECS API untuk membuat keputusan penempatan yang tepat.

Amazon ECS menyediakan penjadwal layanan untuk tugas dan aplikasi yang berjalan lama. Ini juga menyediakan kemampuan untuk menjalankan tugas mandiri atau tugas terjadwal untuk pekerjaan batch atau tugas lari tunggal. Anda dapat menentukan strategi dan kendala penempatan tugas untuk menjalankan tugas yang paling sesuai dengan kebutuhan Anda. Misalnya, Anda dapat menentukan apakah tugas berjalan di beberapa Availability Zone atau dalam Availability Zone tunggal. Dan, secara opsional, Anda dapat mengintegrasikan tugas dengan penjadwal kustom atau pihak ketiga Anda sendiri.

Penjadwal layanan

Penjadwal layanan cocok untuk layanan dan aplikasi stateless yang berjalan lama. Penjadwal layanan memastikan bahwa strategi penjadwalan yang Anda tentukan diikuti dan menjadwal ulang tugas ketika tugas gagal. Sebagai contoh, jika infrastruktur pokok gagal, penjadwal layanan dapat menjadwal ulang tugas.

Penjadwal layanan juga menggantikan tugas yang ditentukan tidak sehat setelah pemeriksaan kesehatan kontainer atau pemeriksaan kesehatan kelompok sasaran penyeimbang beban gagal. Penggantian ini tergantung pada parameter definisi maximumPercent dan desiredCount layanan. Jika tugas ditandai tidak sehat, penjadwal layanan akan memulai tugas pengganti terlebih dahulu. Jika tugas penggantian memiliki status kesehatanHEALTHY, penjadwal layanan menghentikan tugas yang tidak sehat. Jika tugas penggantian memiliki status kesehatanUNHEALTHY, penjadwal akan menghentikan tugas penggantian yang tidak sehat atau tugas tidak sehat yang ada untuk mendapatkan jumlah tugas total yang samadesiredCount. Jika maximumPercent parameter membatasi penjadwal untuk memulai tugas penggantian terlebih dahulu, penjadwal akan menghentikan tugas yang tidak sehat satu per satu secara acak untuk membebaskan kapasitas, dan kemudian memulai tugas pengganti. Proses start dan stop berlanjut sampai semua tugas yang tidak sehat diganti dengan tugas yang sehat. Setelah semua tugas yang tidak sehat telah diganti dan hanya tugas sehat yang berjalan, jika jumlah tugas total melebihidesiredCount, tugas sehat dihentikan secara acak hingga jumlah tugas total sama. desiredCount Untuk informasi selengkapnya tentang maximumPercent dandesiredCount, lihat Parameter definisi layanan.

catatan

Perilaku ini tidak berlaku untuk tugas yang dijalankan dan dikelola oleh layanan yang menggunakan jenis penerapan pembaruan bergulir. Selama pembaruan bergulir, penjadwal layanan pertama-tama menghentikan tugas yang tidak sehat dan kemudian memulai tugas penggantian.

Ada dua strategi penjadwal layanan yang tersedia:

  • REPLICAStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang diinginkan di seluruh cluster Anda. Secara default tugas tersebar di seluruh Availability Zone. Anda dapat menggunakan strategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatan tugas. Untuk informasi selengkapnya, lihat Replika.

  • DAEMON—Strategi penjadwalan daemon menerapkan tepat satu tugas pada setiap instance kontainer aktif yang memenuhi semua batasan penempatan tugas yang Anda tentukan di cluster Anda. Saat menggunakan strategi ini, tidak perlu menentukan jumlah tugas yang diinginkan, strategi penempatan tugas, atau menggunakan kebijakan Auto Scaling Layanan. Untuk informasi selengkapnya, lihat Daemon.

    catatan

    Tugas Fargate tidak mendukung strategi DAEMON penjadwalan.

Penjadwal layanan secara opsional juga memastikan bahwa tugas terdaftar terhadap penyeimbang beban Elastic Load Balancing. Anda dapat memperbarui layanan Anda yang dikelola oleh penjadwal layanan. Ini mungkin termasuk men-deploy ketentuan tugas baru atau mengubah jumlah tugas yang diinginkan yang sedang berjalan. Secara default, penjadwal layanan menyebar tugas di beberapa Availability Zone. Namun, Anda dapat menggunakan strategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatan tugas. Untuk informasi selengkapnya, lihat Layanan-layanan Amazon ECS.

Tugas mandiri

Anda dapat menjalankan tugas mandiri ketika Anda memiliki proses seperti pekerjaan batch yang melakukan pekerjaan dan kemudian berhenti. Misalnya, Anda dapat memiliki panggilan proses RunTask ketika pekerjaan masuk ke antrian. Tugas menarik pekerjaan dari antrean, melaksanakan pekerjaan, dan kemudian keluar. Menggunakan RunTask, Anda dapat mengizinkan strategi penempatan tugas default untuk mendistribusikan tugas secara acak di klaster Anda. Hal ini meminimalkan kemungkinan instans tunggal mendapatkan jumlah tugas yang tidak proporsional. Kalau tidak, Anda dapat menggunakan RunTask untuk menyesuaikan bagaimana penjadwal menempatkan tugas menggunakan strategi dan kendala penempatan tugas.

Penjadwal kustom

Dengan Amazon ECS, Anda dapat membuat penjadwal sendiri atau menggunakan penjadwal pihak ketiga. Untuk informasi selengkapnya, lihat Cara membuat penjadwal khusus untuk Amazon ECS. Penjadwal khusus menggunakan operasi StartTaskAPI untuk menempatkan tugas pada instance kontainer tertentu dalam klaster Anda.

catatan

Penjadwal khusus hanya kompatibel dengan tugas yang dihosting pada instans EC2. Jika Anda menggunakan Amazon ECS di Fargate, StartTask API tidak berfungsi.