Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sumber daya Network Load Balancer untuk penerapan biru/hijau Amazon ECS
Untuk menggunakan Network Load Balancer dengan blue/green penerapan Amazon ECS, Anda perlu mengonfigurasi sumber daya tertentu yang memungkinkan perutean lalu lintas antara revisi layanan biru dan hijau. Bagian ini menjelaskan komponen yang diperlukan dan konfigurasinya.
Jika konfigurasi Anda menyertakan Network Load Balancer, Amazon ECS menambahkan penundaan 10 menit ke tahapan siklus hidup berikut:
-
PRE_SCALE_UP
-
TEST_TRAFFIC_SHIFT
-
PRODUCTION_TRAFFIC_SHIFT
Penundaan ini menyebabkan masalah waktu Network Load Balancer yang dapat menyebabkan ketidakcocokan antara bobot lalu lintas yang dikonfigurasi dan perutean lalu lintas aktual di bidang data.
Kelompok-kelompok target
Untuk blue/green penerapan dengan Network Load Balancer, Anda perlu membuat dua grup target:
-
Kelompok sasaran utama untuk revisi layanan biru (lalu lintas produksi saat ini)
-
Kelompok sasaran alternatif untuk revisi layanan hijau (revisi layanan baru)
Kedua grup target harus dikonfigurasi dengan pengaturan berikut:
-
Jenis target:
ip
(untuk Fargate atau EC2 dengan modeawsvpc
jaringan) -
Protokol:
TCP
(atau protokol yang digunakan aplikasi Anda) -
Port: Port yang didengarkan aplikasi Anda (biasanya
80
untuk HTTP) -
VPC: VPC yang sama dengan tugas Amazon ECS Anda
-
Pengaturan pemeriksaan Kesehatan: Dikonfigurasi untuk memeriksa kesehatan aplikasi Anda dengan benar
Untuk pemeriksaan kesehatan TCP, Network Load Balancer membuat koneksi TCP dengan target. Jika koneksi berhasil, target dianggap sehat.
Untuk pemeriksaan HTTP/HTTPS kesehatan, Network Load Balancer mengirimkan HTTP/HTTPS permintaan ke target dan memverifikasi respons.
Selama blue/green penerapan, Amazon ECS secara otomatis mendaftarkan tugas dengan grup target yang sesuai berdasarkan tahap penerapan.
contoh Membuat grup target untuk Network Load Balancer
Perintah AWS CLI berikut membuat dua grup target untuk digunakan dengan Network Load Balancer dalam penerapan: blue/green
aws elbv2 create-target-group \ --name
blue-target-group
\ --protocol TCP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-protocol TCP aws elbv2 create-target-group \ --namegreen-target-group
\ --protocol TCP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-protocol TCP
Penyeimbang Beban Jaringan
Anda perlu membuat Network Load Balancer dengan konfigurasi berikut:
-
Skema: Menghadap internet atau internal, tergantung pada kebutuhan Anda
-
Jenis alamat IP: IPv4
-
VPC: VPC yang sama dengan tugas Amazon ECS Anda
-
Subnet: Setidaknya dua subnet di Availability Zone yang berbeda
Tidak seperti Application Load Balancer, Network Load Balancer beroperasi pada lapisan transport (Layer 4) dan tidak menggunakan grup keamanan. Sebagai gantinya, Anda perlu memastikan bahwa grup keamanan yang terkait dengan tugas Amazon ECS Anda mengizinkan lalu lintas dari Network Load Balancer pada port listener.
contoh Membuat Network Load Balancer
Perintah AWS CLI berikut membuat Network Load Balancer untuk digunakan dalam penerapan: blue/green
aws elbv2 create-load-balancer \ --name
my-network-load-balancer
\ --type network \ --subnetssubnet-12345678
subnet-87654321
Pertimbangan untuk menggunakan NLB dengan penerapan blue/green
Saat menggunakan Network Load Balancer untuk blue/green penerapan, pertimbangkan hal berikut:
-
Operasi Layer 4: Network Load Balancer beroperasi pada lapisan transport (Layer 4) dan tidak memeriksa konten layer aplikasi (Layer 7). Ini berarti Anda tidak dapat menggunakan header atau jalur HTTP untuk keputusan perutean.
-
Pemeriksaan kesehatan: Pemeriksaan kesehatan Network Load Balancer terbatas pada protokol TCP, HTTP, atau HTTPS. Untuk pemeriksaan kesehatan TCP, Network Load Balancer hanya memverifikasi bahwa koneksi dapat dibuat.
-
Pelestarian koneksi: Network Load Balancers mempertahankan alamat IP sumber klien, yang dapat berguna untuk tujuan keamanan dan pencatatan.
-
Alamat IP statis: Network Load Balancer menyediakan alamat IP statis untuk setiap subnet, yang dapat berguna untuk daftar putih atau ketika klien perlu terhubung ke alamat IP tetap.
-
Lalu lintas uji: Karena Network Load Balancer tidak mendukung routing berbasis konten, lalu lintas uji harus dikirim ke port yang berbeda dari lalu lintas produksi.
Pendengar dan aturan
Untuk blue/green penerapan dengan Network Load Balancer, Anda perlu mengonfigurasi listener:
-
Pendengar produksi: Menangani lalu lintas produksi (biasanya di port 80 atau 443)
-
Awalnya meneruskan lalu lintas ke kelompok sasaran utama (revisi layanan biru)
-
Setelah penyebaran, teruskan lalu lintas ke grup target alternatif (revisi layanan hijau)
-
-
Uji pendengar (opsional): Menangani lalu lintas pengujian untuk memvalidasi revisi layanan hijau sebelum mengalihkan lalu lintas produksi
-
Dapat dikonfigurasi pada port yang berbeda (misalnya, 8080 atau 8443)
-
Meneruskan lalu lintas ke kelompok sasaran alternatif (revisi layanan hijau) selama pengujian
-
Tidak seperti Application Load Balancer, Network Load Balancer tidak mendukung aturan routing berbasis konten. Sebaliknya, lalu lintas dirutekan berdasarkan port dan protokol pendengar.
Perintah AWS CLI berikut membuat pendengar produksi dan pengujian untuk Network Load Balancer:
Ganti user-input
dengan nilai-nilai Anda.
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/net/my-network-lb/1234567890123456
\ --protocol TCP \ --port 80 \ --default-actions Type=forward, TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/1234567890123456
aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:region:123456789012:loadbalancer/net/my-network-lb/1234567890123456
\ --protocol TCP \ --port 8080 \ --default-actions Type=forward, TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/1234567890123456
Konfigurasi layanan
Anda harus memiliki izin untuk mengizinkan Amazon ECS mengelola sumber daya penyeimbang beban di klaster atas nama Anda. Untuk informasi selengkapnya, lihat Peran IAM infrastruktur Amazon ECS untuk penyeimbang beban.
Saat membuat atau memperbarui layanan Amazon ECS untuk blue/green penerapan dengan Network Load Balancer, Anda perlu menentukan konfigurasi berikut:
Ganti user-input
dengan nilai-nilai Anda.
Komponen kunci dalam konfigurasi ini adalah:
-
targetGroupArn
: ARN dari kelompok sasaran utama (revisi layanan biru) -
alternateTargetGroupArn
: ARN dari kelompok sasaran alternatif (revisi layanan hijau) -
productionListenerArn
: ARN pendengar untuk lalu lintas produksi -
testListenerArn
: (Opsional) ARN pendengar untuk lalu lintas uji -
roleArn
: ARN dari peran yang memungkinkan Amazon ECS mengelola sumber daya Network Load Balancer -
strategy
: SetelBLUE_GREEN
untuk mengaktifkan blue/green penerapan -
bakeTimeInMinutes
: Durasi untuk menunggu setelah revisi layanan hijau dikerahkan sebelum mengalihkan lalu lintas produksi
{ "loadBalancers": [ { "targetGroupArn": "
arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/1234567890123456
", "containerName": "container-name", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/1234567890123456
", "productionListenerArn": "arn:aws:elasticloadbalancing:region:123456789012:listener/net/my-network-lb/1234567890123456/1234567890123456
", "testListenerArn": "arn:aws:elasticloadbalancing:region:123456789012:listener/net/my-network-lb/1234567890123456/2345678901234567
", "roleArn": "arn:aws:iam::123456789012:role/ecs-nlb-role
" } } ], "deploymentConfiguration": { "strategy": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 5 } }
Arus lalu lintas selama penyebaran
Selama blue/green penyebaran dengan Network Load Balancer, lalu lintas mengalir melalui sistem sebagai berikut:
-
Status awal: Semua lalu lintas produksi diarahkan ke kelompok sasaran utama (revisi layanan biru).
-
Penyebaran revisi layanan hijau: Amazon ECS menyebarkan tugas baru dan mendaftarkannya ke grup target alternatif.
-
Lalu lintas pengujian: Jika pendengar pengujian dikonfigurasi, lalu lintas pengujian dirutekan ke grup target alternatif untuk memvalidasi revisi layanan hijau.
-
Pergeseran lalu lintas produksi: Amazon ECS memperbarui pendengar produksi untuk merutekan lalu lintas ke grup target alternatif (revisi layanan hijau).
-
Waktu memanggang: Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser.
-
Penyelesaian: Setelah penerapan berhasil, revisi layanan biru dihentikan.
Jika masalah terdeteksi selama penerapan, Amazon ECS dapat secara otomatis memutar kembali dengan merutekan lalu lintas kembali ke grup target utama (revisi layanan biru).