Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Sumber daya Application Load Balancer untuk penerapan blue/green
Untuk menggunakan Application Load Balancers dengan blue/green penerapan Amazon ECS, Anda perlu mengonfigurasi sumber daya tertentu yang memungkinkan perutean lalu lintas antara revisi layanan biru dan hijau.
Batasan
Batasan berikut saat ini berlaku untuk blue/green penerapan dengan Application Load Balancers:
-
Penerapan biru/hijau tidak didukung saat menggunakan pendengar Application Load Balancer yang memiliki beberapa tipe tindakan yang dikonfigurasi dengan tindakan non-penerusan. Jika aturan pendengar Application Load Balancer berisi campuran tindakan penerusan dan non-penerusan (seperti tindakan pengalihan, respons tetap, atau mengautentikasi), penerapan akan gagal.
Kelompok-kelompok target
Untuk blue/green penerapan dengan Elastic Load Balancing, Anda perlu membuat dua grup target:
-
Kelompok sasaran utama untuk revisi layanan biru (lalu lintas produksi saat ini)
-
Grup target alternatif untuk revisi layanan hijau (versi baru)
Kedua grup target harus dikonfigurasi dengan pengaturan berikut:
-
Jenis target:
IP
(untuk Fargate atau EC2 dengan modeawsvpc
jaringan) -
Protokol:
HTTP
(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
Selama blue/green penerapan, Amazon ECS secara otomatis mendaftarkan tugas dengan grup target yang sesuai berdasarkan tahap penerapan.
contoh Membuat grup target untuk Application Load Balancer
Perintah CLI berikut membuat dua kelompok target untuk digunakan dengan Application Load Balancer dalam penerapan: blue/green
aws elbv2 create-target-group \ --name
blue-target-group
\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2 aws elbv2 create-target-group \ --namegreen-target-group
\ --protocol HTTP \ --port 80 \ --vpc-idvpc-abcd1234
\ --target-type ip \ --health-check-path / \ --health-check-protocol HTTP \ --health-check-interval-seconds 30 \ --health-check-timeout-seconds 5 \ --healthy-threshold-count 2 \ --unhealthy-threshold-count 2
Penyeimbang Beban Aplikasi
Anda perlu membuat Application 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
-
Grup keamanan: Grup keamanan yang memungkinkan lalu lintas di port pendengar
Grup keamanan yang dilampirkan pada Application Load Balancer harus memiliki aturan keluar yang memungkinkan lalu lintas ke grup keamanan yang dilampirkan ke tugas Amazon ECS Anda.
contoh Membuat Application Load Balancer
Perintah CLI berikut membuat Load Balancer Aplikasi untuk digunakan dalam penerapan biru/hijau:
aws elbv2 create-load-balancer \ --name
my-application-load-balancer
\ --type application \ --security-groupssg-abcd1234
\ --subnetssubnet-12345678
subnet-87654321
Pendengar dan aturan
Untuk blue/green penerapan, Anda perlu mengonfigurasi listener di Application Load Balancer Anda:
-
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
-
Selama blue/green penerapan, Amazon ECS secara otomatis memperbarui aturan pendengar untuk merutekan lalu lintas ke grup target yang sesuai berdasarkan tahap penerapan.
contoh Membuat pendengar produksi
Perintah CLI berikut membuat pendengar produksi pada port 80 yang meneruskan lalu lintas ke grup target utama (biru):
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456
\ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/blue-target-group/abcdef123456
contoh Membuat pendengar tes
Perintah CLI berikut membuat pendengar pengujian pada port 8080 yang meneruskan lalu lintas ke grup target alternatif (hijau):
aws elbv2 create-listener \ --load-balancer-arn
arn:aws:elasticloadbalancing:region:123456789012:loadbalancer/app/my-application-load-balancer/abcdef123456
\ --protocol HTTP \ --port 8080 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
contoh Membuat aturan pendengar untuk perutean berbasis jalur
Perintah CLI berikut membuat aturan yang meneruskan lalu lintas untuk jalur tertentu ke grup target hijau untuk pengujian:
aws elbv2 create-rule \ --listener-arn
arn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012
\ --priority 10 \ --conditions Field=path-pattern,Values='/test/*' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
contoh Membuat aturan pendengar untuk perutean berbasis header
Perintah CLI berikut membuat aturan yang meneruskan lalu lintas dengan header tertentu ke grup target hijau untuk pengujian:
aws elbv2 create-rule \ --listener-arn
arn:aws:elasticloadbalancing:region:123456789012:listener/app/my-application-load-balancer/abcdef123456/ghijkl789012
\ --priority 20 \ --conditions Field=http-header,HttpHeaderConfig='{Name=X-Environment,Values=[test]}' \ --actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:123456789012:targetgroup/green-target-group/ghijkl789012
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 Elastic Load Balancing, 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). -
productionListenerRule
: ARN dari aturan pendengar untuk lalu lintas produksi. -
roleArn
: ARN dari peran yang memungkinkan Amazon ECS mengelola sumber daya Elastic Load Balancing. -
strategy
: SetelBLUE_GREEN
untuk mengaktifkan penerapan biru/hijau. -
bakeTimeInMinutes
: Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser. -
TestListenerRule
: ARN dari aturan pendengar untuk lalu lintas uji. Ini adalah parameter opsional.
{ "loadBalancers": [ { "targetGroupArn": "
arn:aws:elasticloadbalancing:region:123456789012:targetgroup/primary-target-group/abcdef123456
", "containerName": "container-name", "containerPort": 80, "advancedConfiguration": { "alternateTargetGroupArn": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/alternate-target-group/ghijkl789012
", "productionListenerRule": "arn:aws:elasticloadbalancing:region:account-id:listener-rule/app/load-balancer-name/abcdef123456/listener/ghijkl789012/rule/mnopqr345678
", "roleArn": "arn:aws:iam::123456789012:role/ecs-elb-role
" } } ], "deploymentConfiguration": { "strategy": "BLUE_GREEN", "maximumPercent": 200, "minimumHealthyPercent": 100, "bakeTimeInMinutes": 5 } }
Arus lalu lintas selama penyebaran
Selama blue/green penyebaran dengan Elastic Load Balancing, 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 aturan 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).