Mengkonfigurasi penskalaan otomatis pekerja Amazon MWAA - Amazon Managed Workflows for Apache Airflow (MWAA)

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

Mengkonfigurasi penskalaan otomatis pekerja Amazon MWAA

Mekanisme penskalaan otomatis secara otomatis meningkatkan jumlah pekerja Apache Airflow sebagai respons terhadap tugas yang sedang berjalan dan antri di lingkungan Alur Kerja Terkelola Amazon untuk Apache Airflow Anda dan membuang pekerja tambahan saat tidak ada lagi tugas yang diantri atau dijalankan. Halaman ini menjelaskan bagaimana Anda dapat mengonfigurasi penskalaan otomatis dengan menentukan jumlah maksimum pekerja Apache Airflow yang berjalan di lingkungan Anda menggunakan konsol Amazon MWAA.

catatan

Amazon MWAA menggunakan metrik Apache Airflow untuk menentukan kapan pekerja Celery Executor tambahan diperlukan, dan jika diperlukan meningkatkan jumlah pekerja Fargate hingga nilai yang ditentukan oleh. max-workers Ketika pekerja tambahan menyelesaikan pekerjaan dan beban kerja berkurang, Amazon MWAA menghapusnya, sehingga menurunkan skala kembali ke nilai yang ditetapkan oleh. min-workers

Jika pekerja mengambil tugas baru saat menurunkan skala, Amazon MWAA menyimpan sumber daya Fargate dan tidak menghapus pekerja. Untuk informasi selengkapnya, lihat Cara kerja penskalaan otomatis Amazon MWAA.

Cara kerja penskalaan pekerja

Amazon MWAA menggunakan RunningTasks dan QueuedTasks metrik, di mana (tugas yang menjalankan+tugas diantrian)/(tugas per pekerja) = (pekerja wajib). Jika jumlah pekerja yang dibutuhkan lebih besar dari jumlah pekerja saat ini, Amazon MWAA akan menambahkan kontainer pekerja Fargate ke nilai tersebut, hingga nilai maksimum yang ditentukan oleh. max-workers

Saat beban kerja berkurang dan jumlah QueuedTasks metrik berkurang, Amazon MWAA meminta Fargate untuk menurunkan pekerja untuk lingkungan. RunningTasks Setiap pekerja yang masih menyelesaikan pekerjaan tetap terlindungi selama downscaling sampai mereka menyelesaikan pekerjaan mereka. Tergantung pada beban kerja, tugas dapat diantrian sementara pekerja menurunkan skala.

Menggunakan konsol Amazon MWAA

Anda dapat memilih jumlah maksimum pekerja yang dapat berjalan di lingkungan Anda secara bersamaan di konsol Amazon MWAA. Secara default, Anda dapat menentukan nilai maksimum hingga 25.

Untuk mengkonfigurasi jumlah pekerja
  1. Buka halaman Lingkungan di konsol Amazon MWAA.

  2. Pilih lingkungan.

  3. Pilih Edit.

  4. Pilih Selanjutnya.

  5. Pada panel kelas Lingkungan, masukkan nilai dalam Jumlah pekerja maksimum.

  6. Pilih Simpan.

catatan

Ini bisa memakan waktu beberapa menit sebelum perubahan berlaku pada lingkungan Anda.

Contoh kasus penggunaan kinerja tinggi

Bagian berikut menjelaskan jenis konfigurasi yang dapat Anda gunakan untuk mengaktifkan kinerja tinggi dan paralelisme pada lingkungan.

Aliran Udara Apache di lokasi

Biasanya, dalam platform Apache Airflow di lokasi, Anda akan mengonfigurasi paralelisme tugas, penskalaan otomatis, dan pengaturan konkurensi dalam file Anda: airflow.cfg

  • core.parallelism— Jumlah maksimum instance tugas yang dapat berjalan secara bersamaan per penjadwal.

  • core.dag_concurrency— Konkurensi maksimum untuk DAG (bukan pekerja).

  • celery.worker_autoscale— Jumlah tugas maksimum dan minimum yang dapat dijalankan secara bersamaan pada pekerja mana pun.

Misalnya, jika core.parallelism disetel ke 100 dan core.dag_concurrency disetel ke7, Anda masih hanya dapat menjalankan total 14 tugas secara bersamaan jika Anda memiliki 2 DAG. Mengingat, setiap DAG diatur untuk menjalankan hanya tujuh tugas secara bersamaan (incore.dag_concurrency), meskipun paralelisme keseluruhan disetel ke 100 (in). core.parallelism

Di lingkungan Amazon MWAA

Di lingkungan Amazon MWAA, Anda dapat mengonfigurasi pengaturan ini secara langsung di konsol Amazon MWAA menggunakan Menggunakan opsi konfigurasi Apache Airflow di Amazon MWAAMengkonfigurasi kelas lingkungan Amazon MWAA, dan mekanisme penskalaan otomatis jumlah pekerja maksimum. Meskipun tidak core.dag_concurrency tersedia dalam daftar drop-down sebagai opsi konfigurasi Apache Airflow di konsol Amazon MWAA, Anda dapat menambahkannya sebagai opsi konfigurasi Apache Airflow khusus.

Katakanlah, ketika Anda membuat lingkungan Anda, Anda memilih pengaturan berikut:

  1. Kelas lingkungan mw1.small yang mengontrol jumlah maksimum tugas bersamaan yang dapat dijalankan setiap pekerja secara default dan vCPU kontainer.

  2. Pengaturan default 10 Pekerja dalam jumlah pekerja Maksimum.

  3. Opsi konfigurasi Apache Airflow untuk celery.worker_autoscale 5,5 tugas per pekerja.

Ini berarti Anda dapat menjalankan 50 tugas bersamaan di lingkungan Anda. Setiap tugas di atas 50 akan diantrian, dan menunggu tugas yang sedang berjalan selesai.

Jalankan lebih banyak tugas bersamaan. Anda dapat memodifikasi lingkungan untuk menjalankan lebih banyak tugas secara bersamaan menggunakan konfigurasi berikut:

  1. Tingkatkan jumlah maksimum tugas bersamaan yang dapat dijalankan setiap pekerja secara default dan vCPU kontainer dengan memilih kelas lingkungan mw1.medium (10 tugas bersamaan secara default).

  2. Tambahkan celery.worker_autoscale sebagai opsi konfigurasi Apache Airflow.

  3. Tingkatkan jumlah pekerja maksimum. Dalam contoh ini, meningkatkan pekerja maksimum dari 10 ke 20 akan menggandakan jumlah tugas bersamaan yang dapat dijalankan lingkungan.

Tentukan Pekerja minimum. Anda juga dapat menentukan jumlah minimum dan maksimum Apache Airflow Workers yang berjalan di lingkungan Anda menggunakan AWS Command Line Interface ()AWS CLI. Sebagai contoh:

aws mwaa update-environment --max-workers 10 --min-workers 10 --name YOUR_ENVIRONMENT_NAME

Untuk mempelajari lebih lanjut, lihat perintah update-environment di. AWS CLI

Memecahkan masalah tugas yang macet dalam status berjalan

Dalam kasus yang jarang terjadi, Apache Airflow mungkin berpikir ada tugas yang masih berjalan. Untuk mengatasi masalah ini, Anda perlu menghapus tugas yang terdampar di UI Apache Airflow Anda. Untuk informasi selengkapnya, lihat topik Saya melihat tugas saya macet atau tidak menyelesaikan pemecahan masalah.

Apa selanjutnya?