Sumber daya Application Load Balancer untuk penerapan blue/green - Amazon Elastic Container Service

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 mode awsvpc 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-id vpc-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 \ --name green-target-group \ --protocol HTTP \ --port 80 \ --vpc-id vpc-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-groups sg-abcd1234 \ --subnets subnet-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: Setel BLUE_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:

  1. Status awal: Semua lalu lintas produksi diarahkan ke kelompok sasaran utama (revisi layanan biru).

  2. Penyebaran revisi layanan hijau: Amazon ECS menyebarkan tugas baru dan mendaftarkannya ke grup target alternatif.

  3. Lalu lintas pengujian: Jika pendengar pengujian dikonfigurasi, lalu lintas pengujian dirutekan ke grup target alternatif untuk memvalidasi revisi layanan hijau.

  4. Pergeseran lalu lintas produksi: Amazon ECS memperbarui aturan pendengar produksi untuk merutekan lalu lintas ke grup target alternatif (revisi layanan hijau).

  5. Waktu memanggang: Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser.

  6. 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).