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à.
Distribuzione di applicazioni in ambienti Elastic Beanstalk
Puoi utilizzare la AWS Elastic Beanstalk console per aggiungere una versione aggiornata dell'applicazione e distribuirla nel tuo ambiente Elastic Beanstalk o ridistribuire una versione esistente. Con Beanstalk Standard, una versione dell'applicazione è un pacchetto sorgente aggiornato che carichi. Crea un bundle di sorgenti dell'applicazione Elastic Beanstalk
Ogni distribuzione è identificata da un ID della distribuzione. Gli ID distribuzione iniziano da 1 e vengono incrementati di uno a ogni distribuzione o modifica della configurazione dell'istanza. Attivando il reporting sullo stato migliorato, Elastic Beanstalk mostra l'ID distribuzione sia nella console dello stato, sia nella CLI EB quando comunica lo stato dell'istanza. L'ID della distribuzione consente di stabilire lo stato dell'ambiente quando un aggiornamento in sequenza ha esito negativo.
Elastic Beanstalk fornisce diverse policy e impostazioni di distribuzione. Per informazioni dettagliate sulla configurazione di una policy e di impostazioni aggiuntive, consulta Impostazioni e policy di distribuzione. Nella tabella seguente sono elencate le policy e i tipi di ambienti che le supportano.
| Policy di distribuzione | Load-balanced ambienti | Single-instance ambienti | Ambienti di Windows Server legacy† |
|---|---|---|---|
|
Tutto contemporaneamente |
|
|
|
|
In sequenza |
|
|
|
|
In sequenza con batch aggiuntivi |
|
|
|
|
Non modificabile |
|
|
|
|
Suddivisione del traffico |
|
|
|
† In questa tabella, un ambiente Windows Server legacy è un ambiente basato su una configurazione della piattaforma Windows Server che utilizza una versione IIS precedente a IIS 8.5.
avvertimento
Alcuni criteri sostituiscono tutte le istanze durante la distribuzione o l'aggiornamento. Ciò causa la perdita di tutti i saldi burst di Amazon EC2 accumulati. Succede nei seguenti casi:
-
Aggiornamenti della piattaforma gestiti con sostituzione delle istanze abilitata
-
Aggiornamenti non modificabili
-
Distribuzioni con aggiornamenti immutabili o suddivisione del traffico abilitata
Nota
Beanstalk Cluster viene eseguito su Amazon EKS e non è influenzato dalle bilance burst di Amazon EC2.
Scelta di una policy di distribuzione
La scelta della policy di distribuzione appropriata per l'applicazione è un compromesso di alcune considerazioni e dipende dalle esigenze specifiche. La pagina Impostazioni e policy di distribuzione contiene ulteriori informazioni su ogni policy e una descrizione dettagliata del funzionamento di alcune di esse.
Nell'elenco seguente vengono fornite informazioni di riepilogo sulle diverse policy di distribuzione con considerazioni correlate.
-
Tutto contemporaneamente: il metodo di distribuzione più rapido. Adatto se puoi accettare una breve perdita del servizio e se le distribuzioni rapide sono per te importanti. Con questo metodo Elastic Beanstalk distribuisce la nuova versione dell'applicazione in ogni istanza. Quindi, potrebbe essere necessario riavviare il proxy Web o il server applicazioni. Di conseguenza, l'applicazione potrebbe non essere disponibile per gli utenti (o avere bassa disponibilità) per un breve periodo.
Nota
Con Beanstalk Cluster, questo è il valore dell'opzione di configurazione.
RecreatestrategyConsulta Opzioni di configurazione per ambienti Beanstalk Cluster. -
In sequenza: evita i tempi di inattività e contiene al minimo la disponibilità ridotta, ma con tempi di distribuzione più lunghi. Adatto se non puoi accettare un periodo con perdita del servizio totale. Con questo metodo, l'applicazione viene distribuita nell'ambiente in uso per un batch di istanze alla volta. La maggior parte della larghezza di banda viene mantenuta per tutta la distribuzione.
Nota
Beanstalk Cluster supporta implementazioni continue, configurate tramite le opzioni di
max-unavailableconfigurazionemax-surgee non selezionate come policy denominata.max-surgelimita il numero di repliche che Elastic Beanstalk aggiunge oltre il numero desiderato emax-unavailablelimita il numero di repliche che ne elimina alla volta. Unmax-unavailableof0, che è l'impostazione predefinita, impedisce all'ambiente di scendere al di sotto del numero di repliche desiderato durante una distribuzione. Consulta Opzioni di configurazione per ambienti Beanstalk Cluster. -
In sequenza con batch aggiuntivi: evita la disponibilità ridotta, ma con tempi di distribuzione ancora più lunghi rispetto al metodo In sequenza. Adatto se è necessario mantenere la stessa larghezza di banda per tutta la distribuzione. Con questo metodo Elastic Beanstalk avvia un batch aggiuntivo di istanze, quindi esegue una distribuzione in sequenza. L'avvio del batch aggiuntivo richiede tempo e garantisce che la stessa larghezza di banda venga mantenuta per tutta la distribuzione.
Nota
Attualmente solo Beanstalk Standard espone Rolling with batch aggiuntivo come tipo di distribuzione distinto. In Beanstalk Cluster, lo stesso comportamento di rolling a piena capacità viene invece ottenuto tramite le impostazioni di rolling-update: ciò
0impedisce all'ambiente di scendere almax-unavailabledi sotto del numero di repliche desiderato emax-surgecontrolla quante repliche aggiuntive possono essere avviate durante l'implementazione. Questo è il comportamento predefinito del Cluster, con at e at.max-unavailable0max-surge1 -
Non modificabile: metodo di distribuzione più lento che assicura che la nuova versione dell'applicazione venga sempre distribuita nelle nuove istanze, anziché aggiornare le istanze esistenti. Ha anche il vantaggio aggiuntivo di un rollback rapido e sicuro nel caso in cui la distribuzione non riesca. Con questo metodo, Elastic Beanstalk esegue un aggiornamento non modificabile per distribuire l'applicazione. In un aggiornamento non modificabile viene avviato un secondo gruppo Auto Scaling nel tuo ambiente e la nuova versione serve il traffico insieme alla versione precedente fino a quando le nuove istanze superano i controlli dello stato.
Nota
Attualmente solo Beanstalk Standard supporta implementazioni immutabili.
-
Suddivisione del traffico: metodo di distribuzione con test canary. Adatto se vuoi verificare l'integrità della nuova versione dell'applicazione utilizzando una parte del traffico in entrata, mantenendo il resto del traffico servito dalla versione precedente dell'applicazione.
Nota
Attualmente solo Beanstalk Standard supporta le implementazioni di suddivisione del traffico.
Nella tabella seguente vengono confrontate le proprietà dei metodi di distribuzione.
| Metodo | Impatto di una distribuzione non riuscita | Orario di distribuzione | Nessun tempo di inattività | Nessuna modifica DNS | Processo di rollback | Codice distribuito in |
|---|---|---|---|---|---|---|
| Tutto contemporaneamente | Tempo di inattività |
|
|
|
Ridistribuzione manuale | Istanze esistenti |
| In sequenza | Batch singolo fuori servizio: un qualsiasi batch completato con successo prima del fallimento dell'esecuzione di una nuova versione dell'applicazione |
† |
|
|
Ridistribuzione manuale | Istanze esistenti |
| In sequenza con batch aggiuntivi | Minima se il primo batch ha esito negativo; altrimenti simile a Rolling (In sequenza) |
† |
|
|
Ridistribuzione manuale | Istanze nuove ed esistenti |
| Non modificabile | Minima |
|
|
|
Termina nuove istanze | Nuove istanze |
| Suddivisione del traffico | Percentuale di traffico client instradato alla nuova versione interessata temporaneamente |
†† |
|
|
Reindirizza il traffico e termina le nuove istanze | Nuove istanze |
| Blue/green | Minima |
|
|
|
Scambia URL | Nuove istanze |
† Varia in base alle dimensioni del batch.
†† Varia in base all'impostazione dell'opzione del tempo di valutazione.
Distribuzione di una nuova versione dell'applicazione
È possibile eseguire le distribuzioni dal pannello di controllo dell'ambiente.
Per distribuire una nuova versione dell'applicazione in un ambiente Elastic Beanstalk
Apri la console https://console.aws.amazon.com/elasticbeanstalk
Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS -
Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.
-
Selezionare Upload and Deploy (Carica e distribuisci).
-
Utilizza il modulo su schermo per caricare il bundle di origine dell'applicazione.
-
Seleziona Implementa.
Ridistribuzione di una versione precedente
Puoi anche distribuire una versione esistente dell'applicazione dalla pagina delle versioni dell'applicazione in qualsiasi ambiente dell'applicazione con cui la versione è compatibile. Una versione del bundle sorgente viene distribuita in un ambiente Beanstalk Standard e una versione con immagine contenitore viene distribuita in un ambiente Beanstalk Cluster.
Per distribuire una versione dell'applicazione esistente in un ambiente esistente
Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua.
Regione AWS -
Nel riquadro di navigazione, scegliere Applicazioni, quindi selezionare il nome dell'applicazione dall'elenco.
Nel riquadro di spostamento individuare il nome dell'applicazione e scegliere Application versions (Versioni applicazione).
-
Selezionare la versione dell'applicazione da distribuire.
-
Scegliere Actions (Operazioni), quindi Deploy (Distribuisci).
-
Selezionare un ambiente, quindi scegliere Deploy (Distribuisci).
Altri modi per distribuire l'applicazione
Se si distribuisce spesso, è consigliabile utilizzare l'interfaccia a riga di comando di Elastic Beanstalk (CLI EB) per gestire gli ambienti. La CLI EB crea un repository insieme al codice sorgente. Può anche creare un bundle di origine, caricarlo in Elastic Beanstalk e distribuirlo con un singolo comando.
Per le distribuzioni che dipendono da modifiche alla configurazione delle risorse o da una nuova versione che non può essere eseguita insieme alla vecchia versione, puoi avviare un nuovo ambiente con la nuova versione ed eseguire uno scambio CNAME per una distribuzione. blue/green
Per automatizzare i processi di creazione, test e distribuzione, puoi implementare l'integrazione continua e la distribuzione continua () CI/CD con il tuo ambiente Elastic Beanstalk. Per ulteriori informazioni, consulta CI/CD Implementazione dell'integrazione con il tuo ambiente Elastic Beanstalk.