Bersiaplah untuk pensiun tugas AWS Fargate 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.

Bersiaplah untuk pensiun tugas AWS Fargate di Amazon ECS

Untuk mempersiapkan pensiun tugas, lakukan operasi berikut:

  1. Atur masa tunggu pensiun tugas atau gunakan jendela EC2 acara Amazon.

  2. Tangkap pemberitahuan pensiun tugas untuk memberi tahu anggota tim.

  3. Anda dapat memastikan semua tugas layanan Anda berjalan pada revisi platform terbaru dengan memperbarui layanan dengan opsi penerapan paksa. Langkah ini bersifat opsional.

Langkah 1: Atur waktu tunggu tugas atau gunakan jendela EC2 acara Amazon

Anda memiliki dua opsi pengaturan akun untuk mengonfigurasi waktu Fargate memulai pensiun tugas: dan. fargateTaskRetirementWaitPeriod fargateEventWindows

Menggunakan pengaturan fargateTaskRetirement WaitPeriod akun

Anda dapat mengkonfigurasi waktu Fargate memulai tugas pensiun. Periode tunggu default adalah 7 hari. Untuk beban kerja yang memerlukan aplikasi pembaruan segera, pilih pengaturan langsung (0). Jika Anda membutuhkan lebih banyak waktu, konfigurasikan opsi7, atau 14 hari.

Kami menyarankan Anda memilih masa tunggu yang lebih pendek untuk mengambil revisi versi platform yang lebih baru lebih cepat.

Konfigurasikan periode tunggu dengan menjalankan put-account-setting-default atau put-account-setting sebagai pengguna root atau pengguna administratif. Gunakan fargateTaskRetirementWaitPeriod opsi untuk name dan value opsi yang disetel ke salah satu nilai berikut:

  • 0- AWS mengirim pemberitahuan, dan segera mulai pensiun tugas yang terpengaruh.

  • 7- AWS mengirim pemberitahuan, dan menunggu 7 hari kalender sebelum mulai pensiun tugas yang terpengaruh. Ini adalah opsi default.

  • 14- AWS mengirim pemberitahuan, dan menunggu 14 hari kalender sebelum mulai pensiun tugas yang terpengaruh.

Untuk informasi selengkapnya, lihat, put-account-setting-defaultdan put-account-settingdi Referensi API Amazon Elastic Container Service.

Menggunakan pengaturan fargateEventWindows akun

Mulai 12/18/2025, Amazon ECS memungkinkan Anda mengonfigurasi jendela acara EC2 Amazon untuk tugas Fargate Anda. Jika Anda memerlukan kontrol yang tepat atas waktu pensiun tugas yang tepat, misalnya, menjadwalkannya selama akhir pekan untuk menghindari gangguan selama jam kerja, Anda dapat mengonfigurasi jendela EC2 acara Amazon untuk tugas, layanan, atau cluster Anda.

Saat Anda menggunakan jendela acara, Fargate memastikan bahwa tugas Anda berjalan setidaknya 3 hari sebelum dihentikan dalam jendela berikutnya yang tersedia, kecuali dihentikan oleh tindakan yang diprakarsai pengguna atau peristiwa kesehatan kritis seperti degradasi perangkat keras yang mendasarinya.

Atur pengaturan fargateEventWindows akun keenabled. Anda dapat menggunakan salah satu dari berikut ini APIs: put-account-setting-default atau put-account-setting sebagai pengguna root atau pengguna administratif.

Setiap jendela EC2 acara Amazon harus terbuka setidaknya 4 jam per minggu, dan setiap rentang waktu harus minimal 2 jam. Untuk cluster dan layanan besar, kami sarankan untuk mengonfigurasi jendela acara dengan durasi yang lama (8 jam atau lebih) atau rentang waktu yang lebih sering terjadi setidaknya sekali setiap 3 hari. Anda dapat meninjau lebih lanjut pertimbangan untuk jendela EC2 acara Amazon di panduan pengguna AWS Fargate memastikan bahwa tugas Anda berjalan setidaknya 3 hari sebelum dihentikan, kecuali dihentikan oleh tindakan yang diprakarsai pengguna atau peristiwa kesehatan kritis seperti degradasi perangkat keras yang mendasarinya.

penting

Penggantian tugas dalam jendela acara adalah upaya terbaik. Jika Anda melihat tugas dihentikan di luar jendela acara Anda, pertimbangkan untuk memperluas durasi (8 jam atau lebih) atau meningkatkan frekuensi (setidaknya sekali setiap 3 hari).

Untuk menerapkan jendela EC2 acara Amazon ke pensiunan tugas Fargate Anda:

  • Atur pengaturan fargateEventWindows akun keenabled. Anda dapat menggunakan salah satu dari berikut ini APIs: put-account-setting-default atau put-account-setting sebagai pengguna root atau pengguna administratif. Perhatikan bahwa ini adalah pengaktifan satu kali untuk penggunaan fitur jendela EC2 acara Amazon untuk tugas Fargate Anda.

  • Buat jendela EC2 acara Amazon melalui konsol AWS atau AWS CLI. Untuk membuat jendela acara menggunakan CLI, gunakan EC2 create-instance-event-window API dengan rentang waktu atau ekspresi cron. Perhatikan InstanceEventWindowId dari respon.

    aws ec2 create-instance-event-window \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName

    Atau, Anda dapat menggunakan ekspresi cron saat membuat jendela EC2 acara.

    aws ec2 create-instance-event-window \ --cron-expression "* 21-23 * * 2,3" \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \ --name myEventWindowName
  • Anda kemudian dapat mengaitkan jendela acara dengan layanan, kluster, atau semua tugas tertentu di akun Anda menggunakan EC2 associate-instance-event-window API.

    • Untuk tugas layanan ECS

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:serviceArn,Value=your-service-arn}]"
    • Untuk cluster ECS

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:clusterArn,Value=your-cluster-arn}]"
    • Untuk mengaitkan jendela acara dengan semua tugas di akun

      aws ec2 associate-instance-event-window \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=aws:ecs:fargateTask,Value=true}]"

Anda dapat menggunakan lebih dari satu pasangan kunci-nilai untuk mengaitkan jendela acara dengan beberapa layanan atau cluster.

Fargate akan memilih jendela acara untuk setiap tugas dalam urutan sebagai berikut:

  • Jika ada jendela acara yang terkait dengan layanan tugas, itu akan digunakan. Ini tidak berlaku untuk tugas mandiri atau tidak terkelola.

  • Jika ada jendela acara yang terkait dengan cluster tugas, itu akan digunakan.

  • Jika ada jendela acara yang disetel untuk semua tugas Fargate, itu akan digunakan.

  • fargateTaskRetirementWaitPeriodPengaturan akan digunakan jika tidak ada jendela acara yang cocok dengan tugas.

Mengkonfigurasi jendela acara untuk pemeliharaan tugas Fargate

Pertimbangkan kasus ketika Anda menjalankan beberapa layanan ECS di Fargate dengan persyaratan ketersediaan yang berbeda. Anda ingin kontrol yang tepat atas pensiun tugas. Anda dapat mengonfigurasi beberapa jendela acara sebagai berikut:

  • Pemeliharaan default untuk semua tugas Fargate: Buat jendela acara untuk pemeliharaan rutin selama jam sibuk (12 pagi hingga 4 pagi setiap hari) dan kaitkan dengan semua tugas Fargate menggunakan tag. aws:ecs:fargateTask

  • Pemeliharaan khusus akhir pekan untuk klaster pengembangan: Untuk klaster pengembangan dengan layanan yang dapat mentolerir gangguan pada akhir pekan, buat jendela akhir pekan 24 jam (Sabtu dan Minggu, sepanjang hari) dan kaitkan dengan cluster menggunakan tag dengan ARN cluster Anda. aws:ecs:clusterArn

  • Jendela terbatas untuk layanan mission-critical: Untuk layanan pemrosesan pembayaran mission-critical yang memerlukan uptime tinggi selama hari kerja, batasi pemeliharaan hingga akhir pekan dini hari (Sabtu dan Minggu, 12:00 hingga 4AM) dan kaitkan dengan layanan khusus menggunakan tag dengan layanan ARN Anda. aws:ecs:serviceArn

Dengan konfigurasi ini, layanan pembayaran menggunakan jendela khusus akhir pekan yang spesifik, layanan dan tugas cluster pengembangan menggunakan jendela 24 jam akhir pekan, dan semua tugas Fargate lainnya menggunakan jendela pemeliharaan harian default.

Untuk informasi selengkapnya, lihat, put-account-setting-defaultdan put-account-settingdi Referensi API Amazon Elastic Container Service.

Langkah 2: Tangkap pemberitahuan pensiun tugas untuk memperingatkan tim dan mengambil tindakan

Ketika ada pensiun tugas yang akan datang, AWS kirimkan pemberitahuan pensiun tugas ke AWS Health Dasbor, dan ke kontak email utama di Akun AWS. AWS Health Dasbor menyediakan sejumlah integrasi ke AWS layanan lain, termasuk Amazon EventBridge. Anda dapat menggunakan EventBridge untuk membangun otomatisasi dari pemberitahuan pensiun tugas, seperti meningkatkan visibilitas pensiun yang akan datang dengan meneruskan pesan ke alat. ChatOps AWS Health Aware adalah sumber daya yang menunjukkan kekuatan AWS Health Dasbor dan bagaimana notifikasi dapat didistribusikan ke seluruh organisasi. Anda dapat meneruskan pemberitahuan pensiun tugas ke aplikasi obrolan, seperti Slack.

Ilustrasi berikut menunjukkan ikhtisar solusi.

Diagram yang menunjukkan solusi Fargate untuk menangkap pemberitahuan pensiun tugas Fargate.

Informasi berikut memberikan rincian.

  • Fargate mengirimkan pemberitahuan pensiun tugas ke Dasbor. AWS Health

  • AWS Health Dasbor mengirim email ke kontak email utama di Akun AWS, dan memberi tahu EventBridge.

  • EventBridge memiliki aturan yang menangkap pemberitahuan pensiun.

    Aturan mencari acara dengan Jenis Detail Acara: "AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"

  • Aturan tersebut memicu fungsi Lambda yang meneruskan informasi ke Slack menggunakan Slack Incoming Webhook. Untuk informasi selengkapnya, lihat Webhook Masuk.

Untuk contoh kode, lihat Menangkap Pemberitahuan Pensiun AWS Fargate Tugas di Github.

Langkah 3: Kontrol penggantian tugas

Anda tidak dapat mengontrol waktu yang tepat dari pensiun tugas, namun, Anda dapat menentukan waktu tunggu. Jika Anda ingin mengontrol penggantian tugas sesuai jadwal Anda sendiri, Anda dapat menangkap pemberitahuan pensiun tugas untuk terlebih dahulu memahami tanggal pensiun tugas. Anda kemudian dapat menerapkan kembali layanan Anda untuk meluncurkan tugas pengganti, dan juga mengganti tugas mandiri apa pun. Untuk layanan yang menggunakan penerapan bergulir, Anda memperbarui layanan menggunakan opsi sebelum waktu mulai update-service pensiun. force-deployment

update-serviceContoh berikut menggunakan force-deployment opsi.

aws ecs update-service —-service service_name \ --cluster cluster_name \ --force-new-deployment

Untuk layanan yang menggunakan blue/green penerapan, Anda perlu membuat penerapan baru di. AWS CodeDeployUntuk informasi tentang cara membuat penerapan, lihat create-deployment di Referensi.AWS Command Line Interface