Bersiaplah untuk AWS Pensiun tugas Fargate di Amazon ECS - Amazon Elastic Container Service

View a markdown version of this page

Bersiaplah untuk AWS Pensiun tugas 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 AWS Pensiun tugas Fargate di Amazon ECS

Untuk mempersiapkan pensiun tugas, lakukan operasi berikut:

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

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

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

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

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

Menggunakan pengaturan TaskRetirementWaitPeriod akun fargate

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

Kami menyarankan Anda memilih periode 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 menghentikan tugas yang terpengaruh.

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

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

Untuk informasi selengkapnya, lihat, put-account-setting-default dan put-account-setting di Referensi API Layanan Kontainer Amazon Elastic.

Menggunakan pengaturan EventWindows akun fargate

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

Saat Anda menggunakan jendela peristiwa, Fargate memastikan bahwa tugas Anda berjalan setidaknya selama 3 hari sebelum dihentikan dalam jendela yang tersedia berikutnya, 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 API berikut: put-account-setting-default atau put-account-setting sebagai pengguna root atau pengguna administratif.

Setiap jendela acara Amazon EC2 harus terbuka setidaknya selama 4 jam per minggu, dan setiap rentang waktu harus setidaknya 2 jam. Untuk cluster dan layanan besar, kami sarankan mengonfigurasi jendela acara dengan durasi panjang (8 jam atau lebih) atau rentang waktu yang lebih sering yang terjadi setidaknya sekali setiap 3 hari. Anda dapat meninjau lebih lanjut pertimbangan untuk jendela peristiwa Amazon EC2 di panduan pengguna AWS Fargate memastikan bahwa tugas Anda berjalan setidaknya selama 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 acara Amazon EC2 ke penghentian tugas Fargate Anda:

  • Atur pengaturan fargateEventWindows akun keenabled. Anda dapat menggunakan salah satu API berikut: 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 acara Amazon EC2 untuk tugas Fargate Anda.

  • Buat jendela acara Amazon EC2 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. Catat InstanceEventWindowId dari tanggapan.

    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 acara EC2.

    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 tertentu, cluster, atau semua tugas di akun Anda menggunakan associate-instance-event-window API EC2.

    • 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 dengan urutan sebagai berikut:

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

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

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

  • Peng fargateTaskRetirementWaitPeriod aturan 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 pensiunan tugas. Anda dapat mengonfigurasi beberapa jendela acara sebagai berikut:

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

  • Weekend-only pemeliharaan untuk cluster pengembangan: Untuk cluster 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 aws:ecs:clusterArn tag dengan ARN cluster Anda.

  • Jendela terbatas untuk layanan kritis misi: Untuk layanan pemrosesan pembayaran kritis misi yang membutuhkan waktu aktif tinggi selama hari kerja, batasi pemeliharaan hingga akhir pekan dini hari (Sabtu dan Minggu, pukul 12.00 hingga 04.00) dan kaitkan dengan layanan tertentu menggunakan tag dengan ARN layanan Anda. aws:ecs:serviceArn

Dengan konfigurasi ini, layanan pembayaran menggunakan jendela khusus akhir pekan, 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-default dan put-account-setting di Referensi API Layanan Kontainer Amazon Elastic.

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

Ketika ada penghentian tugas yang akan datang AWS , kirim pemberitahuan penghentian tugas ke Das AWS Health bor, dan ke kontak email utama di Akun AWS. AWS Health Dasbor menyediakan sejumlah integrasi ke AWS layanan lain, termasuk Amazon EventBridge. Anda dapat menggunakannya EventBridge untuk membuat otomatisasi dari pemberitahuan penghentian tugas, seperti meningkatkan visibilitas pensiun yang akan datang dengan meneruskan pesan ke ChatOps alat. AWS Health Aware adalah sumber daya yang menunjukkan kekuatan Das AWS Health bor dan bagaimana notifikasi dapat didistribusikan ke seluruh organisasi. Anda dapat meneruskan pemberitahuan penghentian 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 AWS Health Dasbor.

  • 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 Tipe Detail Acara: "AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"

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

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

Langkah 3: Kontrol penggantian tugas

Anda tidak dapat mengontrol waktu yang tepat untuk 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 menyebarkan ulang layanan Anda untuk meluncurkan tugas pengganti, dan juga mengganti tugas mandiri manapun. Untuk layanan yang menggunakan penerapan bergulir, Anda memperbarui layanan menggunakan update-service force-deployment opsi sebelum waktu mulai pensiun.

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 CodeDeploy. Untuk informasi tentang cara membuat penerapan, lihat bu at-penerapan di Referensi AWS Command Line Interface .