View a markdown version of this page

Sumber daya Penyeimbang Beban Aplikasi untuk pener blue/green apan, linier, dan canary - 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 Penyeimbang Beban Aplikasi untuk pener blue/green apan, linier, dan canary

Untuk menggunakan Application Load Balancers dengan penerapan Amazon ECS blue/green , Anda perlu mengonfigurasi sumber daya tertentu yang memungkinkan perutean lalu lintas antara revisi layanan biru dan hijau.

Kelompok-kelompok target

Untuk blue/green penerapan dengan Elastic Load Balancing, Anda perlu membuat dua grup target:

  • Kelompok target utama untuk revisi layanan biru (lalu lintas produksi saat ini)

  • Kelompok target alternatif untuk revisi layanan hijau (versi baru)

Kedua kelompok 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 kelompok target yang sesuai berdasarkan tahap penerapan.

contoh Membuat grup target untuk Penyeimbang Beban Aplikasi

Perintah CLI berikut membuat dua grup 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: Internet-facing atau internal, tergantung pada kebutuhan Anda

  • Jenis alamat IP: IPv4

  • VPC: VPC yang sama dengan tugas Amazon ECS Anda

  • Subnet: Setidaknya dua subnet di Zona Ketersediaan yang berbeda

  • Grup keamanan: Grup keamanan yang mengizinkan lalu lintas pada port pendengar

Grup keamanan yang dilampirkan ke Application Load Balancer harus memiliki aturan keluar yang memungkinkan lalu lintas ke grup keamanan yang dilampirkan ke tugas Amazon ECS Anda.

contoh Membuat Penyeimbang Beban Aplikasi

Perintah CLI berikut membuat Application Load Balancer untuk digunakan dalam penerapan: blue/green

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 pener blue/green apan, Anda perlu mengonfigurasi pendengar di Application Load Balancer Anda:

  • Pendengar produksi: Menangani lalu lintas produksi (biasanya pada port 80 atau 443)

    • Awalnya meneruskan lalu lintas ke kelompok target utama (revisi layanan biru)

    • Setelah penerapan, meneruskan lalu lintas ke kelompok target alternatif (revisi layanan hijau)

  • Tes 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 target 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 uji 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 routing 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 routing 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 cluster Anda atas nama Anda. Untuk informasi selengkapnya, lihat Peran IAM infrastruktur Amazon ECS untuk penyeimbang beban.

Saat membuat atau memperbarui layanan Amazon ECS untuk penerapan blue/green dengan Elastic Load Balancing, Anda perlu menentukan konfigurasi berikut.

Ganti user-input dengan nilai-nilai Anda.

Komponen utama dalam konfigurasi ini adalah:

  • targetGroupArn: ARN dari kelompok sasaran utama (revisi layanan biru).

  • alternateTargetGroupArn: ARN dari kelompok sasaran alternatif (revisi layanan hijau).

  • productionListenerRule: ARN aturan pendengar untuk lalu lintas produksi.

  • roleArn: ARN peran yang memungkinkan Amazon ECS mengelola sumber daya Elastic Load Balancing.

  • strategy: Setel BLUE_GREEN untuk mengaktifkan pener blue/green apan.

  • bakeTimeInMinutes: Durasi ketika revisi layanan biru dan hijau berjalan secara bersamaan setelah lalu lintas produksi bergeser.

  • TestListenerRule: ARN 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 } }

Aliran lalu lintas selama penerapan

Selama blue/green penerapan dengan Elastic Load Balancing, lalu lintas mengalir melalui sistem sebagai berikut:

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

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

  3. Lalu lintas uji: Jika pendengar pengujian dikonfigurasi, lalu lintas pengujian dialihkan 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. Pen yelesaian: 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).