Integrazione CodeDeploy con Elastic Load Balancing - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Integrazione CodeDeploy con Elastic Load Balancing

Durante CodeDeploy le implementazioni, un sistema di bilanciamento del carico impedisce che il traffico Internet venga indirizzato verso istanze che non sono pronte, sono attualmente in fase di implementazione o non sono più necessarie come parte di un ambiente. Il ruolo esatto svolto dal sistema di bilanciamento del carico, tuttavia, varia a seconda del fatto che sia utilizzato in una distribuzione blu/verde o in una distribuzione in loco.

Nota

L'uso dei sistemi di bilanciamento del carico Elastic Load Balancing è obbligatorio nelle implementazioni blu/verdi e facoltativo nelle distribuzioni sul posto.

Tipi di sistema di bilanciamento del carico elastico

Elastic Load Balancing offre tre tipi di sistemi di bilanciamento del carico che possono essere utilizzati nelle CodeDeploy distribuzioni: Classic Load Balancer, Application Load Balancer e Network Load Balancer.

Classic Load Balancer

Instrada e fornisce bilanciamento del carico sia a livello di trasporto (SSL/HTTP) sia a livello di applicazione (HTTP/HTTPS). Supporta un VPC.

Nota

I sistemi Classic Load Balancer non sono supportati nelle distribuzioni di Amazon ECS.

Application Load Balancer

Instrada e fornisce bilanciamento del carico a livello di applicazione (HTTP/HTTPS) e supporta l'instradamento in base al percorso. È possibile instradare le richieste alle porte su ogni istanza EC2 o istanza di container nel virtual private cloud.

Nota

I gruppi target di Application Load Balancer devono avere un tipo di destinazione per le implementazioni su istanze EC2 e instance per le implementazioni Fargate. IP Per ulteriori informazioni, consulta Target type.

Network Load Balancer

Percorsi e bilanci di carico a livello di trasporto (TCP/UDP Layer-4) in base alle informazioni sugli indirizzi estratte dall'intestazione del pacchetto TCP, non dal contenuto del pacchetto. Il Network Load Balancer è in grado di gestire i picchi di traffico, mantenere l'IP sorgente del client e utilizzare un IP fisso per l'intera durata del sistema di bilanciamento del carico.

Per ulteriori informazioni sui sistemi di bilanciamento del carico Elastic Load Balancing, consulta i seguenti argomenti:

Distribuzioni blu/verde

Il reindirizzamento del traffico delle istanze dietro un sistema di bilanciamento del carico Elastic Load Balancing è fondamentale per le implementazioni blu/green. CodeDeploy

Durante una distribuzione blu/verde, il sistema di bilanciamento del carico consente al traffico di essere instradato verso le nuove istanze in un gruppo di distribuzione in cui è stata distribuita l'ultima revisione dell'applicazione (l'ambiente di sostituzione), in base alle regole che hai specificato, quindi blocca il traffico dalle istanze meno recenti in cui era in esecuzione la revisione precedente dell'applicazione (l'ambiente originale).

Dopo che le istanze in un ambiente sostitutivo sono state registrate con uno o più sistemi di bilanciamento del carico, le istanze dell'ambiente originale vengono annullate e, se lo desideri, terminate.

Per una distribuzione blu/verde, puoi specificare uno o più gruppi target Classic Load Balancer, Application Load Balancer o Network Load Balancer nel tuo gruppo di distribuzione. È possibile utilizzare la CodeDeploy console o aggiungere i sistemi di bilanciamento del carico AWS CLI a un gruppo di distribuzione.

Per ulteriori informazioni sui sistemi di bilanciamento del carico in distribuzioni blu/verdi, consulta i seguenti argomenti:

Distribuzioni locali

Durante una distribuzione in loco, un sistema di bilanciamento del carico impedisce che il traffico Internet venga instradato a un'istanza che è in fase di distribuzione, quindi rende l'istanza nuovamente disponibile per il traffico una volta completata la distribuzione a quell'istanza.

Se un sistema di bilanciamento del carico non viene utilizzato durante una distribuzione in loco, il traffico Internet potrebbe comunque essere indirizzato a un'istanza durante il processo di distribuzione. Di conseguenza, le applicazioni Web potrebbero risultare ai clienti non funzionanti, incomplete o non aggiornate. Quando utilizzi un load balancer Elastic Load Balancing con una distribuzione sul posto, le istanze di un gruppo di distribuzione vengono cancellate dal load balancer, aggiornate con l'ultima revisione dell'applicazione e quindi registrate nuovamente con il load balancer come parte dello stesso gruppo di distribuzione dopo il successo della distribuzione. CodeDeploy aspetterà fino a 1 ora prima che l'istanza diventi integra dopo il bilanciamento del carico. Se l'istanza non viene contrassegnata come integra dal load balancer durante il periodo di attesa, passa CodeDeploy all'istanza successiva o fallisce la distribuzione, in base alla configurazione di distribuzione.

Per una distribuzione sul posto, puoi specificare uno o più gruppi target Classic Load Balancer, Application Load Balancer o Network Load Balancer. È possibile specificare i load balancer come parte della configurazione del gruppo di distribuzione oppure utilizzare uno script fornito da per implementare i load balancer. CodeDeploy

Specificate il sistema di bilanciamento del carico di distribuzione sul posto utilizzando un gruppo di distribuzione

Per aggiungere sistemi di bilanciamento del carico a un gruppo di distribuzione, si utilizza la console o. CodeDeploy AWS CLI Per informazioni su come specificare un sistema di bilanciamento del carico in un gruppo di distribuzione per distribuzioni in loco, consulta i seguenti argomenti:

Specificare il sistema di bilanciamento del carico di distribuzione sul posto utilizzando uno script

Utilizza la procedura descritta di seguito per usare script per il ciclo di vita delle distribuzioni per configurare un sistema di bilanciamento del carico per distribuzioni in loco.

Nota

È necessario utilizzare il. CodeDeployDefault OneAtConfigurazione di distribuzione aTime solo quando si utilizza uno script per configurare un sistema di bilanciamento del carico per una distribuzione sul posto. Le esecuzioni simultanee non sono supportate e il. CodeDeployDefault OneAtL'impostazione ATime garantisce l'esecuzione seriale degli script. Per ulteriori dettagli sulle configurazioni della distribuzione, consulta Utilizzo delle configurazioni di distribuzione in CodeDeploy.

Nel repository CodeDeploy Samples su GitHub, forniamo istruzioni ed esempi che puoi adattare per utilizzare i sistemi di bilanciamento del carico CodeDeploy Elastic Load Balancing. Questi repository includono tre script di esempio: register_with_elb.shderegister_from_elb.sh, e common_functions.sh —che forniscono tutto il codice necessario per iniziare. È sufficiente modificare i segnaposto in questi tre script e fare riferimento agli script dal file appspec.yml.

Per configurare distribuzioni sul posto con istanze Amazon CodeDeploy EC2 registrate con sistemi di bilanciamento del carico Elastic Load Balancing, procedi come segue:

  1. Scarica gli esempi per il tipo di sistema di bilanciamento del carico che desideri utilizzare per una distribuzione in loco:

  2. Assicurati che su ciascuna delle tue istanze Amazon EC2 di destinazione sia installata. AWS CLI

  3. Assicurati che ciascuna delle tue istanze Amazon EC2 di destinazione abbia un profilo di istanza IAM associato almeno alle autorizzazioni elasticloadbalancing: * e autoscaling: *.

  4. Includi nella directory del codice sorgente dell'applicazione gli script degli eventi del ciclo di vita della distribuzione (register_with_elb.sh, deregister_from_elb.sh e common_functions.sh).

  5. Nella revisione appspec.yml per l'applicazione, fornisci le istruzioni per eseguire lo script durante l'evento e lo script durante CodeDeploy l'evento. register_with_elb.sh ApplicationStartderegister_from_elb.shApplicationStop

  6. Se l'istanza fa parte di un gruppo Amazon EC2 Auto Scaling, puoi saltare questo passaggio.

    Nello script common_functions.sh:

    • Se utilizzi Classic Load Balancer, specifica i nomi dei sistemi di bilanciamento del carico Elastic Load Balancing ELB_LIST="" in e apporta le modifiche necessarie alle altre impostazioni di distribuzione nel file.

    • Se utilizzi Application Load Balancer o Network Load Balancer, specifica i nomi dei gruppi target di Elastic Load Balancing TARGET_GROUP_LIST="" in e apporta le modifiche necessarie alle altre impostazioni di distribuzione nel file.

  7. Raggruppa il codice sorgente dell'applicazione, appspec.yml e gli script degli eventi del ciclo di vita della distribuzione in una revisione dell'applicazione, quindi carica quest'ultima. Implementa la revisione nelle istanze Amazon EC2. Durante la distribuzione, gli script degli eventi del ciclo di vita della distribuzione annulleranno la registrazione dell'istanza Amazon EC2 con il sistema di bilanciamento del carico, attenderanno che la connessione si esaurisca e quindi registreranno nuovamente l'istanza Amazon EC2 con il sistema di bilanciamento del carico al termine della distribuzione.