Pembaruan konfigurasi lingkungan bergulir Elastic Beanstalk - AWS Elastic Beanstalk

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

Pembaruan konfigurasi lingkungan bergulir Elastic Beanstalk

Saat perubahan konfigurasi memerlukan penggantian instans, Elastic Beanstalk dapat melakukan pembaruan dalam batch untuk menghindari waktu henti sementara perubahan disebarkan. Selama pembaruan bergulir, kapasitas hanya dikurangi dengan ukuran satu batch, yang dapat Anda konfigurasikan. Elastic Beanstalk mengambil satu batch instans dari layanan, mengakhirinya, kemudian meluncurkan batch dengan konfigurasi baru. Setelah batch baru mulai melayani permintaan, Elastic Beanstalk melanjutkan ke batch berikutnya.

Batch pembaruan konfigurasi bergulir dapat diproses secara berkala (berbasis waktu), dengan penundaan antara setiap batch, atau berdasarkan kondisi. Untuk pembaruan bergulir berbasis waktu, Anda dapat mengonfigurasi jumlah waktu tunggu Elastic Beanstalk setelah menyelesaikan peluncuran batch instans sebelum melanjutkan ke batch berikutnya. Waktu jeda ini mengizinkan aplikasi Anda untuk melakukan bootstrap dan mulai melayani permintaan.

Dengan pembaruan bergulir berbasis kondisi, Elastic Beanstalk menunggu sampai instans dalam batch lolos dalam pemeriksaan kondisi sebelum beralih ke batch berikutnya. Kondisi sebuah instans ditentukan oleh sistem pelaporan kondisi, bisa dasar atau yang ditingkatkan. Dengan kondisi dasar, batch dianggap sehat segera setelah semua instans di dalamnya lolos dalam pemeriksaan kondisi Elastic Load Balancing (ELB).

Dengan laporan kondisi yang ditingkatkan, semua instans dalam batch harus melewati beberapa pemeriksaan kondisi berturut-turut sebelum Elastic Beanstalk akan beralih ke batch berikutnya. Selain pemeriksaan kondisi ELB, yang hanya memeriksa instans Anda, kondisi yang ditingkatkan memantau log aplikasi dan status sumber daya lingkungan Anda yang lain. Dalam lingkungan server web dengan kondisi yang ditingkatkan, semua instans harus lolos dalam 12 pemeriksaan kondisi selama dua menit (18 pemeriksaan selama tiga menit untuk lingkungan pekerja). Jika setiap instans gagal dalam satu pemeriksaan kondisi, hitungan akan kembali ke awal.

Jika batch tidak menjadi sehat dalam waktu habis pembaruan bergulir (default adalah 30 menit), pembaruan dibatalkan. Waktu habis pembaruan bergulir adalah pilihan konfigurasi yang tersedia di namespace aws:autoscaling:updatepolicy:rollingupdate. Jika aplikasi Anda tidak lolos pemeriksaan kondisi dengan status Ok tetapi stabil pada tingkat yang berbeda, Anda dapat mengatur pilihan HealthCheckSuccessThreshold pada namespace aws:elasticbeanstalk:healthreporting:system untuk mengubah tingkat di mana Elastic Beanstalk menganggap sebuah instans sehat.

Jika proses pembaruan bergulir gagal, Elastic Beanstalk memulai pembaruan bergulir lain untuk kembali ke konfigurasi sebelumnya. Pembaruan bergulir dapat gagal karena pemeriksaan kondisi yang gagal atau jika meluncurkan instans baru menyebabkan Anda melebihi kuota di akun Anda. Jika Anda mencapai kuota pada jumlah instans Amazon EC2, misalnya, pembaruan bergulir dapat gagal ketika mencoba untuk menyediakan batch instans baru. Dalam kasus ini, rollback juga gagal.

Rollback yang gagal mengakhiri proses pembaruan dan meninggalkan lingkungan Anda dalam keadaan tidak sehat. Batch yang belum diproses masih menjalankan instans dengan konfigurasi lama, sementara batch yang berhasil diselesaikan memiliki konfigurasi baru. Untuk memperbaiki lingkungan setelah rollback gagal, pertama selesaikan masalah yang menyebabkan pembaruan gagal, lalu mulai pembaruan lingkungan lain.

Metode alternatif adalah dengan men-deploy versi baru dari aplikasi Anda ke lingkungan yang berbeda dan kemudian melakukan perubahan CNAME untuk mengarahkan lalu lintas dengan waktu henti nol. Lihat Deployment Biru/Hijau dengan Elastic Beanstalk untuk informasi selengkapnya.

Pembaruan bergulir versus deployment bergulir

Pembaruan bergulir terjadi ketika Anda mengubah pengaturan yang memerlukan instans Amazon EC2 baru untuk ditetapkan untuk lingkungan Anda. Ini termasuk perubahan konfigurasi grup Auto Scaling, seperti jenis instans dan pengaturan pasangan kunci, dan perubahan pengaturan VPC. Dalam pembaruan bergulir, setiap batch instans diakhiri sebelum batch baru ditetapkan untuk menggantikannya.

Deployment bergulir terjadi setiap kali Anda men-deploy aplikasi Anda dan biasanya dapat dilakukan tanpa mengganti instans di lingkungan Anda. Elastic Beanstalk mengambil setiap batch dari layanan, men-deploy versi aplikasi baru, dan kemudian menempatkannya kembali dalam layanan.

Pengecualian untuk ini adalah jika Anda mengubah pengaturan yang memerlukan penggantian instans pada saat yang sama Anda men-deploy versi aplikasi baru. Sebagai contoh, jika Anda mengubah pengaturan nama kunci di file konfigurasi dalam paket sumber Anda dan deploy ke lingkungan Anda, Anda memicu pembaruan bergulir. Alih-alih men-deploy versi aplikasi baru Anda untuk setiap batch instans yang ada, batch baru instans ditetapkan dengan konfigurasi baru. Dalam kasus ini, deployment terpisah tidak terjadi karena instans baru dinaikkan dengan versi aplikasi baru.

Kapan saja instans baru ditetapkan sebagai bagian dari pembaruan lingkungan, ada fase deployment di mana kode sumber aplikasi Anda di-deploy ke instans baru dan setiap pengaturan konfigurasi yang memodifikasi sistem operasi atau perangkat lunak pada instans diterapkan. Pengaturan pemeriksaan kondisi deployment (Abaikan pemeriksaan kondisi, Ambang batas sehat, dan Batas waktu perintah) juga berlaku untuk pembaruan bergulir berbasis kondisi dan pembaruan tetap selama fase deployment.

Mengonfigurasi pembaruan bergulir

Anda dapat mengaktifkan dan mengonfigurasi pembaruan bergulir di konsol Elastic Beanstalk.

Untuk mengaktifkan pembaruan bergulir
  1. Buka konsol Elastic Beanstalk, dan dalam daftar Regions, pilih Anda. Wilayah AWS

  2. Di panel navigasi, pilih Lingkungan, dan kemudian pilih nama lingkungan Anda dari daftar.

    catatan

    Jika Anda memiliki banyak lingkungan, gunakan bilah pencarian untuk memfilter daftar lingkungan.

  3. Di panel navigasi, pilih Konfigurasi.

  4. Di kategori konfigurasi Pembaruan dan deployment bergulir, pilih Edit.

  5. Di bagian Pembaruan konfigurasi, untuk Jenis pembaruan bergulir, pilih salah satu pilihan Bergulir.

    Bagian pembaruan konfigurasi pada pembaruan modifikasi bergulir dan halaman konfigurasi deployment
  6. Pilih pengaturan Ukuran batch, Kapasitas minimum, dan Jeda waktu.

  7. Untuk menyimpan perubahan pilih Terapkan di bagian bawah halaman.

Bagian Pembaruan konfigurasi di halaman Pembaruan dan deployment bergulir memiliki pilihan berikut untuk pembaruan bergulir:

  • Jenis pembaruan bergulir – Elastic Beanstalk menunggu setelah selesai memperbarui batch instans sebelum berpindah ke batch berikutnya, untuk mengizinkan instans tersebut menyelesaikan bootstrapping dan mulai melayani lalu lintas. Pilih salah satu pilihan berikut:

    • Bergulir berdasarkan Kondisi – Tunggu sampai instans dalam batch saat ini menjadi sehat sebelum menempatkan instans dalam layanan dan memulai batch berikutnya.

    • Bergulir berdasarkan Waktu – Tentukan jumlah waktu untuk menunggu antara meluncurkan instans baru dan menempatkannya di layanan sebelum memulai batch berikutnya.

    • Tidak berubah – Terapkan versi baru ke grup baru instans dengan melakukan pembaruan tetap.

  • Ukuran Batch – Jumlah instans untuk diganti di setiap batch, antara 1 dan 10000. Secara default, nilai ini adalah sepertiga dari ukuran minimum grup Auto Scaling, dibulatkan ke seluruh nomor.

  • Kapasitas minimum – Jumlah minimum dari instans untuk tetap berjalan sementara instans lain diperbarui, antara 0 dan 9999. Nilai default adalah ukuran minimum grup Auto Scaling atau kurang dari ukuran maksimum grup Auto Scaling, nomor mana yang lebih rendah.

  • Jeda waktu (hanya berbasis waktu) – Jumlah waktu untuk menunggu setelah batch diperbarui sebelum berpindah ke batch berikutnya, untuk mengizinkan aplikasi Anda untuk mulai menerima lalu lintas. Antara 0 detik dan satu jam.

Namespace aws:autoscaling:updatepolicy:rollingupdate

Anda dapat menggunakan pilihan konfigurasi di namespace aws:autoscaling:updatepolicy:rollingupdate untuk mengonfigurasi deployment Anda.

Gunakan pilihan RollingUpdateEnabled untuk mengaktifkan pembaruan bergulir, dan RollingUpdateType untuk memilih jenis pembaruan. Nilai berikut didukung untuk RollingUpdateType:

  • Health – Tunggu sampai instans dalam batch saat ini sehat sebelum menempatkan instans dalam layanan dan memulai batch berikutnya.

  • Time – Tentukan jumlah waktu untuk menunggu antara meluncurkan instans baru dan menempatkannya di layanan sebelum memulai batch berikutnya.

  • Immutable – Terapkan perubahan konfigurasi untuk kelompok baru instans dengan melakukan pembaruan tetap.

Bila Anda mengaktifkan deployment bergulir, atur pilihan MaxBatchSize dan MinInstancesInService untuk mengonfigurasi ukuran setiap batch. Untuk pembaruan bergulir berbasis waktu dan berbasis kondisi, Anda juga dapat mengonfigurasi PauseTime dan Timeout, masing-masing.

Misalnya, untuk meluncurkan hingga lima instans sekaligus, sambil mempertahankan setidaknya dua instans dalam layanan, dan menunggu lima menit dan 30 detik di antara batch, tentukan pilihan dan nilai berikut.

contoh .ebextensions/timebased.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateEnabled: true MaxBatchSize: 5 MinInstancesInService: 2 RollingUpdateType: Time PauseTime: PT5M30S

Untuk mengaktifkan pembaruan bergulir berbasis kondisi, dengan batas waktu 45 menit untuk setiap batch, tentukan pilihan dan nilai berikut.

contoh .ebextensions/healthbased.config
option_settings: aws:autoscaling:updatepolicy:rollingupdate: RollingUpdateEnabled: true MaxBatchSize: 5 MinInstancesInService: 2 RollingUpdateType: Health Timeout: PT45M

Nilai Timeout dan PauseTime harus dispesifikasikan dalam Durasi ISO8601: PT#H#M#S, di mana setiap # adalah jumlah jam, menit, atau detik, masing-masing.

Konsol EB CLI dan Elastic Beanstalk menerapkan nilai yang direkomendasikan untuk pilihan sebelumnya. Anda harus menghapus pengaturan ini jika Anda ingin menggunakan file konfigurasi untuk mengonfigurasi hal yang sama. Lihat Nilai yang disarankan untuk rincian selengkapnya.