La mia comprensione di Elastic Beanstalk è che quando si distribuisce una nuova versione della propria app, questa viene distribuita alle istanze Amazon EC2 una alla volta (se ne sono presenti più di una). Tuttavia, anche con un minimo di due istanze, la mia applicazione subisce un breve periodo di inattività quando carico un nuovo .war
quando lo distribuisce, come se lo stesse aggiornando entrambi contemporaneamente. C'è un modo per garantire che non ci siano tempi di inattività e che un'istanza sia completamente aggiornata e che accetti le richieste prima del prossimo avvio: ecco come appaiono gli eventi. Nota questo è con carico zero sull'app, quindi peggiorerà solo con il traffico di produzione.Come prevenire i tempi di inattività durante l'implementazione di AWS Elastic Beanstalk di una nuova versione dell'app?
INFO
Environment update completed successfully.
INFO
New application version was deployed to running EC2 instances.
ERROR
The application did not respond at the health check URL.
INFO
Waiting for 8 seconds while EC2 instances download the updated application version.
INFO
Deploying version SomethingMore to 2 instance(s).
Grazie, lo scambio CNAME dell'ambiente è esattamente quello che stavo cercando. – Peter
L'ho provato sulla mia app di produzione e ho osservato che anche dopo lo scambio di CNAME e l'attesa per la scadenza dei TTL DNS, una parte considerevole del traffico si dirigeva ancora verso il vecchio ambiente beanstalk. Sospetto che ciò sia dovuto al fatto che i client mantengono la cache DNS più a lungo di quanto dovrebbero. Se non si può fare affidamento sui client per obbedire ai TTL, allora questa tecnica di scambio CNAME non sembra essere un modo affidabile per eseguire distribuzioni ZDD con Beanstalk. –
@AaronIba Un'ottima osservazione. Ti è venuto in qualche modo alternativo?Sto pensando di sovrascrivere semplicemente la versione dell'applicazione esistente e di chiudere manualmente le istanze esistenti (ASG dovrebbe incrementare le nuove e tirare la versione dell'applicazione aggiornata). Ma questo è un processo manuale/lento/ingombrante e si sente come un hack. –