Panduan Scaling Apache Aurora: Mekanisme dan Konfigurasi

Mekanisme Scaling pada Apache Aurora

Apache Aurora adalah sistem manajemen layanan yang berjalan di atas Apache Mesos untuk menjadwalkan layanan jangka panjang dan tugas cron. Scaling dalam ekosistem Aurora tidak dilakukan secara otomatis oleh Aurora itu sendiri, melainkan melalui integrasi dengan Mesos dan konfigurasi parameter instances dalam file konfigurasi .aurora. Scaling dilakukan dengan mengubah jumlah replika (instance) dari sebuah job untuk menangani beban kerja yang meningkat atau menurun.

Konfigurasi Scaling via File .aurora

Untuk melakukan scaling, Anda harus memodifikasi jumlah instance dalam file konfigurasi dan melakukan update pada job yang sedang berjalan. Aurora akan secara otomatis melakukan rolling update untuk mencapai jumlah instance yang diinginkan tanpa menghentikan layanan secara total.

# Contoh konfigurasi untuk scaling
job = Service(
  name = 'my-service',
  instances = 10,  # Ubah angka ini untuk scaling
  task = task,
  role = 'www-data',
  environment = 'prod',
)

Setelah mengubah file konfigurasi, jalankan perintah berikut melalui Aurora Client:

aurora job update cluster/role/env/jobname config.aurora

Tabel Parameter Scaling dan Resource

ParameterFungsiDampak Scaling
instancesJumlah replika taskMeningkatkan kapasitas throughput
cpusAlokasi core CPU per taskMeningkatkan performa komputasi
ramAlokasi memori per taskMeningkatkan kapasitas data in-memory
diskAlokasi penyimpananMeningkatkan kapasitas I/O

Strategi Scaling Efektif

Dalam lingkungan produksi, scaling Apache Aurora harus memperhatikan beberapa aspek teknis agar tidak terjadi ketidakstabilan pada klaster:

  • Rolling Updates: Aurora menggunakan mekanisme update bertahap. Pastikan parameter max_per_shard_failures dan max_total_failures diatur dengan benar agar proses scaling tidak terhenti jika satu instance gagal start.
  • Resource Quotas: Pastikan klaster Mesos memiliki kapasitas resource yang cukup sebelum melakukan scaling ke atas (scale-up). Jika resource tidak mencukupi, task akan tetap dalam status PENDING.
  • Health Checks: Selalu sertakan konfigurasi health_check_config agar Aurora dapat memastikan instance baru sudah siap melayani trafik sebelum mematikan instance lama.

Troubleshooting Scaling

Jika proses scaling tidak berjalan sesuai harapan, periksa log scheduler Aurora. Masalah umum biasanya terjadi karena ketidakcocokan resource (misalnya, request RAM melebihi kapasitas node yang tersedia di Mesos) atau kegagalan pada script startup aplikasi yang menyebabkan task terus-menerus restart (crash loop).