View a markdown version of this page

Distribuzione di un WordPress sito Web ad alta disponibilità con un database Amazon RDS esterno su Elastic Beanstalk - AWS Elastic Beanstalk

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 un WordPress sito Web ad alta disponibilità con un database Amazon RDS esterno su Elastic Beanstalk

Questo tutorial descrive come avviare un'istanza DB di Amazon RDS esterna a AWS Elastic Beanstalk, quindi come configurare un ambiente ad alta disponibilità che esegue un sito Web per connettersi ad essa. WordPress Il sito Web utilizza Amazon Elastic File System (Amazon EFS) come storage condiviso per i file caricati.

L'esecuzione di un'istanza database esterna a Elastic Beanstalk separa il database dal ciclo di vita dell'ambiente. Ciò consente di connettersi allo stesso database da più ambienti, sostituire un database con un altro o eseguire una blue/green distribuzione senza influire sul database.

Nota

Per informazioni aggiornate sulla compatibilità delle versioni di PHP con WordPress le versioni, consultate Compatibilità e WordPress versioni di PHP sul WordPress sito Web. È necessario fare riferimento a queste informazioni prima di eseguire l'aggiornamento a una nuova versione di PHP per le proprie WordPress implementazioni.

Prerequisiti

Questo tutorial presuppone determinate conoscenze sulle operazioni di base di Elastic Beanstalk e della console Elastic Beanstalk. Se non lo hai già fatto, segui le istruzioni in Scopri come iniziare a usare Elastic Beanstalk per avviare il tuo primo ambiente Elastic Beanstalk.

Per seguire le procedure in questa guida, devi usare un terminale a riga di comando o una shell per eseguire i comandi. I comandi vengono visualizzati in elenchi preceduti da un simbolo di prompt ($) e dal nome della directory corrente, se appropriato.

~/eb-project$ this is a command this is output

Su Linux e macOS usa la tua shell e il tuo programma di gestione dei pacchetti preferiti. Su Windows puoi installare il sottosistema Windows per Linux per ottenere una Windows-integrated versione di Ubuntu e Bash.

VPC di default

Le procedure Amazon Relational Database Service (Amazon RDS) descritte in questo tutorial presuppongono che si stiano avviando risorse in un Amazon Virtual Private Cloud (Amazon VPC) predefinito. Tutti i nuovi account includono un VPC predefinito in ogni regione. AWS Se non hai un VPC predefinito, le procedure variano. Consulta le istruzioni Utilizzo di Elastic Beanstalk con Amazon RDS per EC2-Classic le piattaforme VPC personalizzate.

AWS Regioni

L'applicazione di esempio utilizza Amazon EFS, che funziona solo nelle AWS regioni che supportano Amazon EFS. Per informazioni sulle AWS regioni supportate, consulta Amazon Elastic File System Endpoints and Quotas nel. Riferimenti generali di AWS

Avvio di un'istanza database in Amazon RDS

Quando avvii un'istanza con Amazon RDS, è completamente indipendente da Elastic Beanstalk e dagli ambienti Elastic Beanstalk, e non verrà terminata né monitorata da Elastic Beanstalk.

Nelle fasi seguenti, si utilizzerà la console Amazon RDS per:

  • Lanciare un database con il motore MySQL.

  • Abilita una Multi-AZ distribuzione. Ciò crea uno standby in una zona di disponibilità (AZ) diversa per fornire ridondanza dei dati, eliminare i I/O blocchi e ridurre al minimo i picchi di latenza durante i backup del sistema.

Per avviare un'istanza database RDS in un VPC predefinito
  1. Aprire la console di RDS.

  2. Nel riquadro di navigazione, scegliere Databases (Database).

  3. Scegliere Create database (Crea database).

  4. Scegliere Standard Create (Creazione standard).

    Importante

    Non selezionare Easy Create (Creazione rapida). Se viene selezionata questa opzione, non è possibile configurare le impostazioni necessarie per avviare questo database RDS.

  5. In Additional configuration (Configurazione aggiuntiva), digitare ebdb per Initial database name (Nome database iniziale).

  6. Controllare le impostazioni di default e regolare queste impostazioni in base alle proprie esigenze specifiche. Prestare particolare attenzione alle seguenti opzioni:

    • DB instance class (Classe di istanze database): scegliere una dimensione di istanza con capacità di memoria e potenza di CPU sufficienti per il tuo carico di lavoro.

    • Multi-AZ distribuzione: per un'elevata disponibilità, impostalo su Crea un nodo Aurora in una AZ diversa. Replica/Reader

    • Master username (Nome utente master) e Master password (Password master): nome utente e password del database. Prendi nota di queste impostazioni perché ti serviranno in seguito.

  7. Verificare le impostazioni predefinite per le opzioni rimanenti e scegliere Create database (Crea database).

Dopo aver creato l'istanza DB, modificare il gruppo di sicurezza ad essa collegato in modo da consentire il traffico in ingresso sulla porta appropriata.

Nota

Questo è lo stesso gruppo di sicurezza che collegherai successivamente all'ambiente Elastic Beanstalk, perciò la regola che aggiungi ora concederà l'autorizzazione di ingresso ad altre risorse nello stesso gruppo di sicurezza.

Per modificare le regole in entrata del gruppo di sicurezza associato all'istanza RDS
  1. Aprire la console Amazon RDS.

  2. Scegli Databases (Database).

  3. Scegliere il nome dell'istanza database per visualizzarne i dettagli.

  4. Nella sezione Connectivity (Connettività), prendere nota dei valori relativi a Subnets (Sottoreti), Security groups (Gruppi di sicurezza) ed Endpoint mostrati in questa pagina. In questo modo è possibile utilizzare queste informazioni in un secondo momento.

  5. In Security (Sicurezza) viene visualizzato il gruppo di sicurezza associato all'istanza database. Aprire il collegamento per visualizzare il gruppo di sicurezza nella console Amazon EC2.

  6. Nei dettagli del gruppo di sicurezza, scegliere Inbound (In entrata).

  7. Scegli Modifica.

  8. Selezionare Add Rule (Aggiungi regola).

  9. In Type (Tipo), scegliere il motore di database utilizzato dall'applicazione.

  10. In Source (Origine), digitare sg- per visualizzare un elenco dei gruppi di sicurezza disponibili. Scegliere il gruppo di sicurezza associato al gruppo Auto Scaling utilizzato con l'ambiente Elastic Beanstalk. In questo modo le istanze Amazon EC2 dell'ambiente possono accedere al database.

    Immagine della schermata per modificare le regole in entrata per un gruppo di sicurezza nella console Amazon EC2.
  11. Selezionare Salva.

La creazione di un'istanza database richiede circa 10 minuti. Nel frattempo, scarica WordPress e crea il tuo ambiente Elastic Beanstalk.

Scarica WordPress

Per prepararsi alla distribuzione WordPress utilizzando AWS Elastic Beanstalk, è necessario copiare i WordPress file sul computer e fornire le informazioni di configurazione corrette.

Per creare un progetto WordPress
  1. Scarica WordPress da wordpress.org.

    ~$curl https://wordpress.org/wordpress-6.2.tar.gz -o wordpress.tar.gz
  2. Scarica i file di configurazione dal repository di esempio:

    ~$ wget https://github.com/aws-samples/eb-php-wordpress/releases/download/v1.1/eb-php-wordpress-v1.zip
  3. Estrai WordPress e modifica il nome della cartella.

    ~$ tar -xvf wordpress.tar.gz ~$ mv wordpress wordpress-beanstalk ~$ cd wordpress-beanstalk
  4. Estrarre i file di configurazione durante l' WordPress installazione.

    ~/wordpress-beanstalk$ unzip ../eb-php-wordpress-v1.zip creating: .ebextensions/ inflating: .ebextensions/dev.config inflating: .ebextensions/efs-create.config inflating: .ebextensions/efs-mount.config inflating: .ebextensions/loadbalancer-sg.config inflating: .ebextensions/wordpress.config inflating: LICENSE inflating: README.md inflating: wp-config.php

Avvio di un ambiente Elastic Beanstalk

Utilizza la console Elastic Beanstalk per creare un ambiente Elastic Beanstalk. Dopo aver avviato l'ambiente, è possibile configurarlo per connettersi al database, quindi distribuire il WordPress codice nell'ambiente.

Nelle fasi seguenti, si utilizzerà la console Elastic Beanstalk per:

  • Creare un'applicazione Elastic Beanstalk utilizzando la piattaforma PHP gestita.

  • Accettare le impostazioni predefinite e il codice di esempio.

Per avviare un ambiente (console)
  1. Apri la console Elastic Beanstalk utilizzando questo link preconfigurato: console.aws.amazon. com/elasticbeanstalk/home #/Nuova applicazione? Nome dell'applicazione=Tutorials&EnvironmentType= LoadBalanced

  2. Per Platform (Piattaforma), selezionare il ramo della piattaforma e la piattaforma che corrispondono al linguaggio utilizzato dall'applicazione.

  3. In Application code (Codice applicazione), scegli Sample application (Applicazione di esempio).

  4. Selezionare Review and launch (Controlla e avvia).

  5. Verificare le opzioni disponibili. Scegliere l'opzione disponibile che si desidera utilizzare e, quando si è pronti, scegliere Create app (Crea app).

Occorrono circa cinque minuti per creare l'ambiente e le seguenti risorse:

  • Beanstalk Standard: per un ambiente eseguito su Amazon Elastic Compute Cloud (Amazon EC2), Elastic Beanstalk fornisce le seguenti risorse:

    • Istanza EC2: una macchina virtuale Amazon EC2 configurata per eseguire app Web sulla piattaforma scelta.

      Ogni piattaforma esegue un insieme specifico di software, file di configurazione e script per supportare una versione della lingua, un framework, un container Web specifici o una determinata combinazione di essi. La maggior parte delle piattaforme utilizza Apache o NGINX come proxy inverso su cui viene eseguita l'app Web, inoltra le richieste all'app, fornisce asset statici e genera log degli accessi e di errore.

    • Gruppo di sicurezza istanze: un gruppo di sicurezza di Amazon EC2 configurato per abilitare il traffico in entrata sulla porta 80. Questa risorsa consente al traffico TTP proveniente dal sistema di bilanciamento del carico di raggiungere l'istanza EC2 in esecuzione sull'app Web. Per impostazione predefinita, il traffico non è consentito su altre porte.

    • Gruppo di sicurezza del sistema di bilanciamento del carico: un gruppo di sicurezza di Amazon EC2 configurato per abilitare il traffico in entrata sulla porta 80. Questa risorsa HTTP consente al traffico proveniente da Internet di raggiungere il sistema di bilanciamento del carico. Per impostazione predefinita, il traffico non è consentito su altre porte.

    • Gruppo Auto Scaling: un gruppo Auto Scaling configurato per sostituire un'istanza se viene terminata o diventa non disponibile.

    • CloudWatch Allarmi Amazon: due CloudWatch allarmi che monitorano il carico sulle istanze nel tuo ambiente e che vengono attivati se il carico è troppo alto o troppo basso. Quando viene attivato un allarme, il gruppo Auto Scaling aumenta o diminuisce di conseguenza.

  • Beanstalk Cluster: per un ambiente che funziona su Amazon EKS, Elastic Beanstalk fornisce le seguenti risorse:

    • Cluster Amazon EKS: un cluster Amazon EKS creato e gestito da Elastic Beanstalk. Gli ambienti dello stesso account che utilizzano le stesse sottoreti condividono un cluster.

    • Elaborazione: capacità dei nodi fornita da Amazon EKS Auto Mode, che aggiunge e rimuove nodi per adattarli alle repliche delle applicazioni pianificate nel cluster.

    • Ruoli IAM: i ruoli del cluster e dei nodi forniti per Amazon EKS e il ruolo di osservabilità utilizzato da Elastic Beanstalk per pubblicare le metriche, i log e le tracce dell'ambiente.

    Per ulteriori informazioni su questa infrastruttura, consulta. Architettura Beanstalk Cluster

  • Load balancer: un sistema di bilanciamento del carico che distribuisce le richieste in entrata nell'applicazione. Un sistema di bilanciamento del carico elimina inoltre la necessità di esporre l'applicazione direttamente a Internet.

  • Bucket Amazon S3: posizione di storage per il codice sorgente, i log e altri artefatti creati quando si utilizza Elastic Beanstalk.

  • CloudFormation stack: Elastic Beanstalk utilizza CloudFormation per avviare le risorse nell'ambiente e propagare le modifiche alla configurazione. Le risorse sono definite in un modello, visualizzabile nella console CloudFormation.

  • Nome di dominio: un nome di dominio che reindirizza alla tua app web nel modulo. subdomain region.elasticbeanstalk.com.

    Sicurezza del dominio

    Per aumentare la sicurezza delle tue applicazioni Elastic Beanstalk, il dominio elasticbeanstalk.com è registrato nella Public Suffix List (PSL).

    Se hai bisogno di impostare cookie sensibili nel nome di dominio predefinito per le tue applicazioni Elastic Beanstalk, ti consigliamo di utilizzare cookie con un prefisso per una maggiore sicurezza. __Host- Questa pratica difende il tuo dominio dai tentativi di falsificazione delle richieste tra siti (CSRF). Per ulteriori informazioni, consulta la Set-Cookie pagina del Mozilla Developer Network.

Tutte queste risorse sono gestite da Elastic Beanstalk. Quando arresti l'ambiente, Elastic Beanstalk termina tutte le risorse che contiene.

Poiché l'istanza Amazon RDS avviata è al di fuori del tuo ambiente, sei responsabile della gestione del suo ciclo di vita.

Nota

Il bucket Amazon S3 creato da Elastic Beanstalk è condiviso tra gli ambienti e non viene eliminato quando l'ambiente viene terminato. Per ulteriori informazioni, consultare Utilizzo di Elastic Beanstalk con Amazon S3.

Configurazione di gruppi di sicurezza e proprietà dell'ambiente

Aggiungi il gruppo di sicurezza dell'istanza database all'ambiente in esecuzione. Con questa procedura Elastic Beanstalk predispone di nuovo tutte le istanze nell'ambiente con il gruppo di sicurezza aggiuntivo collegato.

Per aggiungere un gruppo di sicurezza al tuo ambiente
  • Esegui una delle seguenti operazioni:

    • Per aggiungere un gruppo di sicurezza tramite la console Elastic Beanstalk

      1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona il tuo. Regione AWS

      2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

      3. Nel pannello di navigazione, seleziona Configuration (Configurazione).

      4. Nella categoria di configurazione Instances (Istanze), scegliere Edit (Modifica).

      5. In EC2 security groups (Gruppi di sicurezza EC2), scegliere il gruppo di sicurezza da collegare alle istanze, in aggiunta a quello creato da Elastic Beanstalk.

      6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

      7. Leggere l'avviso, quindi selezionare Confirm (Conferma).

    • Per aggiungere un gruppo di sicurezza tramite un file di configurazione, utilizzare il file di esempio securitygroup-addexisting.config.

Quindi, utilizza le proprietà dell'ambiente per far passare le informazioni di connessione al tuo ambiente.

L' WordPress applicazione utilizza un set predefinito di proprietà che corrispondono a quelle configurate da Elastic Beanstalk quando si esegue il provisioning di un database all'interno dell'ambiente.

Per configurare le proprietà dell'ambiente per un'istanza database Amazon RDS
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Nel riquadro di navigazione, seleziona Configuration (Configurazione).

  4. Nella categoria di configurazione Updates, monitoring, and logging (Aggiornamenti, monitoraggio e registrazione), scegli Edit (Modifica).

  5. Nella sezione Environment properties (Proprietà ambiente), definire le variabili che l'applicazione deve leggere per formare una stringa di collegamento. Per la compatibilità con gli ambienti che dispongono di un'istanza database RDS integrata, utilizza i seguenti nomi e valori. Tutti i valori, ad eccezione della password, sono disponibili nella console RDS.

    Nome proprietà Descrizione Valore proprietà

    RDS_HOSTNAME

    Il nome host dell'istanza DB.

    Nella scheda Connectivity & security (Connettività e sicurezza) della console Amazon RDS: Endpoint.

    RDS_PORT

    La porta su cui l'istanza database accetta le connessioni. Il valore predefinito varia tra i motori di database.

    Nella scheda Connectivity & security (Connettività e sicurezza) della console Amazon RDS: Port (Porta).

    RDS_DB_NAME

    Il nome del database, ebdb.

    Nella scheda Configuration (Configurazione) della console Amazon RDS: DB Name (Nome DB).

    RDS_USERNAME

    Il nome utente configurato per il database.

    Nella scheda Configuration (Configurazione) della console Amazon RDS: Master username (Nome utente master).

    RDS_PASSWORD

    La password configurata per il database.

    Non disponibile per riferimento nella console Amazon RDS.

    Sezione di configurazione delle proprietà dell'ambiente con proprietà RDS aggiunte
  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Configurazione e distribuzione dell'applicazione

Verifica che la struttura della cartella wordpress-beanstalk sia corretta, come illustrato.

wordpress-beanstalk$ tree -aL 1 . ├── .ebextensions ├── index.php ├── LICENSE ├── license.txt ├── readme.html ├── README.md ├── wp-activate.php ├── wp-admin ├── wp-blog-header.php ├── wp-comments-post.php ├── wp-config.php ├── wp-config-sample.php ├── wp-content ├── wp-cron.php ├── wp-includes ├── wp-links-opml.php ├── wp-load.php ├── wp-login.php ├── wp-mail.php ├── wp-settings.php ├── wp-signup.php ├── wp-trackback.php └── xmlrpc.php

Il file wp-config.php personalizzato del repository del progetto usa le variabili di ambiente definite nella fase precedente per configurare la connessione di database. La cartella .ebextensions contiene i file di configurazione che consentono di creare risorse aggiuntive nell'ambiente Elastic Beanstalk.

I file di configurazione richiedono una modifica per poter funzionare con il tuo account. Sostituisci i valori segnaposto nei file con gli ID appropriati e crea un bundle di origine.

Aggiornamento dei file di configurazione e creazione di un bundle di origine
  1. Modifica i file di configurazione nel seguente modo.

    • .ebextensions/dev.config— Limita l'accesso all'ambiente per proteggerlo durante il processo di installazione. WordPress Sostituisci l'indirizzo IP segnaposto nella parte superiore del file con l'indirizzo IP pubblico del computer che utilizzerai per accedere al sito Web dell'ambiente e completare l'installazione. WordPress

      Nota

      In base alla rete, potrebbe essere necessario utilizzare un blocco dell'indirizzo IP.

    • .ebextensions/efs-create.config— Crea un file system EFS e punti di montaggio in ogni Availability del tuo Zone/subnet VPC. Identifica gli ID di sottorete e VPC nella console Amazon VPC.

  2. Crea un bundle di origine contenente i file nella cartella di progetto. Il comando seguente crea un bundle di origine denominato wordpress-beanstalk.zip.

    ~/eb-wordpress$ zip ../wordpress-beanstalk.zip -r * .[^.]*

Carica il pacchetto sorgente su Elastic Beanstalk per distribuirlo nel tuo ambiente. WordPress

Per distribuire un bundle di origine
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Nella pagina della panoramica dell'ambiente scegliere Upload and deploy (Carica e distribuisci).

  4. Utilizzare la finestra di dialogo su schermo per caricare il bundle di origine.

  5. Selezionare Deploy (Distribuisci).

  6. Al termine della distribuzione, è possibile scegliere l'URL del sito per aprire il sito Web in una nuova scheda.

Installa WordPress

Per completare l' WordPress installazione
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Scegliere l'URL dell'ambiente per aprire il sito in un browser. Verrai reindirizzato a una procedura guidata di WordPress installazione perché non hai ancora configurato il sito.

  4. Esegui un'installazione standard. Il file wp-config.php è già presente nel codice sorgente e configurato per leggere le informazioni di connessione al database dall'ambiente, pertanto il sistema non dovrebbe richiedere la configurazione della connessione.

L'installazione richiede circa un minuto.

Aggiornamento di chiavi e salt

Il file WordPress di configurazione legge wp-config.php anche i valori per le chiavi e i sali dalle proprietà dell'ambiente. Al momento, queste proprietà sono tutte impostate su test dal file wordpress.config nella cartella .ebextensions.

Il salt di hash può essere un qualsiasi valore che soddisfi i requisiti di proprietà dell'ambiente, che però non deve essere memorizzato nel controllo del codice sorgente. Utilizza la console Elastic Beanstalk per impostare queste proprietà direttamente nell'ambiente.

Aggiornamento delle proprietà di ambiente
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona il tuo. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Nel riquadro di navigazione, selezionare Configuration (Configurazione).

  4. In Software, selezionare Edit (Modifica).

  5. Modificare le seguenti proprietà per Environment properties:

    • AUTH_KEY: il valore scelto per AUTH_KEY.

    • SECURE_AUTH_KEY: il valore scelto per SECURE_AUTH_KEY.

    • LOGGED_IN_KEY: il valore scelto per LOGGED_IN_KEY.

    • NONCE_KEY: il valore scelto per NONCE_KEY.

    • AUTH_SALT: il valore scelto per AUTH_SALT.

    • SECURE_AUTH_SALT: il valore scelto per SECURE_AUTH_SALT.

    • LOGGED_IN_SALT: il valore scelto per LOGGED_IN_SALT.

    • NONCE_SALT: il valore scelto per NONCE_SALT.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Nota

Impostando le proprietà direttamente nell'ambiente, si sovrascrivono i valori in wordpress.config.

Rimozione delle limitazioni di accesso

Il progetto di esempio include il file di configurazione loadbalancer-sg.config. Crea un gruppo di sicurezza e lo assegna al sistema di bilanciamento del carico dell'ambiente, utilizzando l'indirizzo IP configurato in dev.config. Limita l'accesso HTTP sulla porta 80 alle connessioni dalla rete. Altrimenti, una parte esterna potrebbe potenzialmente connettersi al tuo sito prima che tu abbia installato WordPress e configurato il tuo account amministratore.

Ora che hai installato WordPress, rimuovi il file di configurazione per aprire il sito al mondo.

Per rimuovere le limitazioni e aggiornare l'ambiente
  1. Elimina il file .ebextensions/loadbalancer-sg.config dalla directory del progetto.

    ~/wordpress-beanstalk$ rm .ebextensions/loadbalancer-sg.config
  2. Crea un bundle di origine.

    ~/eb-wordpress$ zip ../wordpress-beanstalk-v2.zip -r * .[^.]*

Carica il pacchetto sorgente su Elastic Beanstalk per WordPress distribuirlo nel tuo ambiente.

Per distribuire un bundle di origine
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Nella pagina della panoramica dell'ambiente scegliere Upload and deploy (Carica e distribuisci).

  4. Utilizzare la finestra di dialogo su schermo per caricare il bundle di origine.

  5. Selezionare Deploy (Distribuisci).

  6. Al termine della distribuzione, è possibile scegliere l'URL del sito per aprire il sito Web in una nuova scheda.

Configurazione del gruppo Auto Scaling

Infine, configura il gruppo Auto Scaling dell'ambiente con un conteggio delle istanze minime più elevato. Esegui almeno due istanze in qualsiasi momento per evitare che il server Web nel tuo ambiente diventi un singolo punto di errore. Ciò consente anche di distribuire le modifiche senza rendere inattivo il tuo sito.

Configurazione del gruppo Auto Scaling dell'ambiente per elevata disponibilità
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona la tua. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Nel riquadro di navigazione, selezionare Configuration (Configurazione).

  4. Nella categoria di configurazione Capacity (Capacità), scegliere Edit (Modifica).

  5. Nella sezione Auto Scaling Group (Gruppo Auto Scaling), impostare Min instances (Istanze min) su 2.

  6. Per salvare le modifiche scegli Apply (Applica) nella parte inferiore della pagina.

Per supportare i caricamenti di contenuto in più istanze, il progetto di esempio utilizza Amazon EFS per creare un file system condiviso. Crea un post sul sito e carica i contenuti per memorizzarli sul file system condiviso. Visualizza il post e aggiorna la pagina più volte per accedere a entrambe le istanze e verificare che il file system condiviso sia in fase di elaborazione.

Aggiornamento WordPress

Per eseguire l'aggiornamento a una nuova versione di WordPress, esegui il backup del sito e distribuiscilo in un nuovo ambiente.

Importante

Non utilizzate la funzionalità di aggiornamento all'interno dei file di origine WordPress né aggiornate i file di origine per utilizzarne una nuova versione. Entrambe le azioni possono generare gli errori 404 nei tuoi post, anche se sono ancora nel database e nel file system.

Per effettuare l'aggiornamento WordPress
  1. Nella console di WordPress amministrazione, usa lo strumento di esportazione per esportare i tuoi post in un file XML.

  2. Distribuisci e installa la nuova versione WordPress di su Elastic Beanstalk con gli stessi passaggi utilizzati per installare la versione precedente. Per evitare tempi di inattività, crea un ambiente con la nuova versione.

  3. Nella nuova versione, installa lo strumento WordPress Importer nella console di amministrazione e utilizzalo per importare il file XML contenente i tuoi post. Se i post sono stati creati da un utente amministratore in una vecchia versione, assegnali all'utente amministratore del nuovo sito anziché cercare di importare l'utente admin.

  4. Se hai distribuito la nuova versione in un ambiente distinto, esegui uno scambio di CNAME per reindirizzare gli utenti dal vecchio sito al nuovo.

Eliminazione

Dopo aver finito di lavorare con il codice demo, puoi chiudere il tuo ambiente. Elastic Beanstalk elimina tutte le AWS risorse correlate, come istanze Amazon EC2, istanze di database, sistemi di bilanciamento del carico, gruppi di sicurezza e allarmi.

La rimozione delle risorse non comporta l'eliminazione dell'applicazione Elastic Beanstalk, quindi puoi creare nuovi ambienti per la tua applicazione in qualsiasi momento.

Per terminare l'ambiente Elastic Beanstalk dalla console
  1. Apri la console Elastic Beanstalk e, nell'elenco delle regioni, seleziona il tuo. Regione AWS

  2. Nel pannello di navigazione selezionare Environments (Ambienti), quindi selezionare il nome dell'ambiente dall'elenco.

  3. Seleziona Actions (Operazioni), quindi Terminate environment (Termina ambiente).

  4. Utilizza la finestra di dialogo su schermo per confermare la terminazione dell'ambiente.

Inoltre, puoi terminare le risorse di database create al di fuori dell'ambiente Elastic Beanstalk. Quando termini un'istanza database Amazon RDS, puoi acquisire uno snapshot e successivamente ripristinare i dati in un'altra istanza.

Per terminare l'istanza database RDS
  1. Apri la console Amazon RDS.

  2. Scegli Databases (Database).

  3. Scegli l'istanza database.

  4. Scegli Actions (Operazioni), quindi Delete (Elimina).

  5. Scegliere se creare una snapshot, quindi selezionare Delete (Elimina).

Fasi successive

Mentre continui a sviluppare l'applicazione, potrebbe essere necessario un metodo per gestire gli ambienti e distribuire l'applicazione senza creare manualmente un file .zip e caricarlo sulla console Elastic Beanstalk. L'interfaccia a riga di comando di Elastic Beanstalk (CLI EB) fornisce comandi semplici per creare, configurare e distribuire applicazioni in ambienti Elastic Beanstalk dalla riga di comando.

L'applicazione di esempio utilizza i file di configurazione per configurare le impostazioni PHP e creare una tabella nel database, se non esiste già. È inoltre possibile utilizzare un file di configurazione per configurare le impostazioni del gruppo di sicurezza delle istanze durante la creazione dell'ambiente per evitare gli aggiornamenti di configurazione onerosi in termini di tempo. Per ulteriori informazioni, consultare Personalizzazione avanzata dell'ambiente con file di configurazione (.ebextensions).

Per sviluppo e test, puoi usare la funzionalità di Elastic Beanstalk per l'aggiunta di un'istanza database gestita direttamente nell'ambiente. Per istruzioni sulla configurazione di un database nell'ambiente, consultare Aggiunta di un database all'ambiente Elastic Beanstalk.

Se è necessario un database ad alte prestazioni, prendi in considerazione Amazon Aurora. Amazon Aurora è un motore di MySQL-compatible database che offre funzionalità di database commerciali a basso costo. Per connettere l'applicazione a un database diverso, ripeti i passaggi di configurazione del gruppo di sicurezza e aggiorna le proprietà dell' RDS-related ambiente.

Infine, se prevedi di usare l'applicazione in un ambiente di produzione, devi configurare un nome di dominio personalizzato per l'ambiente e abilitare HTTPS per le connessioni sicure.