Integrasi CodeDeploy dengan Elastic Load Balancing - AWS CodeDeploy

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

Integrasi CodeDeploy dengan Elastic Load Balancing

Selama CodeDeploy penerapan, penyeimbang beban mencegah lalu lintas internet dialihkan ke instance ketika mereka tidak siap, saat ini sedang digunakan, atau tidak lagi diperlukan sebagai bagian dari lingkungan. Peran yang tepat yang dimainkan penyeimbang beban, bagaimanapun, tergantung pada apakah itu digunakan dalam penerapan biru/hijau atau penerapan di tempat.

catatan

Penggunaan penyeimbang beban Elastic Load Balancing adalah wajib dalam penerapan biru/hijau dan opsional dalam penerapan di tempat.

Jenis Elastic Load Balancing

Elastic Load Balancing menyediakan tiga jenis load balancer yang dapat digunakan dalam CodeDeploy penerapan: Classic Load Balancer, Application Load Balancers, dan Network Load Balancer.

Classic Load Balancer

Rute dan load balances baik di transport layer (TCP/SSL) atau layer aplikasi (HTTP/HTTPS). Ini mendukung VPC.

catatan

Classic Load Balancer tidak didukung dengan penerapan Amazon ECS.

Penyeimbang Beban Aplikasi

Rute dan load balances pada layer aplikasi (HTTP/HTTPS) dan mendukung routing berbasis jalur. Ini dapat merutekan permintaan ke port pada setiap instans EC2 atau instance kontainer di cloud pribadi virtual (VPC) Anda.

catatan

Grup target Application Load Balancer harus memiliki tipe target instance untuk penerapan pada instans EC2, dan untuk penerapan Fargate. IP Untuk informasi selengkapnya, lihat Jenis target.

Network Load Balancer

Rute dan load balances pada lapisan transport (TCP/UDP Layer-4) berdasarkan informasi alamat yang diekstrak dari header paket TCP, bukan dari konten paket. Network Load Balancer dapat menangani rentetan lalu lintas, mempertahankan IP sumber klien, dan menggunakan IP tetap untuk masa aktif load balancer.

Untuk mempelajari lebih lanjut tentang penyeimbang beban Elastic Load Balancing, lihat topik berikut:

Deployment Biru/Hijau

Mengalihkan lalu lintas instance di belakang penyeimbang beban Elastic Load Balancing sangat penting untuk penerapan biru/hijau. CodeDeploy

Selama penerapan biru/hijau, penyeimbang beban memungkinkan lalu lintas dialihkan ke instance baru dalam grup penerapan tempat revisi aplikasi terbaru telah digunakan (lingkungan pengganti), sesuai dengan aturan yang Anda tentukan, dan kemudian memblokir lalu lintas dari contoh lama tempat revisi aplikasi sebelumnya berjalan (lingkungan asli).

Setelah instance di lingkungan pengganti terdaftar dengan satu atau lebih penyeimbang beban, instance dari lingkungan asli dideregistrasi dan, jika Anda mau, dihentikan.

Untuk penerapan biru/hijau, Anda dapat menentukan satu atau beberapa Classic Load Balancer, grup target Application Load Balancer, atau grup target Network Load Balancer di grup penyebaran Anda. Anda menggunakan CodeDeploy konsol atau AWS CLI menambahkan penyeimbang beban ke grup penerapan.

Untuk informasi selengkapnya tentang penyeimbang beban dalam penerapan biru/hijau, lihat topik berikut:

Penerapan di tempat

Selama penerapan di tempat, penyeimbang beban mencegah lalu lintas internet dirutekan ke instance saat sedang digunakan, dan kemudian membuat instance tersedia untuk lalu lintas lagi setelah penerapan ke instance itu selesai.

Jika penyeimbang beban tidak digunakan selama penerapan di tempat, lalu lintas internet mungkin masih diarahkan ke instance selama proses penerapan. Akibatnya, pelanggan Anda mungkin mengalami aplikasi web yang rusak, tidak lengkap, atau usang. Saat Anda menggunakan penyeimbang beban Elastic Load Balancing dengan penerapan di tempat, instance dalam grup penerapan dideregistrasi dari penyeimbang beban, diperbarui dengan revisi aplikasi terbaru, dan kemudian didaftarkan ulang dengan penyeimbang beban sebagai bagian dari grup penyebaran yang sama setelah penerapan berhasil. CodeDeploy akan menunggu hingga 1 jam agar instance menjadi sehat di belakang penyeimbang beban. Jika instance tidak ditandai sebagai sehat oleh penyeimbang beban selama masa tunggu, CodeDeploy pindah ke instance berikutnya atau gagal penerapan, berdasarkan konfigurasi penerapan.

Untuk penerapan di tempat, Anda dapat menentukan satu atau beberapa Classic Load Balancer, grup target Application Load Balancer, atau grup target Network Load Balancer. Anda dapat menentukan penyeimbang beban sebagai bagian dari konfigurasi grup penyebaran, atau Anda dapat menggunakan skrip yang disediakan oleh CodeDeploy untuk mengimplementasikan penyeimbang beban.

Tentukan penyeimbang beban penerapan di tempat menggunakan grup penerapan

Untuk menambahkan penyeimbang beban ke grup penerapan, Anda menggunakan konsol atau. CodeDeploy AWS CLI Untuk informasi tentang menentukan penyeimbang beban dalam grup penerapan untuk penerapan di tempat, lihat topik berikut:

Tentukan penyeimbang beban penerapan di tempat menggunakan skrip

Gunakan langkah-langkah dalam prosedur berikut untuk menggunakan skrip siklus hidup penerapan guna menyiapkan penyeimbangan beban untuk penerapan di tempat.

catatan

Anda harus menggunakan CodeDeployDefault. OneAtKonfigurasi penerapan aTime hanya ketika Anda menggunakan skrip untuk menyiapkan penyeimbang beban untuk penerapan di tempat. Proses bersamaan tidak didukung, dan. CodeDeployDefault OneAtPengaturan aTime memastikan eksekusi serial skrip. Untuk informasi selengkapnya tentang konfigurasi penerapan, lihat. Bekerja dengan konfigurasi penerapan di CodeDeploy

Dalam repositori CodeDeploy Sampel aktif GitHub, kami memberikan instruksi dan sampel yang dapat Anda sesuaikan untuk menggunakan penyeimbang beban CodeDeploy Elastic Load Balancing. Repositori ini mencakup tiga contoh skrip—register_with_elb.sh,deregister_from_elb.sh, dan common_functions.sh —yang menyediakan semua kode yang Anda butuhkan untuk memulai. Cukup edit placeholder di ketiga skrip ini, dan kemudian referensi skrip ini dari file Anda. appspec.yml

Untuk menyiapkan penerapan di tempat dengan instans Amazon CodeDeploy EC2 yang terdaftar dengan penyeimbang beban Elastic Load Balancing, lakukan hal berikut:

  1. Unduh sampel untuk jenis penyeimbang beban yang ingin Anda gunakan untuk penerapan di tempat:

  2. Pastikan setiap instans Amazon EC2 target Anda telah diinstal. AWS CLI

  3. Pastikan setiap instans Amazon EC2 target Anda memiliki profil instans IAM yang dilampirkan dengan, setidaknya, izin elasticloadbalancing: * dan autoscaling: *.

  4. Sertakan dalam direktori kode sumber aplikasi Anda skrip peristiwa siklus hidup penerapan (register_with_elb.sh,, deregister_from_elb.sh dan). common_functions.sh

  5. Dalam appspec.yml untuk revisi aplikasi, berikan instruksi CodeDeploy untuk menjalankan register_with_elb.sh skrip selama ApplicationStartacara dan deregister_from_elb.sh skrip selama ApplicationStopacara berlangsung.

  6. Jika instans merupakan bagian dari grup Auto Scaling Amazon EC2, Anda dapat melewati langkah ini.

    Dalam common_functions.sh naskah:

    • Jika Anda menggunakan Classic Load Balancer, tentukan nama penyeimbang beban Elastic Load Balancing ELB_LIST="" di, dan buat perubahan apa pun yang Anda perlukan pada pengaturan penerapan lain dalam file.

    • Jika Anda menggunakan Application Load Balancer atau Network Load Balancer, tentukan nama nama grup target Elastic Load Balancing, dan buat perubahan apa pun yang Anda perlukan pada pengaturan penyebaran lain TARGET_GROUP_LIST="" dalam file.

  7. Bundel kode sumber aplikasi Anda, skrip peristiwa siklus hidup penerapanappspec.yml, dan penerapan ke dalam revisi aplikasi, lalu unggah revisi tersebut. Terapkan revisi ke instans Amazon EC2. Selama penerapan, skrip peristiwa siklus hidup penerapan akan membatalkan pendaftaran instans Amazon EC2 dengan penyeimbang beban, menunggu koneksi terkuras, dan kemudian mendaftarkan ulang instans Amazon EC2 dengan penyeimbang beban setelah penerapan selesai.