Kebijakan dan pengaturan deployment - AWS Elastic Beanstalk

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

Kebijakan dan pengaturan deployment

AWS Elastic Beanstalk menyediakan beberapa pilihan untuk bagaimana deployment diproses, termasuk kebijakan deployment (Semua sekaligus, Bergulir, Bergulir dengan batch tambahan, Tidak berubah, dan Pembagian lalu lintas) dan pilihan yang memungkinkan Anda mengonfigurasi ukuran batch dan perilaku pemeriksaan kondisi selama deployment. Secara default, lingkungan Anda menggunakan all-at-once penerapan. Jika Anda membuat lingkungan dengan EB CLI dan itu adalah lingkungan yang dapat diskalakan (Anda tidak menentukan pilihan --single), lingkungan tersebut menggunakan deployment bergulir.

Dengan deployment bergulir, Elastic Beanstalk membagi instans Amazon EC2 lingkungan ke dalam batch dan men-deploy versi baru dari aplikasi untuk satu batch pada satu waktu. Elastic Beanstalk meninggalkan sisa instans di lingkungan yang menjalankan versi lama dari aplikasi. Selama deployment bergulir, beberapa instans melayani permintaan dengan versi lama aplikasi, sementara instans dalam batch yang sudah selesai melayani permintaan lain dengan versi baru. Untuk rincian selengkapnya, lihat Cara kerja deployment bergulir.

Untuk mempertahankan kapasitas penuh selama deployment, Anda dapat mengonfigurasi lingkungan Anda untuk meluncurkan batch baru instans sebelum mengeluarkan setiap instans dari layanan. Pilihan ini dikenal sebagai deployment bergulir dengan batch tambahan. Ketika deployment selesai, Elastic Beanstalk mengakhiri batch tambahan instans.

Deployment tetap melakukan pembaruan tetap untuk meluncurkan serangkaian lengkap instans baru yang menjalankan versi baru aplikasi dalam grup Auto Scaling terpisah, bersama dengan instans yang menjalankan versi lama. Deployment tetap dapat mencegah masalah yang disebabkan oleh deployment bergilir yang sebagian telah selesai. Jika instans baru tidak lolos pemeriksaan kondisi, Elastic Beanstalk mengakhiri mereka, meninggalkan instans asli tidak tersentuh.

Deployment pembagian lalu lintas memungkinkan Anda melakukan pengujian canary sebagai bagian dari deployment aplikasi Anda. Dalam deployment pembagian lalu lintas, Elastic Beanstalk meluncurkan satu set lengkap instans baru seperti selama deployment tetap. Kemudian meneruskan persentase tertentu dari lalu lintas klien masuk ke versi aplikasi baru untuk periode evaluasi tertentu. Jika instans baru tetap sehat, Elastic Beanstalk meneruskan semua lalu lintas ke mereka dan mengakhiri yang lama. Jika instans baru tidak lolos pemeriksaan kondisi, atau jika Anda memilih untuk membatalkan deployment, Elastic Beanstalk memindahkan lalu lintas kembali ke instans lama dan mengakhiri yang baru. Tidak pernah ada gangguan layanan. Untuk rincian selengkapnya, lihat Cara kerja deployment pembagian lalu lintas.

Awas

Beberapa kebijakan mengganti semua instans selama deployment atau pembaruan. Hal ini menyebabkan semua akumulasi keseimbangan runtutan Amazon EC2 hilang. Hal ini terjadi dalam kasus berikut:

  • Pembaruan platform terkelola dengan penggantian instans diaktifkan

  • Pembaruan tetap

  • Deployment dengan pembaruan yang tidak berubah atau pembagian lalu lintas diaktifkan

Jika aplikasi Anda tidak lolos semua pemeriksaan kondisi, namun tetap beroperasi dengan benar pada status kondisi yang lebih rendah, Anda dapat mengizinkan instans untuk lolos pemeriksaan kondisi dengan status lebih rendah, seperti Warning, dengan memodifikasi pilihan Ambang batas sehat. Jika deployment Anda gagal karena tidak lolos pemeriksaan kondisi dan Anda perlu untuk memaksa pembaruan terlepas dari status kondisi, tentukan pilihan Abaikan pemeriksaan kondisi.

Ketika Anda menentukan ukuran batch untuk pembaruan bergulir, Elastic Beanstalk juga menggunakan nilai tersebut untuk memulai kembali aplikasi bergulir. Gunakan mulai kembali bergulir ketika Anda perlu untuk memulai kembali server proksi dan aplikasi yang berjalan pada instans lingkungan Anda tanpa waktu henti.

Mengonfigurasi deployment aplikasi

Di konsol manajemen lingkungan, aktifkan dan konfigurasikan deployment versi aplikasi batch dengan mengedit Pembaruan dan Deployment di halaman Konfigurasi lingkungan.

Untuk mengonfigurasi deployment (konsol)
  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 Deployment Aplikasi, pilih Kebijakan deployment, pengaturan batch, dan pilihan pemeriksaan kondisi.

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

Bagian Deployment aplikasi dari Pembaruan dan deployment bergulir memiliki pilihan berikut untuk deployment aplikasi:

  • Kebijakan deployment – Pilih salah satu opsi deployment berikut:

    • Semua sekaligus – Men-deploy versi baru untuk semua instans secara bersamaan. Semua instans di lingkungan Anda keluar dari layanan untuk waktu yang singkat sementara deployment terjadi.

    • Bergulir – Men-deploy versi baru dalam batch. Setiap batch dikeluarkan dari layanan selama tahap deployment, mengurangi kapasitas lingkungan Anda dengan jumlah instans dalam batch.

    • Bergulir dengan batch tambahan – Men-deploy versi baru dalam batch, tetapi pertama-tama luncurkan batch baru dari instans untuk memastikan kapasitas penuh selama proses deployment.

    • Tidak berubah – Men-deploy versi baru ke kelompok baru instans dengan melakukan pembaruan yang tidak dapat diubah.

    • Pembagian lalu lintas – Men-deploy versi baru ke kelompok baru instans dan membagi lalu lintas klien masuk dengan sementara antara versi aplikasi yang sudah ada dan yang baru.

Untuk kebijakan deployment Bergulir dan Bergulir dengan batch tambahan Anda dapat mengonfigurasi:

  • Ukuran Batch – Ukuran set instans untuk di-deploy di setiap batch.

    Pilih Persentase untuk mengonfigurasi persentase dari jumlah total instans EC2 dalam grup Auto Scaling (hingga 100 persen), atau pilih Tetap untuk mengonfigurasi sejumlah instans tetap (hingga jumlah maksimum instans dalam konfigurasi Auto Scaling lingkungan Anda).

Untuk kebijakan deployment Pembagian lalu lintas Anda dapat mengonfigurasi berikut ini:

  • Pembagian lalu lintas – Persentase awal lalu lintas klien masuk yang digeser oleh Elastic Beanstalk ke instans lingkungan yang menjalankan versi aplikasi baru yang Anda deploy.

  • Waktu evaluasi pembagian lalu lintas – Periode waktu, dalam menit, di mana Elastic Beanstalk menunggu setelah deployment awal yang sehat sebelum melanjutkan untuk menggeser semua lalu lintas klien masuk ke versi aplikasi baru yang Anda deploy.

Halaman konfigurasi penerapan aplikasi Pohon Kacang Elastis

Bagian Preferensi deployment berisi pilihan yang berkaitan dengan pemeriksaan kondisi.

  • Abaikan pemeriksaan kondisi – Mencegah deployment dari pengguliran kembali ketika batch gagal untuk menjadi sehat dalam Perintah waktu habis.

  • Ambang batas sehat – Menurunkan ambang batas di mana instans dianggap sehat selama deployment bergulir, pembaruan bergulir, dan pembaruan yang tidak berubah.

  • Perintah waktu habis – Jumlah detik untuk menunggu instans menjadi sehat sebelum membatalkan deployment atau, jika Abaikan pemeriksaan kondisi diatur, untuk melanjutkan ke batch berikutnya.

Halaman konfigurasi deployment aplikasi Elastic Beanstalk

Cara kerja deployment bergulir

Saat memproses batch, Elastic Beanstalk melepaskan semua instans dalam batch dari penyeimbang beban, men-deploy versi aplikasi baru, dan kemudian memasangkan ulang instans. Jika Anda mengaktifkan pengosongan koneksi, Elastic Beanstalk mengosongkan koneksi yang ada dari instans Amazon EC2 di setiap batch sebelum memulai deployment.

Setelah memasangkan ulang instans dalam batch ke load balancer, Elastic Load Balancing menunggu sampai mereka melewati jumlah minimum pemeriksaan kondisi Elastic Load Balancing (nilai Ambang batas hitungan pemeriksaan kesehatan ), dan kemudian mulai perutean lalu lintas ke mereka. Jika tidak ada URL pemeriksaan kondisi yang dikonfigurasi, hal ini dapat terjadi sangat cepat, karena instans akan lolos pemeriksaan kondisi segera setelah dapat menerima koneksi TCP. Jika URL pemeriksaan kondisi dikonfigurasi, penyeimbang beban tidak merutekan lalu lintas ke instans yang diperbarui sampai mereka mengembalikan kode status 200 OK dalam menanggapi permintaan HTTP GET ke URL pemeriksaan kondisi.

Elastic Beanstalk menunggu sampai semua instans dalam batch sehat sebelum pindah ke batch berikutnya. Dengan pelaporan kondisi dasar, kondisi instans bergantung pada status pemeriksaan kondisi Elastic Load Balancing. Ketika semua instans dalam batch lolos pemeriksaan kondisi yang cukup untuk dianggap sehat oleh Elastic Load Balancing, batch tersebut telah selesai. Jika pelaporan kondisi yang ditingkatkan diaktifkan, Elastic Beanstalk mempertimbangkan beberapa faktor lain, termasuk hasil permintaan yang masuk. Dengan pelaporan kondisi yang ditingkatkan, semua instans harus melewati 12 pemeriksaan kondisi berturut-turut dengan Status OK dalam waktu dua menit untuk lingkungan server web, dan 18 pemeriksaan kondisi dalam waktu tiga menit untuk lingkungan pekerja.

Jika batch instans tidak menjadi sehat dalam perintah waktu habis, deployment gagal. Setelah deployment gagal, periksa kondisi instans di lingkungan Anda untuk informasi tentang penyebab kegagalan. Kemudian lakukan deployment lain dengan versi tetap atau diketahui baik dari aplikasi Anda untuk memutar kembali.

Jika deployment mengalami kegagalan setelah satu atau lebih batch telah berhasil terselesaikan, batch yang telah selesai menjalankan versi baru aplikasi Anda sementara batch yang tertunda tetap menjalankan versi lama. Anda dapat mengidentifikasi versi yang berjalan pada instans di lingkungan Anda pada halaman kondisi di konsol. Halaman ini menampilkan ID deployment terbaru dari deployment yang terbaru yang dijalankan pada setiap instans di lingkungan Anda. Jika Anda mengakhiri instans dari deployment yang gagal, Elastic Beanstalk menggantikan instans tersebut dengan instans yang menjalankan versi aplikasi dari deployment yang sukses terbaru.

Cara kerja deployment pembagian lalu lintas

Deployment pembagian lalu lintas memungkinkan Anda melakukan pengujian canary. Anda mengarahkan beberapa lalu lintas klien masuk ke versi aplikasi baru Anda untuk memverifikasi kondisi aplikasi sebelum melakukan ke versi baru dan mengarahkan semua lalu lintas ke sana.

Selama deployment pembagian lalu lintas, Elastic Beanstalk membuat serangkaian instans baru dalam grup Auto Scaling terpisah yang sementara. Elastic Beanstalk kemudian menginstruksikan penyeimbang beban untuk mengarahkan persentase tertentu dari lalu lintas masuk lingkungan Anda ke instans baru. Kemudian, untuk jumlah waktu yang dikonfigurasi, Elastic Beanstalk melacak kondisi rangkaian instans baru. Jika semuanya baik-baik saja, Elastic Beanstalk menggeser lalu lintas yang tersisa ke instans baru dan melampirkannya ke grup Auto Scaling lingkungan asli, menggantikan instans lama. Kemudian Elastic Beanstalk membersihkan—mengakhiri instans lama dan menghapus grup Auto Scaling sementara.

catatan

Kapasitas lingkungan tidak berubah selama deployment pembagian lalu lintas. Elastic Beanstalk meluncurkan jumlah instans yang sama dalam grup Auto Scaling sementara karena ada dalam grup Auto Scaling asli pada saat deployment dimulai. Kemudian mempertahankan sejumlah konstan instans di kedua grup Auto Scaling untuk durasi deployment. Perhatikan fakta ini saat mengonfigurasi waktu evaluasi pembagian lalu lintas lingkungan.

Menggulir kembali deployment ke versi aplikasi sebelumnya berlangsung dengan cepat dan tidak mempengaruhi layanan untuk lalu lintas klien. Jika instans baru tidak lolos pemeriksaan kondisi, atau jika Anda memilih untuk membatalkan deployment, Elastic Beanstalk memindahkan lalu lintas kembali ke instans lama dan mengakhiri yang baru. Anda dapat membatalkan deployment apa pun dengan menggunakan halaman gambaran umum lingkungan di konsol Elastic Beanstalk, dan pilih Batalkan operasi saat ini di Tindakan lingkungan. Anda juga dapat memanggil AbortEnvironmentUpdateAPI atau AWS CLI perintah yang setara.

Deployment pembagian lalu lintas memerlukan Application Load Balancer. Elastic Beanstalk menggunakan jenis penyeimbang beban ini secara default saat Anda membuat lingkungan Anda menggunakan konsol Elastic Beanstalk atau EB CLI.

Namespace pilihan deployment

Anda dapat menggunakan pilihan konfigurasi di namespace aws:elasticbeanstalk:command untuk mengonfigurasi deployment Anda. Jika Anda memilih kebijakan pembagian lalu lintas, pilihan tambahan untuk kebijakan ini tersedia di namespace aws:elasticbeanstalk:trafficsplitting.

Gunakan pilihan DeploymentPolicy untuk mengatur jenis deployment. Nilai berikut didukung:

  • AllAtOnce – Menonaktifkan deployment bergulir dan selalu men-deploy ke semua instans secara bersamaan.

  • Rolling – Mengaktifkan deployment bergulir standar.

  • RollingWithAdditionalBatch – Meluncurkan batch ekstra instans, sebelum memulai deployment, untuk mempertahankan kapasitas penuh.

  • Immutable – Melakukan pembaruan tetap untuk setiap deployment.

  • TrafficSplitting – Melakukan deployment pembagian lalu lintas untuk menguji canary deployment aplikasi Anda.

Bila Anda mengaktifkan deployment bergulir, atur BatchSize dan pilihan BatchSizeType untuk mengonfigurasi ukuran setiap batch. Misalnya, untuk men-deploy 25 persen dari semua instans di setiap batch, tentukan pilihan dan nilai berikut.

contoh .ebextensions/rolling-updates.config
option_settings: aws:elasticbeanstalk:command: DeploymentPolicy: Rolling BatchSizeType: Percentage BatchSize: 25

Untuk men-deploy ke lima instans di setiap batch, terlepas dari jumlah instans yang sedang berjalan, dan untuk memunculkan batch tambahan lima instans menjalankan versi baru sebelum mengeluarkan setiap instans dari layanan, tentukan pilihan dan nilai berikut.

contoh .ebextensions/rolling-additionalbatch.config
option_settings: aws:elasticbeanstalk:command: DeploymentPolicy: RollingWithAdditionalBatch BatchSizeType: Fixed BatchSize: 5

Untuk melakukan pembaruan yang tidak berubah untuk setiap deployment dengan ambang batas pemeriksaan kondisi Peringatan, dan lanjutkan dengan deployment bahkan jika instans dalam batch tidak lolos pemeriksaan kondisi dalam batas waktu 15 menit, tentukan pilihan dan nilai berikut.

contoh .ebextensions/immutable-ignorehealth.config
option_settings: aws:elasticbeanstalk:command: DeploymentPolicy: Immutable HealthCheckSuccessThreshold: Warning IgnoreHealthCheck: true Timeout: "900"

Untuk melakukan deployment pembagian lalu lintas, teruskan 15 persen lalu lintas klien ke versi aplikasi baru dan mengevaluasi kondisi selama 10 menit, tentukan pilihan dan nilai berikut.

contoh .ebextensions/traffic-splitting.config
option_settings: aws:elasticbeanstalk:command: DeploymentPolicy: TrafficSplitting aws:elasticbeanstalk:trafficsplitting: NewVersionPercent: "15" EvaluationTime: "10"

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.