Utilizzo della piattaforma Tomcat di 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à.

Utilizzo della piattaforma Tomcat di Elastic Beanstalk

La piattaforma AWS Elastic Beanstalk Tomcat è un insieme di versioni della piattaforma per applicazioni Web Java che possono essere eseguite in un contenitore Web Tomcat. Tomcat viene eseguito dietro un server proxy nginx. Ogni ramo di piattaforma corrisponde a una versione principale di Tomcat, ad esempio Java 8 con Tomcat 8.

Sono disponibili opzioni di configurazione specifiche della piattaforma nella console Elastic Beanstalk per la modifica della configurazione di un ambiente in esecuzione. Per conservare la configurazione dell'ambiente una volta terminata, puoi utilizzare configurazioni salvate per salvare le impostazioni e applicarle successivamente a un altro ambiente.

Per salvare le impostazioni nel codice sorgente, puoi includere i file di configurazione. Le impostazioni nei file di configurazione vengono applicate ogni volta che crei un ambiente o distribuisci l'applicazione. Puoi inoltre utilizzare i file di configurazione per installare pacchetti, eseguire script o altre operazioni di personalizzazione delle istanze durante le distribuzioni.

La piattaforma Tomcat di Elastic Beanstalk include un proxy inverso che inoltra le richieste alla tua applicazione. È possibile utilizzare le opzioni di configurazione per configurare il server proxy in modo che possa servire asset statici da una cartella nel codice sorgente, per ridurre il carico sull'applicazione. Per gli scenari avanzati, puoi includere file .conf personalizzati nel bundle di origine per estendere la configurazione proxy di Elastic Beanstalk o sovrascriverla completamente.

Nota

Elastic Beanstalk supporta nginx (impostazione predefinitaHTTP) e Apache Server come server proxy sulla piattaforma Tomcat. Se il tuo ambiente Elastic Beanstalk Tomcat utilizza un ramo della piattaforma Amazon AMI Linux (precedente ad Amazon Linux 2), hai anche la possibilità di utilizzare Apache Server versione 2.2. HTTP Apache (versione più recente) è l'impostazione predefinita su questi rami della piattaforma più vecchi.

Il 18 luglio 2022, Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux () come ritirato. AMI AL1 Per ulteriori informazioni sulla migrazione a una ramificazione della piattaforma Amazon Linux 2023 attuale e completamente supportata, consulta Migrazione dell'applicazione Elastic Beanstalk Linux ad Amazon Linux 2023 o Amazon Linux 2.

È necessario impacchettare le applicazioni Java in un file di archivio dell'applicazione Web (WAR) con una struttura specifica. Per informazioni sulla struttura necessaria e sulla relazione con la struttura della tua directory di progetto, consulta Strutturazione della cartella di progetto.

Per eseguire più applicazioni sullo stesso server Web, potete raggruppare più WAR file in un unico pacchetto di origine. Ogni applicazione in un pacchetto con più WAR sorgenti viene eseguita nel percorso principale (ROOT.warrun atmyapp.elasticbeanstalk.com/) o in un percorso direttamente sottostante (app2.warrun atmyapp.elasticbeanstalk.com/app2/), come determinato dal nome di. WAR In un bundle a WAR origine singola, l'applicazione viene sempre eseguita nel percorso principale.

Le impostazioni applicate nella console Elastic Beanstalk sostituiscono le stesse impostazioni nei file di configurazione, se esistenti. Ciò ti consente di disporre di impostazioni predefinite nei file di configurazione, sostituibili con impostazioni specifiche per l'ambiente nella console. Per ulteriori informazioni sulla precedenza e altri metodi di modifica delle impostazioni, consulta Opzioni di configurazione.

Per informazioni dettagliate sui vari modi in cui è possibile estendere una piattaforma Elastic Beanstalk basata su Linux, consulta Estensione delle piattaforme Elastic Beanstalk Linux.

Configurazione dell'ambiente Tomcat

La piattaforma Tomcat di Elastic Beanstalk offre alcune opzioni specifiche della piattaforma in aggiunta alle opzioni standard disponibili in tutte le piattaforme. Queste opzioni consentono di configurare la macchina virtuale Java (JVM) che viene eseguita sui server Web dell'ambiente e di definire le proprietà del sistema che forniscono stringhe di configurazione delle informazioni all'applicazione.

Puoi utilizzare la console Elastic Beanstalk per attivare la rotazione dei log in Amazon S3 e configurare variabili che l'applicazione è in grado di leggere dall'ambiente.

Per configurare l'ambiente Tomcat nella console Elastic Beanstalk
  1. Apri la console Elastic Beanstalk e, nell'elenco Regioni, seleziona la tua. Regione AWS

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

    Nota

    Se si dispone di molti ambienti, utilizzare la barra di ricerca per filtrare l'elenco degli ambienti.

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

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

Opzioni del container

È possibile specificare le seguenti opzioni specifiche della piattaforma:

  • Proxy server (Server proxy): il server proxy da utilizzare nelle istanze dell'ambiente. Per impostazione predefinita, viene utilizzato nginx.

JVMopzioni del contenitore

La dimensione dell'heap nella macchina virtuale Java (JVM) determina il numero di oggetti che l'applicazione può creare in memoria prima che si verifichi la garbage collection. È possibile modificare la dimensione iniziale dell'JVMheap (-Xms option) e la dimensione massima dell'JVMheap (opzione). -Xmx Una dimensione heap iniziale più grande consente la creazione di un maggior numero di oggetti prima della garbage collection, ma il garbage collector impiegherà più tempo per compattare l'heap. La dimensione massima dell'heap specifica la quantità massima di memoria che è JVM possibile allocare quando si espande l'heap durante un'attività intensa.

Nota

La memoria disponibile dipende dal tipo di EC2 istanza Amazon. Per ulteriori informazioni sui tipi di EC2 istanze disponibili per il tuo ambiente Elastic Beanstalk, consulta Instance Types nella Amazon Elastic Compute Cloud User Guide for Linux Instances.

La generazione permanente è una sezione dell'JVMheap che memorizza le definizioni delle classi e i metadati associati. Per modificare la dimensione della generazione permanente, digitate la nuova dimensione nell'opzione JVM PermGen Dimensione massima (-XX:MaxPermSize). Questa impostazione è valida solo per Java 7 e versioni precedenti. Questa opzione era obsoleta nella versione JDK 8 e sostituita dall'opzione Size (). MaxMetaspace -XX:MaxMetaspaceSize

Importante

JDK17 ha rimosso il supporto dell'opzione Java. -XX:MaxPermSize L'utilizzo di questa opzione con un ambiente in esecuzione su una ramificazione della piattaforma Elastic Beanstalk con Corretto 17 genererà un errore. Elastic Beanstalk ha rilasciato la prima ramificazione della piattaforma che esegue Tomcat con Corretto 17 il 13 luglio 2023.

Per ulteriori informazioni, consulta le risorse seguenti.

Per ulteriori informazioni sulle piattaforme Elastic Beanstalk e sui relativi componenti, consulta la pagina Piattaforme supportate nella Guida alle piattaforme AWS Elastic Beanstalk .

Opzioni di log

La sezione Log Options (Opzioni di log) ha due impostazioni:

  • Instance profile (Profilo dell'istanza): specifica il profilo dell'istanza che dispone dell'autorizzazione ad accedere al bucket Amazon S3 associato all'applicazione.

  • Abilita la rotazione dei file di registro su Amazon S3: specifica se i file di log per le EC2 istanze Amazon dell'applicazione vengono copiati nel bucket Amazon S3 associato all'applicazione.

File statici

Per migliorare le prestazioni, puoi utilizzare la sezione File statici per configurare il server proxy in modo che serva file statici (ad esempio HTML o immagini) da un set di directory all'interno della tua applicazione web. Per ogni directory, è possibile impostare il percorso virtuale per la mappatura delle directory. Quando il server proxy riceve una richiesta da un file nel percorso specificato, questo serve il file direttamente anziché instradare la richiesta all'applicazione.

Per informazioni dettagliate sulla configurazione di file statici utilizzando file di configurazione o la console Elastic Beanstalk, consulta Fornire i file statici.

Proprietà dell'ambiente

Nella sezione Proprietà dell'ambiente, puoi specificare le impostazioni di configurazione dell'ambiente sulle EC2 istanze Amazon che eseguono la tua applicazione. Le proprietà di ambiente sono passate come coppie chiave-valore all'applicazione.

La piattaforma Tomcat definisce una proprietà segnaposto denominata JDBC_CONNECTION_STRING per gli ambienti Tomcat, utilizzata per passare una stringa di connessione a un database esterno.

Nota

Se colleghi un'istanza RDS DB al tuo ambiente, costruisci la stringa di JDBC connessione in modo dinamico dalle proprietà dell'ambiente Amazon Relational Database Service (AmazonRDS) fornite da Elastic Beanstalk. Usa JDBC _ CONNECTION _ STRING solo per le istanze di database a cui non viene eseguito il provisioning tramite Elastic Beanstalk.

Per ulteriori informazioni sull'utilizzo di Amazon RDS con la tua applicazione Java, consultaAggiunta di un'istanza database Amazon RDS all'ambiente applicativo Java.

Nell'ambiente Tomcat in esecuzione in Elastic Beanstalk, le variabili di ambiente sono accessibili tramite System.getProperty(). Ad esempio, è possibile leggere una proprietà denominata API_ENDPOINT su una variabile con il codice seguente.

String endpoint = System.getProperty("API_ENDPOINT");

Per ulteriori informazioni, consulta Proprietà dell'ambiente e altre impostazioni software.

Spazio dei nomi della configurazione Tomcat

Puoi utilizzare un file di configurazione per impostare le opzioni di configurazione ed eseguire alte attività di configurazione delle istanze durante le distribuzioni. Le opzioni di configurazione, che possono essere definite dal servizio Elastic Beanstalk o dalla piattaforma utilizzata, sono organizzate in spazi dei nomi.

Oltre alle opzioni supportate per tutti gli ambienti Elastic Beanstalk, la piattaforma Tomcat supporta quelle incluse negli spazi dei nomi seguenti:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— Modificare JVM le impostazioni. Le opzioni in questo spazio dei nomi corrispondono a quelle nella console di gestione, in questo modo:

    • Xmsopzioni della JVM riga di comando

    • JVM Optionsopzioni della JVM riga di comando

  • aws:elasticbeanstalk:environment:proxy: scegli il server proxy dell'ambiente.

L'esempio di file di configurazione seguente mostra l'utilizzo delle opzioni di configurazione specifiche di Tomcat.

Esempio .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:container:tomcat:jvmoptions: Xms: 512m JVM Options: '-Xmn128m' aws:elasticbeanstalk:application:environment: API_ENDPOINT: mywebapi.zkpexsjtmd.us-west-2.elasticbeanstalk.com aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

In Elastic Beanstalk sono disponibili varie opzioni di configurazione per la personalizzazione dell'ambiente. Oltre ai file di configurazione, è anche possibile impostare le opzioni di configurazione utilizzando la console, le configurazioni salvate, l'EB CLI o il AWS CLI. Per ulteriori informazioni, consulta Opzioni di configurazione.

Se il tuo ambiente Elastic Beanstalk Tomcat utilizza una versione della piattaforma Amazon AMI Linux (precedente ad Amazon Linux 2), leggi le informazioni aggiuntive in questa sezione.

Note
  • Le informazioni contenute in questo argomento si applicano solo ai rami della piattaforma basati su Amazon Linux AMI (AL1). AL2I rami della AL2 piattaforma 023/ non sono compatibili con le versioni precedenti della piattaforma Amazon Linux AMI (AL1) e richiedono impostazioni di configurazione diverse.

  • Il 18 luglio 2022, Elastic Beanstalk ha impostato lo stato di tutte le filiali della piattaforma basate su Amazon Linux () come ritirato. AMI AL1 Per ulteriori informazioni sulla migrazione a una ramificazione della piattaforma Amazon Linux 2023 attuale e completamente supportata, consulta Migrazione dell'applicazione Elastic Beanstalk Linux ad Amazon Linux 2023 o Amazon Linux 2.

La AMI piattaforma Tomcat Amazon Linux supporta opzioni aggiuntive nei seguenti namespace:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— Oltre alle opzioni menzionate in precedenza in questa pagina per questo namespace, le versioni precedenti della AMI piattaforma Amazon Linux supportano anche:

    • XX:MaxPermSize— Dimensione massima di JVM generazione permanente

  • aws:elasticbeanstalk:environment:proxy: oltre a scegliere il server proxy, configura anche la compressione delle risposte.

L'esempio di file di configurazione seguente mostra l'utilizzo delle opzioni di configurazione dello spazio dei nomi proxy.

Esempio .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: GzipCompression: 'true' ProxyServer: nginx

Per distribuire i file di configurazione .ebextensions, occorre includerli nella sorgente dell'applicazione. Per una singola applicazione, aggiungi il tuo file .ebextensions a un WAR file compresso eseguendo il seguente comando:

zip -ur your_application.war .ebextensions

Per un'applicazione che richiede più WAR file, consulta Raggruppamento di più file WAR per ambienti Tomcat ulteriori istruzioni.