

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de la plateforme Elastic Beanstalk Tomcat
<a name="java-tomcat-platform"></a>

Cette rubrique explique comment configurer, créer et exécuter vos applications Java qui s'exécutent sur la plateforme Elastic Beanstalk Tomcat.

La plate-forme AWS Elastic Beanstalk Tomcat est un ensemble de [versions de plate-forme pour les](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.java) applications Web Java qui peuvent s'exécuter dans un conteneur Web Tomcat. Tomcat s'exécute derrière un serveur proxy nginx. Chaque branche de plateforme correspond à une version majeure de Tomcat.

Des options de configuration sont disponibles dans la console Elastic Beanstalk pour [modifier la configuration d'un environnement en cours d'exécution](environment-configuration-methods-after.md). Pour éviter de perdre la configuration de votre environnement en le résiliant, vous pouvez utiliser des [configurations enregistrées](environment-configuration-savedconfig.md) pour enregistrer vos paramètres et les appliquer par la suite à un autre environnement.

Pour enregistrer les paramètres dans votre code source, vous pouvez inclure des [fichiers de configuration](ebextensions.md). Les paramètres des fichiers de configuration sont appliquées chaque fois que vous créez un environnement ou que vous déployez votre application. Vous pouvez également utiliser des fichiers de configuration pour installer des packages, exécuter des scripts ou effectuer d'autres opérations de personnalisation d'instance lors des déploiements.

La plateforme Tomcat Elastic Beanstalk inclut un proxy inverse qui transmet les demandes à votre application. Vous pouvez utiliser les [options de configuration](#java-tomcat-namespaces) pour configurer le serveur proxy de manière à traiter les ressources statiques à partir d'un dossier de votre code source afin de réduire la charge sur votre application. Pour les scénarios avancés, vous pouvez [inclure vos propres `.conf`fichiers](java-tomcat-proxy.md) dans votre bundle de fichiers source afin d'étendre la configuration proxy Elastic Beanstalk ou de la remplacer complètement.

**Note**  
Elastic Beanstalk prend en charge [nginx](https://www.nginx.com/) (valeur par défaut) et [Apache HTTP Server](https://httpd.apache.org/) en tant que serveurs proxy sur la plateforme Tomcat. Si votre environnement Elastic Beanstalk Tomcat utilise une branche de plateforme AMI Amazon Linux (antérieure à Amazon Linux 2), vous avez également la possibilité d'utiliser [Apache HTTP Server Version 2.2](https://httpd.apache.org/docs/2.2/). Apache (dernière version) est la valeur par défaut sur ces anciennes branches de plateforme.   
 [Le 18 juillet 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **Elastic Beanstalk a défini le statut de toutes les branches de la plateforme sur la base de l'AMI AL1 Amazon Linux () comme étant supprimées.** Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez [Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2](using-features.migration-al.md).

Vous devez compresser les applications Java dans un fichier WAR (Web application ARchive) avec une structure spécifique. Pour plus d'informations sur la structure à respecter et sur sa liaison à la structure de votre répertoire de projet, consultez [Structuration de votre dossier de projet](java-tomcat-platform-directorystructure.md).

Pour exécuter plusieurs applications sur le même serveur web, vous pouvez [regrouper plusieurs fichiers WAR](java-tomcat-multiple-war-files.md) dans un bundle source unique. Chaque application d'un bundle source multiple s'exécute soit sur le chemin d'accès racine (`ROOT.war` s'exécute dans `myapp.elasticbeanstalk.com/`), soit sur un chemin d'accès situé juste en dessous (`app2.war`.war s'exécute dans `myapp.elasticbeanstalk.com/app2/`), selon le nom du fichier WAR. Dans un bundle source WAR unique, l'application s'exécute toujours sur le chemin d'accès racine.

Les paramètres appliqués dans la console Elastic Beanstalk remplacent les mêmes paramètres des fichiers de configuration, s'ils existent. Cela vous permet d'utiliser les paramètres par défaut dans les fichiers de configuration et de les remplacer par des paramètres spécifiques à l'environnement dans la console. Pour plus d'informations sur la priorité et les autres méthodes de modification des paramètres, consultez [Options de configuration](command-options.md).

Pour plus d'informations sur les différentes manières d'étendre une plateforme Elastic Beanstalk basée sur Linux, consultez [Extension des plateformes Linux Elastic Beanstalk](platforms-linux-extend.md).

**Topics**
+ [Configuration de votre environnement Tomcat](#java-tomcat-options)
+ [Espaces de noms de la configuration Tomcat](#java-tomcat-namespaces)
+ [Création d'une offre groupée de plusieurs fichiers WAR pour les environnements Tomcat](java-tomcat-multiple-war-files.md)
+ [Structuration de votre dossier de projet](java-tomcat-platform-directorystructure.md)
+ [Configuration du serveur proxy](java-tomcat-proxy.md)

## Configuration de votre environnement Tomcat
<a name="java-tomcat-options"></a>

La plateforme Tomcat Elastic Beanstalk fournit quelques options propres à la plateforme en plus des options standard présentes sur toutes les plateformes. Ces options vous permettent de configurer la machine virtuelle Java (JVM) qui s'exécute sur les serveurs web de votre environnement et de définir les propriétés système qui fournissent les chaînes de configuration d'information à votre application.

Vous pouvez utiliser la console Elastic Beanstalk pour activer la rotation de journal sur Amazon S3 et configurer les variables que votre application peut lire depuis l'environnement.

**Pour configurer votre environnement Tomcat dans la console Elastic Beanstalk**

1. Ouvrez la console [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk), puis **dans la liste des régions, sélectionnez votre**. Région AWS

1. Dans le panneau de navigation, choisissez **Environments** (Environnements), puis choisissez le nom de votre environnement dans la liste.

1. Dans le panneau de navigation, choisissez **Configuration**.

1. Dans la catégorie de configuration **Mises à jour, surveillance et journalisation**, sélectionnez **Modifier**.

### Options de conteneur
<a name="java-tomcat-options-container"></a>

Vous pouvez spécifier ces options spécifiques à la plateforme :
+ **Proxy server (Serveur proxy)** – Serveur proxy à utiliser sur vos instances d'environnement. Le serveur nginx est utilisé par défaut.

### Options du conteneur JVM
<a name="java-tomcat-options-jvm"></a>

La taille du tas sur la machine virtuelle Java (JVM) détermine combien d'objets peuvent être créés en mémoire par votre application avant un *[nettoyage de la mémoire](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/introduction.html)*. Vous pouvez modifier les options **Initial JVM Heap Size** (`-Xms option`) et **Maximum JVM Heap Size** (argument `-Xmx`). Plus la taille initiale du tas est importante, plus le nombre d'objets pouvant être créés avant le nettoyage de la mémoire sera élevé. Toutefois, cela signifie également que le récupérateur de mémoire mettra plus de temps pour compacter le tas. La taille de tas maximale indique la quantité maximale de mémoire que la machine virtuelle Java peut allouer lorsqu'elle augmente le tas dans le cadre d'une activité intensive.

**Note**  
La mémoire disponible dépend du type d'instance Amazon EC2. Pour plus d'informations sur les types d'instances EC2 disponibles pour votre environnement Elastic Beanstalk, consultez [Types d'instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) dans le *Guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux*.

La *génération permanente* est une section du tas de la machine virtuelle Java qui stocke les définitions de classe et les métadonnées associées. Pour modifier la taille de la génération permanente, saisissez la nouvelle taille dans l'option Taille **maximale de la machine virtuelle Java PermGen ** (`-XX:MaxPermSize`). Ce paramètre s'applique uniquement à Java 7 et versions antérieures. **Cette option a été déconseillée dans le JDK 8 et remplacée par l'option Size (). MaxMetaspace** `-XX:MaxMetaspaceSize`

**Important**  
JDK 17 a supprimé la prise en charge de l'option Java `-XX:MaxPermSize`. L'utilisation de cette option avec un environnement s'exécutant sur une branche de plateforme Elastic Beanstalk avec Corretto 17 provoquera une erreur. Elastic Beanstalk a publié sa première branche de plateforme exécutant Tomcat avec Corretto 17 le [13 juillet 2023](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2023-07-13-al2023.html).  
Pour plus d'informations, veuillez consulter les ressources suivantes.  
Site Web de documentation Oracle Java : [Options Java supprimées](https://docs.oracle.com/en/java/javase/17/docs/specs/man/java.html#removed-java-options) (français non garanti) 
Site Web de documentation Oracle Java : section *Métadonnées de classe* dans [Autres considérations](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/considerations.html) (français non garanti)

Pour plus d'informations sur les plateformes Elastic Beanstalk et leurs composants, consultez la section [Plateformes prises en charge](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html) dans le guide *Plateformes AWS Elastic Beanstalk *.

### Options du journal
<a name="java-tomcat-options-logs"></a>

La section **Options du journal** a deux paramètres :
+ **Instance profile (Profil d'instance)** – Spécifie le profil d'instance qui est autorisé à accéder au compartiment Amazon S3 associé à votre application.
+ **Enable log file rotation to Amazon S3** (Permettre la rotation du fichier journal sur Amazon S3) – Indique si les fichiers journaux des instances Amazon EC2 de votre application doivent être copiés dans le compartiment Amazon S3 associé à votre application.

### Fichiers statiques
<a name="java-tomcat-options-staticfiles"></a>

Pour améliorer les performances, la section des **Fichiers statiques** vous permet de configurer le serveur proxy pour proposer des fichiers statiques (HTML ou images, par exemple) à partir d'un ensemble de répertoires dans votre application web. Pour chaque répertoire, vous définissez le chemin virtuel sur le mappage de répertoires. Lorsque le serveur proxy reçoit une demande pour un fichier dans le chemin spécifié, il fournit le fichier directement au lieu d'acheminer la demande vers votre application.

Pour en savoir plus sur la configuration des fichiers statiques à l'aide des fichiers de configuration ou de la console Elastic Beanstalk, consultez [Service de fichiers statiques](environment-cfg-staticfiles.md).

### Propriétés de l'environnement
<a name="java-tomcat-options-properties"></a>

Dans la section **Environment Properties (Propriétés de l'environnement)**, vous pouvez spécifier des paramètres de configuration de l'environnement sur les instances Amazon EC2 exécutant votre application. Les propriétés de l'environnement sont passées en tant que paires clé-valeur à l'application. 

La plateforme Tomcat définit une propriété d'espace réservée nommée `JDBC_CONNECTION_STRING` pour les environnements Tomcat, permettant de transmettre une chaîne de connexion à une base de données externe.

**Note**  
Si vous attachez une instance de base de données RDS à votre environnement, construisez la chaîne de connexion JDBC dynamiquement à partir des propriétés d'environnement Amazon Relational Database Service (Amazon RDS) fournies par Elastic Beanstalk. Utilisez JDBC\$1CONNECTION\$1STRING uniquement pour les instances de base de données qui ne sont pas mises en service via Elastic Beanstalk.  
Pour plus d'informations sur l'utilisation d'Amazon RDS avec votre application Java, consultez [Ajouter une instance de base de données Amazon RDS à votre environnement Java Elastic Beanstalk](java-rds.md).

Pour les versions de la plateforme Tomcat publiées avant [le 26 mars 2025,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) les variables d'environnement sont accessibles à l'aide `System.getProperty()` de. Par exemple, vous pouvez lire une propriété nommée `API_ENDPOINT` à partir d'une variable avec le code suivant.

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

Les versions de la plateforme Tomcat publiées le [26 mars 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) ou après cette date peuvent également être utilisées `System.getenv` pour accéder aux variables d'environnement en texte brut. Vous pouvez continuer à utiliser pour accéder `System.getProperty` aux variables d'environnement en texte brut. Cependant, les [variables d'environnement stockées sous forme de secrets](AWSHowTo.secrets.env-vars.md) ne sont disponibles qu'à l'aide de`System.getenv`. Par exemple, vous pouvez lire une variable d'environnement nommée `API_KEY` avec le code suivant.

```
String apiKey = System.getenv("API_KEY");
```

**Important**  
L'ajout de l'`System.getenv()`accès aux variables d'environnement dans les versions de la plateforme Tomcat publiées le [26 mars 2025](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html) ou après cette date peut provoquer un comportement inattendu dans les applications qui accordent la priorité aux variables d'environnement sur les propriétés du système Java ou lors du passage explicite de à`System.getProperty()`. `System.getenv()`  
Étant donné que les propriétés système (transmises via la ligne de commande) nécessitent un échappement du shell pour les caractères spéciaux, contrairement aux variables d'environnement, les valeurs peuvent être résolues différemment lorsque vous utilisez des variables d'environnement plutôt que des propriétés système Java.  
Si votre application est concernée, pensez à :  
Suppression des caractères d'échappement des valeurs de propriétés de votre environnement lors de l'utilisation `System.getenv()`
Configuration de votre application pour une utilisation explicite `System.getProperty()`
Tester minutieusement votre application lors de la mise à niveau afin de garantir un comportement cohérent

Pour plus d'informations, consultez [Variables d'environnement et autres paramètres du logiciel](environments-cfg-softwaresettings.md).

## Espaces de noms de la configuration Tomcat
<a name="java-tomcat-namespaces"></a>

Vous pouvez utiliser un [fichier de configuration](ebextensions.md) pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être [spécifiques à la plate-forme](command-options-specific.md) ou s'appliquer à [toutes les plateformes](command-options-general.md) du service Elastic Beanstalk dans son ensemble. Les options de configuration sont organisées en *espaces de noms.*

La plateforme Tomcat prend en charge les options des espaces de noms suivants en plus des [options prises en charge pour tous les environnements Elastic Beanstalk](command-options-general.md) :
+ `aws:elasticbeanstalk:container:tomcat:jvmoptions` : modifier les paramètres de la JVM. Les options de cet espace de noms correspondent aux options de la console de gestion, comme suit :
  + `Xms` – **JVM command line options (Options de ligne de commande de la JVM**
  + `JVM Options` – **JVM command line options (Options de ligne de commande de la JVM**
+ `aws:elasticbeanstalk:environment:proxy` : choisissez le serveur proxy de l'environnement.

L'exemple de fichier de configuration suivant illustre l'utilisation d'options de configuration spécifiques à Tomcat :

**Example .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
```

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d' AWS CLI. Pour plus d'informations, consultez [Options de configuration](command-options.md).

## Plateforme Tomcat d'AMI Amazon Linux (antérieure à Amazon Linux 2)
<a name="tomcat.alami"></a>

Si votre environnement Elastic Beanstalk Tomcat utilise une version de plateforme AMI Amazon Linux (antérieure à Amazon Linux 2), lisez les informations supplémentaires dans cette section.

**Remarques**  
Les informations contenues dans cette rubrique s'appliquent uniquement aux branches de plate-forme basées sur l'AMI Amazon Linux (AL1). AL2023Les branches/AL2 platform sont incompatibles avec les versions précédentes de la plateforme Amazon Linux AMI (AL1) et *nécessitent des paramètres de configuration différents*.
 [Le 18 juillet 2022,](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2022-07-18-linux-al1-retire.html) **Elastic Beanstalk a défini le statut de toutes les branches de la plateforme sur la base de l'AMI AL1 Amazon Linux () comme étant supprimées.** Pour plus d'informations sur la migration vers une branche de plateforme Amazon Linux 2023 actuelle et entièrement prise en charge, consultez [Migration de votre application Elastic Beanstalk Linux vers Amazon Linux 2023 ou Amazon Linux 2](using-features.migration-al.md).

### Espaces de noms de configuration Tomcat — AMI Amazon Linux () AL1
<a name="tomcat.alami.namespaces"></a>

La plateforme Tomcat d'AMI Amazon Linux prend en charge des options supplémentaires dans les espaces de noms suivants :
+ `aws:elasticbeanstalk:container:tomcat:jvmoptions` : en plus des options mentionnées précédemment sur cette page pour cet espace de noms, les anciennes versions de la plateforme AMI Amazon Linux prennent également en charge les éléments suivants :
  + `XX:MaxPermSize` – **Maximum JVM permanent generation size (Taille maximum de génération permanente de la JVM**
+ `aws:elasticbeanstalk:environment:proxy` : en plus de choisir le serveur proxy, configurez également la compression de réponse.

L'exemple de fichier de configuration suivant illustre l'utilisation d'options de configuration de l'espace de noms du proxy.

**Example .ebextensions/tomcat-settings.config**  

```
option_settings:
  aws:elasticbeanstalk:environment:proxy:
    GzipCompression: 'true'
    ProxyServer: nginx
```

### Inclure les fichiers de configuration d'Elastic Beanstalk — Amazon Linux AMI () AL1
<a name="java-tomcat-ebextensions"></a>

Pour déployer les fichiers de configuration `.ebextensions`, incluez-les dans la source de votre application. S'il s'agit d'une seule application, ajoutez `.ebextensions` à un fichier WAR compressé en exécutant la commande suivante :

**Example**  

```
zip -ur your_application.war .ebextensions
```

Pour une application nécessitant plusieurs fichiers WAR, consultez [Création d'une offre groupée de plusieurs fichiers WAR pour les environnements Tomcat](java-tomcat-multiple-war-files.md) pour plus d'informations.