

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.

# Instances de conteneur EC2 Amazon ECS
<a name="ecs-agent-versions"></a>

L’agent Amazon ECS est un processus qui s’exécute sur chaque instance de conteneur enregistrée auprès de votre cluster. Il facilite la communication entre vos instances de conteneur et Amazon ECS.

**Note**  
Sur les instances de conteneur Linux, le conteneur d’agents monte des répertoires de premier niveau tels que `/lib`, `/lib64` et `/proc`. Ceci est nécessaire pour les fonctionnalités d’ECS telles que les volumes Amazon EBS, le mode réseau `awsvpc`, Amazon ECS Service Connect et FireLens pour Amazon ECS.

Chaque version d'agent de conteneur Amazon ECS prend en charge un ensemble de différentes fonctions et fournit des correctifs des versions précédentes. Dans la mesure du possible, nous recommandons toujours d'utiliser la dernière version de l'agent de conteneur Amazon ECS. Pour mettre à jour votre agent de conteneur avec la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md).

L’agent de conteneur Amazon ECS contient l’image `amazon-ecs-pause`. Amazon ECS utilise cette image pour les tâches qui utilisent le mode réseau `awsvpc`.

Pour voir quelles fonctionnalités et améliorations sont incluses dans chaque version de l'agent, consultez [https://github.com/aws/amazon-ecs-agent/releases](https://github.com/aws/amazon-ecs-agent/releases).

**Important**  
La version minimale de Docker pour des métriques fiables est la version `v20.10.13` et les versions ultérieures, qui sont incluses dans l'AMI `20220607` optimisée pour Amazon ECS et les versions plus récentes.  
La version de l'agent Amazon ECS `1.20.0` et les versions plus récentes ne prennent plus en charge les versions de Docker antérieures à `18.01.0`.

## Cycle de vie
<a name="container-lifecycle"></a>

Lorsque l'agent de conteneur Amazon ECS enregistre une instance Amazon EC2 dans votre cluster, le statut de l'instance Amazon EC2 est `ACTIVE` et le statut de connexion de l'agent est `TRUE`. Cette instance de conteneur peut exécuter des demandes de tâches.

Si vous arrêtez (sans la résilier) une instance de conteneur, son statut reste `ACTIVE`, mais le statut de connexion de l'agent devient `FALSE` en quelques minutes. Toutes les tâches qui étaient en cours d'exécution sur l'instance de conteneur s'arrêtent. Si vous redémarrez l'instance de conteneur, l'agent de conteneur se connecte à nouveau avec le service Amazon ECS service et vous êtes à nouveau en mesure d'exécuter des tâches sur l'instance.

Si vous remplacez le statut d'une instance de conteneur par `DRAINING`, les nouvelles tâches ne sont pas placées sur l'instance de conteneur. Toutes les tâches de service en cours d'exécution sur l'instance de conteneur sont supprimées, si possible, afin que vous puissiez effectuer les mises à jour du système. Pour de plus amples informations, veuillez consulter [Drainage des instances de conteneur Amazon ECS](container-instance-draining.md).

Si vous annulez l'enregistrement d'une instance de conteneur ou la résiliez, le statut de l'instance de conteneur passe immédiatement à `INACTIVE` et l'instance de conteneur ne figure plus dans la liste des instances de conteneur. Cependant, vous pouvez toujours décrire l'instance de conteneur pendant une heure après la résiliation. Après un délai d'une heure, la description de l'instance n'est plus disponible.

Vous pouvez drainer les instances manuellement ou créer un hook de cycle de vie du groupe Auto Scaling pour définir l'état de l'instance sur `DRAINING`. Pour plus d'informations sur les hooks de cycle de vie Auto Scaling, consultez [Hooks de cycle de vie Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html).

## Prise en charge de Docker
<a name="docker-support"></a>

Amazon ECS prend en charge les deux dernières versions majeures de Docker publiées sur Amazon Linux. Actuellement, cela inclut Docker 20.10.x et Docker 25.x.

La version minimale requise de Docker pour Amazon ECS se trouve dans le [fichier de spécification de l'agent Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/dev/packaging/amazon-linux-ami-integrated/ecs-agent.spec#L53) sur GitHub.

Lorsque vous utilisez l’AMI optimisée pour Amazon ECS, Docker est préinstallé et configuré pour fonctionner avec l’agent de conteneur Amazon ECS. L’AMI inclut une version de Docker testée et prise en charge par Amazon ECS.

**Note**  
Amazon ECS prend en charge plusieurs versions de Docker, mais nous vous recommandons d’utiliser la version Docker fournie avec l’AMI optimisée pour Amazon ECS pour une compatibilité et un support optimaux.

## AMI optimisée pour Amazon ECS
<a name="ecs-optimized-ami"></a>

Pour plus d'informations sur l'AMI optimisée pour Amazon ECS, consultez [Amazon ECS-optimized](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) Linux. AMIs

## Informations supplémentaires
<a name="additional-information"></a>

Les pages suivantes fournissent des informations supplémentaires sur les modifications :
+ Connectez-vous à la liste des [modifications apportées à l'agent Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/CHANGELOG.md) GitHub
+ [Notes de mise à jour pour Amazon Linux 2](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).
+ [Notes de mise à jour Docker Engine](https://docs.docker.com/engine/release-notes/27/) dans la documentation Docker
+ [Documentation du pilote NVIDIA](https://docs.nvidia.com/datacenter/tesla/index.html) dans la documentation NVIDIA

# Configuration de l'agent de conteneur Amazon ECS
<a name="ecs-agent-config"></a>

**S’applique à** : instances EC2

L’agent de conteneur Amazon ECS prend en charge un certain nombre d’options de configuration, dont la plupart sont définies via des variables d’environnement. 

Si votre instance de conteneur a été lancée avec une variante Linux de l'AMI optimisée pour Amazon ECS, vous pouvez définir ces variables d'environnement dans le fichier `/etc/ecs/ecs.config`, puis redémarrer l'agent. Vous pouvez également écrire ces variables de configuration dans vos instances de conteneur avec les données utilisateur Amazon EC2 lors du lancement. Pour de plus amples informations, veuillez consulter [Démarrage des instances de conteneurs Amazon ECS Linux pour transmettre des données](bootstrap_container_instance.md).

Si votre instance de conteneur a été lancée avec une variante Windows de l'AMI optimisée pour Amazon ECS, vous pouvez définir ces variables d'environnement à l'aide de la PowerShell SetEnvironmentVariable commande, puis redémarrer l'agent. Pour plus d’informations, consultez la section [Exécuter des commandes lorsque vous lancez une instance EC2 avec des données utilisateur fournies](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) dans le *Guide de l’utilisateur Amazon EC2* et [Amorçage des instances de conteneurs Windows Amazon ECS pour transmettre des données](bootstrap_windows_container_instance.md).

Si vous démarrez manuellement l'agent de conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs), vous pouvez utiliser ces variables d'environnement dans la **docker run** commande que vous utilisez pour démarrer l'agent. Utilisez ces variables avec la syntaxe `--env=VARIABLE_NAME=VARIABLE_VALUE`. Pour les informations sensibles, telles que les informations d'authentification des référentiels privés, vous devez stocker vos variables d'environnement d'agent dans un fichier et les transmettre toutes à la fois avec l'option `--env-file path_to_env_file`. Vous pouvez utiliser les commandes suivantes pour ajouter les variables.

```
sudo systemctl stop ecs
sudo vi /etc/ecs/ecs.config 
# And add the environment variables with VARIABLE_NAME=VARIABLE_VALUE format.
sudo systemctl start ecs
```

## Exécution de l’agent Amazon ECS avec l’espace de noms PID de l’hôte
<a name="ecs-agent-pid-namespace"></a>

Par défaut, l’agent Amazon ECS s’exécute avec son propre espace de noms PID. Dans les configurations suivantes, vous pouvez configurer l’agent Amazon ECS pour qu’il s’exécute avec l’espace de noms PID de l’hôte :
+ SELinux le mode d'application est activé.
+ La politique de SELinux sécurité de Docker est définie sur true.

Vous pouvez configurer ce comportement en définissant la variable d’environnement `ECS_AGENT_PID_NAMESPACE_HOST` sur `true` dans votre fichier `/etc/ecs/ecs.config`. Lorsque cette variable est activée, le conteneur de l'agent Amazon ECS `ecs-init` démarre avec l'espace de noms PID de l'hôte (`--pid=host`), ce qui permet à l'agent de s'amorcer correctement dans SELinux les environnements d'application. Ces fonctionnalités sont disponibles dans les versions `1.94.0` et ultérieures de l’agent Amazon ECS.

Pour activer cette fonctionnalité, ajoutez la ligne suivante à votre fichier `/etc/ecs/ecs.config` :

```
ECS_AGENT_PID_NAMESPACE_HOST=true
```

Après avoir effectué cette modification, redémarrez l’agent Amazon ECS pour que la modification soit prise en compte :

```
sudo systemctl restart ecs
```

Les fonctionnalités suivantes ne fonctionneront pas : le mode d' SELinux exécution est activé et la politique de sécurité Docker est définie sur true, même lorsqu'elle `ECS_AGENT_PID_NAMESPACE_HOST=true` est définie.
+ Amazon ECS Exec
+ Attacher une tâche Amazon EBS
+ Service Connect
+ FireLens pour Amazon ECS

## Paramètres disponibles
<a name="ecs-agent-availparam"></a>

Pour plus d'informations sur les paramètres de configuration de l'agent de conteneur Amazon ECS disponibles, consultez [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) on GitHub.

# Stockage de la configuration d’instance de conteneur Amazon ECS dans Amazon S3
<a name="ecs-config-s3"></a>

La configuration de l’agent de conteneur Amazon ECS est contrôlée avec les variables d’environnement. Les variantes Linux de l'AMI optimisée pour Amazon ECS vérifient la présence de ces variables dans `/etc/ecs/ecs.config` lorsque l'agent de conteneur démarre et configurent l'agent en conséquence. Les variables d’environnement non sensibles, telles que `ECS_CLUSTER`, peuvent être transmises à l’instance de conteneur au moment du lancement via les données utilisateur Amazon EC2 et enregistrées dans ce fichier sans conséquence. Cependant, d'autres informations sensibles, telles que vos AWS informations d'identification ou la `ECS_ENGINE_AUTH_DATA` variable, ne doivent jamais être transmises à une instance `/etc/ecs/ecs.config` dans les données utilisateur ou écrites de manière à ce qu'elles apparaissent dans un `.bash_history` fichier.

Stocker les informations de configuration dans un compartiment privé d'Amazon S3 et accorder un accès en lecture seule au rôle IAM de votre instance de conteneur est un moyen pratique et sécurisé d'autoriser la configuration d'une instance de conteneur au moment du lancement. Vous pouvez stocker une copie de votre fichier `ecs.config` dans un compartiment privé. Vous pouvez ensuite utiliser les données utilisateur Amazon EC2 pour installer AWS CLI et copier vos informations de configuration au `/etc/ecs/ecs.config` moment du lancement de l'instance.

**Pour stocker un fichier `ecs.config` dans Amazon S3**

1. Vous devez accorder au rôle d'instance de conteneur (**ecsInstanceRole**) des autorisations pour avoir un accès en lecture seule à Amazon S3. Vous pouvez le faire en assignant l'**AmazonS3 ReadOnlyAccess au rôle**. `ecsInstanceRole` Pour plus d’informations sur la manière d’associer une politique à un rôle, consultez la section [Modification des autorisations pour un rôle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-permissions.html) dans le *Guide de l’utilisateur Gestion des identités et des accès AWS *.

1. Créez un fichier `ecs.config` contenant des variables de configuration d'agent Amazon ECS valides en utilisant le format suivant. Cet exemple configure l'authentification de registre privé. Pour de plus amples informations, veuillez consulter [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).

   ```
   ECS_ENGINE_AUTH_TYPE=dockercfg
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
   ```
**Note**  
Pour obtenir la liste complète des variables de configuration des agents Amazon ECS disponibles, consultez [Amazon ECS Container Agent](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) on GitHub.

1. Pour stocker votre fichier de configuration, créez un compartiment privé dans Amazon S3. Pour de plus amples informations, consultez la section [Création d’un compartiment](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) dans le *Guide de l’utilisateur d’Amazon Simple Storage Service*. 

1. Chargez le fichier `ecs.config` dans votre compartiment S3. Pour plus d'informations, consultez [Chargement d'objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) dans le *Guide de l'utilisateur Amazon Simple Storage Service*.

**Pour charger un fichier `ecs.config` à partir d'Amazon S3 lors du lancement**

1. Exécutez les précédentes procédures de la présente section pour autoriser l'accès en lecture seule d'Amazon S3 à vos instances de conteneur et stocker un fichier `ecs.config` dans un compartiment S3 privé.

1. Lancez de nouvelles instances de conteneur et utilisez l’exemple de script suivant dans les données utilisateur EC2. Le script installe AWS CLI et copie votre fichier de configuration dans. `/etc/ecs/ecs.config` Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

   ```
   #!/bin/bash
   yum install -y aws-cli
   aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
   ```

# Installation de l'agent de conteneur Amazon ECS
<a name="ecs-agent-install"></a>

Si vous souhaitez enregistrer une instance Amazon EC2 auprès de votre cluster Amazon ECS et que cette instance n’utilise pas d’AMI basée sur l’AMI optimisée pour Amazon ECS, vous pouvez installer l’agent de conteneur Amazon ECS manuellement à l’aide de la procédure suivante. Pour ce faire, vous pouvez télécharger l’agent à partir d’un des compartiments S3 régionaux ou à partir d’Amazon Elastic Container Registry Public. Si vous téléchargez à partir d’un des compartiments S3 régionaux, vous pouvez éventuellement vérifier la validité du fichier d’agent de conteneur à l’aide de la signature PGP.

**Note**  
Les unités `systemd` pour les services Amazon ECS et Docker sont soumises à une directive qui demande d'attendre que `cloud-init` ait terminé avant de démarrer les deux services. Le processus `cloud-init` n'est pas considéré comme terminé tant que les données utilisateur Amazon EC2 n'ont pas été complètement exécutées. Par conséquent, le démarrage d'Amazon ECS ou de Docker via les données utilisateur Amazon EC2 peut provoquer un blocage. Pour démarrer l'agent de conteneur à l'aide des données utilisateur Amazon EC2, vous pouvez utiliser `systemctl enable --now --no-block ecs.service`.

## Installation de l'agent du conteneur Amazon ECS sur une instance EC2 autre que Amazon Linux
<a name="ecs-agent-install-nonamazonlinux"></a>

Pour installer l’agent de conteneur Amazon ECS sur une instance Amazon EC2, vous pouvez télécharger l’agent à partir d’un des compartiments Amazon S3 régionaux et l’installer.

**Note**  
Lorsque vous utilisez une AMI Linux autre qu'Amazon, votre instance Amazon EC2 nécessite une prise en charge de `cgroupfs` pour le pilote `cgroup` pour que l'agent Amazon ECS prenne en charge les limites de ressources au niveau des tâches. Pour plus d'informations, consultez la section [Agent Amazon ECS sur GitHub](https://github.com/aws/amazon-ecs-agent).

Les fichiers de l'agent de conteneur Amazon ECS le plus récent sont répertoriés par région ci-dessous à des fins de référence pour chaque architecture système.


| Région | Nom de la région | Fichiers deb init Amazon ECS | Fichiers rpm init Amazon ECS | 
| --- | --- | --- | --- | 
| us-east-2 | USA Est (Ohio) |  [Amazon ECS init amd64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-2.amazonaws.com/amazon-ecs-agent-us-east-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-east-1 | USA Est (Virginie du Nord) |  [Amazon ECS init amd64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-east-1.amazonaws.com/amazon-ecs-agent-us-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-1 | USA Ouest (Californie du Nord) |  [Amazon ECS init amd64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-1.amazonaws.com/amazon-ecs-agent-us-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-west-2 | USA Ouest (Oregon) |  [Amazon ECS init amd64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-east-1 | Asie-Pacifique (Hong Kong) |  [Amazon ECS init amd64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-east-1.amazonaws.com/amazon-ecs-agent-ap-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-1 | Asie-Pacifique (Tokyo) |  [Amazon ECS init amd64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-1.amazonaws.com/amazon-ecs-agent-ap-northeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-northeast-2 | Asie-Pacifique (Séoul) |  [Amazon ECS init amd64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-northeast-2.amazonaws.com/amazon-ecs-agent-ap-northeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-south-1 | Asie-Pacifique (Mumbai) |  [Amazon ECS init amd64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-south-1.amazonaws.com/amazon-ecs-agent-ap-south-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-1 | Asie-Pacifique (Singapour) |  [Amazon ECS init amd64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-1.amazonaws.com/amazon-ecs-agent-ap-southeast-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ap-southeast-2 | Asie-Pacifique (Sydney) |  [Amazon ECS init amd64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ap-southeast-2.amazonaws.com/amazon-ecs-agent-ap-southeast-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| ca-central-1 | Canada (Centre) |  [Amazon ECS init amd64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.ca-central-1.amazonaws.com/amazon-ecs-agent-ca-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-central-1 | Europe (Francfort) |  [Amazon ECS init amd64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-central-1.amazonaws.com/amazon-ecs-agent-eu-central-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-1 | Europe (Irlande) |  [Amazon ECS init amd64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-1.amazonaws.com/amazon-ecs-agent-eu-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-2 | Europe (Londres) |  [Amazon ECS init amd64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-2.amazonaws.com/amazon-ecs-agent-eu-west-2/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| eu-west-3 | Europe (Paris) |  [Amazon ECS init amd64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.eu-west-3.amazonaws.com/amazon-ecs-agent-eu-west-3/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| sa-east-1 | Amérique du Sud (São Paulo) |  [Amazon ECS init amd64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.x86_64.rpm) [Amazon ECS init aarch64](https://s3.sa-east-1.amazonaws.com/amazon-ecs-agent-sa-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-east-1 | AWS GovCloud (USA Est) |  [Amazon ECS init amd64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-east-1.amazonaws.com/amazon-ecs-agent-us-gov-east-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 
| us-gov-west-1 | AWS GovCloud (US-Ouest) |  [Amazon ECS init amd64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.amd64.deb) (amd64) [Amazon ECS init arm64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.arm64.deb) (arm64)  |  [Amazon ECS init x86\$164](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.x86_64.rpm) (x86\$164) [Amazon ECS init aarch64](https://s3.us-gov-west-1.amazonaws.com/amazon-ecs-agent-us-gov-west-1/amazon-ecs-init-latest.aarch64.rpm) (aarch64)  | 

**Pour installer l'agent de conteneur Amazon ECS sur une instance Amazon EC2 autre qu'Amazon Linux AMI**

1. Lancez une instance Amazon EC2 avec un rôle IAM qui autorise l'accès à Amazon ECS. Pour de plus amples informations, veuillez consulter [Rôle IAM d'instance de conteneur Amazon ECS](instance_IAM_role.md).

1. Connectez-vous à votre instance.

1. Installez la dernière version de Docker sur votre instance.

1. Vérifiez votre version de Docker pour vous assurer que votre système répond à l'exigence de version minimale. Pour plus d’informations sur la prise en charge de Docker, consultez la section [Instances de conteneur EC2 Amazon ECS](ecs-agent-versions.md).

   ```
   docker --version
   ```

1. Téléchargez le fichier d'agent Amazon ECS approprié pour votre système d'exploitation et votre architecture système, puis installez-le.

   Pour les architectures `deb` :

   ```
   ubuntu:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.amd64.deb
   ubuntu:~$ sudo dpkg -i amazon-ecs-init-latest.amd64.deb
   ```

   Pour les architectures `rpm` :

   ```
   fedora:~$ curl -O https://s3.us-west-2.amazonaws.com/amazon-ecs-agent-us-west-2/amazon-ecs-init-latest.x86_64.rpm
   fedora:~$ sudo yum localinstall -y amazon-ecs-init-latest.x86_64.rpm
   ```

1. Modifiez le fichier `/lib/systemd/system/ecs.service` et ajoutez la ligne suivante à la fin de la section `[Unit]`.

   ```
   After=cloud-final.service
   ```

1. (Facultatif) Pour enregistrer l'instance auprès d'un cluster autre que le cluster `default`, modifiez le fichier `/etc/ecs/ecs.config` et ajoutez le contenu suivant. L'exemple suivant spécifie le cluster `MyCluster` :

   ```
   ECS_CLUSTER=MyCluster
   ```

   Pour plus d'informations sur ces options ainsi que d'autres options d'exécution d'agents, consultez la page [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md). 
**Note**  
Vous pouvez éventuellement stocker vos variables d'environnement d'agent dans Amazon S3. Elles pourront être téléchargées dans vos instances de conteneur lors du lancement à l'aide des données utilisateur Amazon EC2. Ceci est particulièrement conseillé pour les informations sensibles, telles que les informations d'authentification pour les référentiels privés. Pour plus d’informations, consultez [Stockage de la configuration d’instance de conteneur Amazon ECS dans Amazon S3](ecs-config-s3.md) et [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).

1. Lancez le service `ecs`.

   ```
   ubuntu:~$ sudo systemctl start ecs
   ```

## Exécution de l'agent Amazon ECS avec le mode réseau hôte
<a name="container_agent_host"></a>

Lorsque vous exécutez l'agent de conteneur Amazon ECS, `ecs-init` créera le conteneur d'agent de conteneur avec le mode de réseau `host`. C'est le seul mode de réseau pris en charge pour le conteneur d'agent de conteneur. 

Cela vous permet de bloquer l'accès au [point de terminaison de service de métadonnées de l'instance Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) (`http://169.254.169.254`) pour les conteneurs lancés par l'agent de conteneur. Cela permet d'assurer que les conteneurs ne sont pas en mesure d'accéder aux informations d'identification du rôle IAM à partir du profil d'instance de conteneur et impose que les tâches utilisent uniquement les informations d'identification de rôle de tâche IAM. Pour de plus amples informations, veuillez consulter [rôle IAM de tâche Amazon ECS](task-iam-roles.md).

Cela permet également à l'agent de conteneur de ne pas devoir disputer les connexions et le trafic réseau sur la passerelle `docker0`.

## Paramètres de configuration du journal de l’agent de conteneur Amazon ECS
<a name="agent-logs"></a>

L'agent de conteneur Amazon ECS stocke les journaux sur vos instances de conteneur.

Pour l'agent de conteneur version 1.36.0 et ultérieure, les journaux sont par défaut situés sur `/var/log/ecs/ecs-agent.log` sur les instances Linux et `C:\ProgramData\Amazon\ECS\log\ecs-agent.log` sur les instances Windows.

Pour l'agent de conteneur version 1.35.0 et antérieure, les journaux sont par défaut situés sur `/var/log/ecs/ecs-agent.log.timestamp` sur les instances Linux et `C:\ProgramData\Amazon\ECS\log\ecs-agent.log.timestamp` sur les instances Windows.

Par défaut, les journaux de l'agent font l'objet d'une rotation toutes les heures et un maximum de 24 journaux sont stockés.

Voici les variables de configuration de l'agent de conteneur qui peuvent être utilisées pour modifier le comportement de journalisation de l'agent par défaut. Pour obtenir des informations détaillées sur tous les paramètres de configuration disponibles, consultez [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md) le [fichier README de l'agent Amazon ECS](https://github.com/aws/amazon-ecs-agent/blob/master/README.md) sur GitHub.

Pour l'agent de conteneur version 1.36.0 et ultérieure, voici un exemple de fichier journal lorsque le format `logfmt` est utilisé.

```
level=info time=2019-12-12T23:43:29Z msg="Loading configuration" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-agent:latest" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Image excluded from cleanup: amazon/amazon-ecs-pause:0.1.0" module=parse.go
level=info time=2019-12-12T23:43:29Z msg="Amazon ECS agent Version: 1.36.0, Commit: ca640387" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Creating root ecs cgroup: /ecs" module=init_linux.go
level=info time=2019-12-12T23:43:29Z msg="Creating cgroup /ecs" module=cgroup_controller_linux.go
level=info time=2019-12-12T23:43:29Z msg="Loading state!" module=statemanager.go
level=info time=2019-12-12T23:43:29Z msg="Event stream ContainerChange start listening..." module=eventstream.go
level=info time=2019-12-12T23:43:29Z msg="Restored cluster 'auto-robc'" module=agent.go
level=info time=2019-12-12T23:43:29Z msg="Restored from checkpoint file. I am running as 'arn:aws:ecs:us-west-2:0123456789:container-instance/auto-robc/3330a8a91d15464ea30662d5840164cd' in cluster 'auto-robc'" module=agent.go
```

Voici un exemple de fichier journal lorsque le format JSON est utilisé.

```
{"time": "2019-11-07T22:52:02Z", "level": "info", "msg": "Starting Amazon Elastic Container Service Agent", "module": "engine.go"}
```

# Configuration des instances de conteneur Amazon ECS pour les images Docker privées
<a name="private-auth-container-instances"></a>

L'agent de conteneur Amazon ECS peut authentifier au moyen de registres privés, à l'aide de l'authentification de base. Lorsque vous activez l'authentification de registres privés, vous pouvez utiliser des images Docker privées dans vos définitions de tâche. Cette fonctionnalité n’est prise en charge que pour les tâches utilisant EC2.

Une autre méthode d'activation de l'authentification du registre privé consiste AWS Secrets Manager à stocker vos informations d'identification de registre privé en toute sécurité, puis à les référencer dans la définition de votre conteneur. Cela permet à vos tâches d'utiliser des images de référentiels privés. Cette méthode prend en charge les tâches utilisant EC2 ou Fargate. Pour de plus amples informations, veuillez consulter [Utilisation d'images autres que des AWS conteneurs dans Amazon ECS](private-auth.md).

Au lancement, l'agent de conteneur Amazon ECS recherche deux variables d'environnement :
+ `ECS_ENGINE_AUTH_TYPE`, qui spécifie le type des données d'authentification envoyées.
+ `ECS_ENGINE_AUTH_DATA`, qui contient les informations d'authentification réelles.

Les variantes Linux de l'AMI optimisée pour Amazon ECS analysent le `/etc/ecs/ecs.config` fichier à la recherche de ces variables au lancement de l'instance de conteneur et à chaque démarrage du service (avec la **sudo start ecs** commande). AMIs qui ne sont pas optimisés pour Amazon ECS doivent stocker ces variables d'environnement dans un fichier et les transmettre avec l'`--env-file path_to_env_file`option à la **docker run** commande qui démarre l'agent de conteneur.

**Important**  
Nous déconseillons d'injecter ces variables d'environnement d'authentification au moment du lancement de l'instance avec les données utilisateur Amazon EC2 ou de les transmettre avec l'option `--env` à la commande **docker run**. Ces méthodes ne sont pas appropriées pour les données sensibles, par exemple les informations d'authentification. Pour plus d'informations sur l'ajout en toute sécurité d'informations d'authentification à vos instances de conteneur, consultez [Stockage de la configuration d’instance de conteneur Amazon ECS dans Amazon S3](ecs-config-s3.md).

## Formats d'authentification
<a name="docker-auth-formats"></a>

Il existe deux formats disponibles pour une authentification de registre privé, `dockercfg` et `docker`.

**Format d'authentification dockercfg**  
Le format `dockercfg` utilise les informations d'authentification stockées dans le fichier de configuration qui est créé lorsque vous exécutez la commande **docker login**. Pour créer ce fichier, exécutez **docker login** sur votre système local et saisissez votre nom d'utilisateur de registre, votre mot de passe et une adresse e-mail. Vous pouvez également vous connecter à une instance de conteneur et y exécuter la commande. Selon votre version de Docker, ce fichier est enregistré sous la forme `~/.dockercfg` ou `~/.docker/config.json`.

```
cat ~/.docker/config.json
```

Sortie :

```
{
  "auths": {
    "https://index.docker.io/v1/": {
      "auth": "zq212MzEXAMPLE7o6T25Dk0i"
    }
  }
}
```

**Important**  
Les versions les plus récentes de Docker créent un fichier de configuration comme illustré ci-après avec un objet `auths` externe. L'agent Amazon ECS prend en charge les données d'authentification `dockercfg` au format ci-dessous uniquement, sans l'objet `auths`. Si l'utilitaire **jq** est installé, vous pouvez extraire ces données à l'aide de la commande suivante : **cat \$1/.docker/config.json \$1 jq .auths**

```
cat ~/.docker/config.json | jq .auths
```

Sortie :

```
{
  "https://index.docker.io/v1/": {
    "auth": "zq212MzEXAMPLE7o6T25Dk0i",
    "email": "email@example.com"
  }
}
```

Dans l'exemple ci-dessus, les variables d'environnement suivantes doivent être ajoutées au fichier de variables d'environnement (`/etc/ecs/ecs.config` pour l'AMI optimisée pour Amazon ECS) que l'agent de conteneur Amazon ECS charge au moment de l'exécution. Si vous n'utilisez pas l'AMI optimisée pour Amazon ECS et que vous démarrez l'agent manuellement avec **docker run**, spécifiez le fichier de variables d'environnement avec l'option `--env-file path_to_env_file` lorsque vous démarrez l'agent.

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example.com"}}
```

Vous pouvez configurer plusieurs registres privés avec la syntaxe suivante :

```
ECS_ENGINE_AUTH_TYPE=dockercfg
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"auth":"zq212MzEXAMPLE7o6T25Dk0i","email":"email@example-01.com"},"repo.example-02.com":{"auth":"fQ172MzEXAMPLEoF7225DU0j","email":"email@example-02.com"}}
```

**Format d'authentification docker**  
Le format `docker` utilise une représentation JSON du serveur de registre que l'agent doit utiliser pour l'authentification. Il inclut également les paramètres d'authentification requis par ce registre (par exemple, nom d'utilisateur, mot de passe et adresse e-mail pour ce compte). Pour un compte Docker Hub, la représentation JSON se présente comme suit :

```
{
  "https://index.docker.io/v1/": {
    "username": "my_name",
    "password": "my_password",
    "email": "email@example.com"
  }
}
```

Dans cet exemple, les variables d'environnement suivantes doivent être ajoutées au fichier de variables d'environnement (`/etc/ecs/ecs.config` pour l'AMI optimisée pour Amazon ECS) que l'agent de conteneur Amazon ECS charge au moment de l'exécution. Si vous n'utilisez pas l'AMI optimisée pour Amazon ECS et que vous démarrez l'agent manuellement avec **docker run**, spécifiez le fichier de variables d'environnement avec l'option `--env-file path_to_env_file` lorsque vous démarrez l'agent.

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
```

Vous pouvez configurer plusieurs registres privés avec la syntaxe suivante :

```
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"repo.example-01.com":{"username":"my_name","password":"my_password","email":"email@example-01.com"},"repo.example-02.com":{"username":"another_name","password":"another_password","email":"email@example-02.com"}}
```

## Procédure
<a name="enabling-private-registry"></a>

Utilisez la procédure suivante pour activer les registres privés pour vos instances de conteneur.

**Pour activer les registres privés dans l'AMI optimisée pour Amazon ECS**

1. Connectez-vous à votre instance de conteneur à l'aide de SSH.

1. Ouvrez le fichier `/etc/ecs/ecs.config` et ajoutez les valeurs `ECS_ENGINE_AUTH_TYPE` et `ECS_ENGINE_AUTH_DATA` pour votre registre et votre compte :

   ```
   sudo vi /etc/ecs/ecs.config
   ```

   Cet exemple authentifie un compte d'utilisateur Docker Hub :

   ```
   ECS_ENGINE_AUTH_TYPE=docker
   ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
   ```

1. Vérifiez si votre agent utilise la variable d'environnement `ECS_DATADIR` pour enregistrer son état :

   ```
   docker inspect ecs-agent | grep ECS_DATADIR
   ```

   Sortie :

   ```
   "ECS_DATADIR=/data",
   ```
**Important**  
Si la commande précédente ne renvoie pas la variable d'environnement `ECS_DATADIR`, vous devez arrêter toutes les tâches en cours d'exécution sur cette instance de conteneur avant d'arrêter l'agent. Les agents les plus récents avec la variable d'environnement `ECS_DATADIR` enregistrent leur état et peuvent être arrêtés et démarrés sans problèmes tandis que des tâches sont en cours d'exécution. Pour de plus amples informations, veuillez consulter [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md).

1. Arrêtez le service `ecs` :

   ```
   sudo stop ecs
   ```

   Sortie :

   ```
   ecs stop/waiting
   ```

1. Redémarrez le service `ecs`.
   + Pour l'AMI Amazon Linux 2 optimisée pour Amazon ECS :

     ```
     sudo systemctl restart ecs
     ```
   + Pour l'AMI Amazon Linux optimisée pour Amazon ECS :

     ```
     sudo stop ecs && sudo start ecs
     ```

1. (Facultatif) Vous pouvez vérifier que l'agent est en cours d'exécution et consulter des informations sur votre nouvelle instance de conteneur en interrogeant l'opération API d'introspection d'agent. Pour de plus amples informations, veuillez consulter [Introspection de conteneur Amazon ECS](ecs-agent-introspection.md).

   ```
   curl http://localhost:51678/v1/metadata
   ```

# Nettoyage automatique des tâches et des images Amazon ECS
<a name="automated_image_cleanup"></a>

Chaque fois qu'une tâche est placée sur une instance de conteneur, l'agent de conteneur Amazon ECS vérifie si les images référencées dans la tâche sont les images les plus récentes de la balise spécifiée dans le référentiel. Si ce n'est pas le cas, le comportement par défaut permet à l'agent d'extraire les images de leurs référentiels respectifs. Si vous modifiez fréquemment les images dans vos tâches et services, votre stockage d'instance de conteneur peut se remplir rapidement avec des images Docker que vous n'utilisez plus et que vous n'utiliserez probablement jamais plus. Par exemple, vous utilisez peut-être un pipeline pour l'intégration et le déploiement continus (CI/CD).

**Note**  
Il est possible de personnaliser le comportement d'extraction d'image de l'agent Amazon ECS à l'aide du paramètre `ECS_IMAGE_PULL_BEHAVIOR`. Pour de plus amples informations, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

De même, les conteneurs appartenant à des tâches arrêtées peuvent également consommer du stockage d'instance de conteneur avec des informations de journal, des volumes de données et d'autres artefacts. Ces artefacts sont utiles pour le débogage des conteneurs qui se sont arrêtés de manière inattendue, mais la plupart de ce stockage peut être libéré en toute sécurité après une période donnée. 

Par défaut, l'agent de conteneur Amazon ECS élimine automatiquement les tâches arrêtées et les images Docker qui ne sont pas utilisées par des tâches de vos instances de conteneur.

**Note**  
La fonction de nettoyage automatique d'image nécessite au moins la version 1.13.0 de l'agent de conteneur Amazon ECS. Pour mettre à jour votre agent avec la dernière version, consultez [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md).

Les variables de configuration d'agent suivantes sont disponibles pour ajuster votre expérience de tâches automatisées et de nettoyage d'image. Pour plus d'informations sur la façon de définir ces variables sur vos instances de conteneur, consultez [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

`ECS_ENGINE_TASK_CLEANUP_WAIT_DURATION`  
Délai d’attente par défaut avant la suppression des conteneurs pour une tâche arrêtée. Si la valeur définie est inférieure à 1 seconde, elle est ignorée. Par défaut, ce paramètre est défini sur trois heures, mais vous pouvez réduire cette période à une seconde, si votre application le nécessite.  
Le processus de nettoyage d'image ne peut pas supprimer une image tant qu'un conteneur y fait référence. Une fois les conteneurs supprimés, toutes les images non référencées peuvent être nettoyées en fonction des paramètres de configuration du nettoyage d’image.

`ECS_DISABLE_IMAGE_CLEANUP`  
Si vous définissez cette variable sur `true`, le nettoyage automatique d'image est désactivé sur votre instance de conteneur et aucune image n'est supprimée automatiquement.

`ECS_IMAGE_CLEANUP_INTERVAL`  
Cette variable spécifie à quelle fréquence le processus de nettoyage d'image automatique recherche des images à supprimer. La valeur par défaut est toutes les 30 minutes, mais vous pouvez réduire ce délai à 10 minutes pour supprimer les images plus fréquemment.

`ECS_IMAGE_MINIMUM_CLEANUP_AGE`  
Cette variable spécifie le délai minimal entre le moment où une image a été extraite et celui où elle peut être supprimée. Cela permet d'empêcher le nettoyage d'images tout juste extraites. La valeur par défaut est 1 heure.

`ECS_NUM_IMAGES_DELETE_PER_CYCLE`  
Cette variable spécifie le nombre d'images pouvant être supprimées en un seul cycle de nettoyage. La valeur par défaut est de 5 et la valeur minimale est de 1.

Lorsque l'agent de conteneur Amazon ECS est en cours d'exécution et que le nettoyage automatique d'image n'est pas désactivé, l'agent recherche des images Docker qui ne sont pas référencées par des conteneurs en cours d'exécution ou arrêtés à une fréquence déterminée par la variable `ECS_IMAGE_CLEANUP_INTERVAL`. Si des images inutilisées sont trouvées et qu'elles sont antérieures au délai de nettoyage minimal spécifié par la variable `ECS_IMAGE_MINIMUM_CLEANUP_AGE`, l'agent supprime le nombre maximal d'images spécifiées avec la variable `ECS_NUM_IMAGES_DELETE_PER_CYCLE`. Les images référencées le moins récemment sont supprimées en premier. Une fois les images supprimées, l'agent attend jusqu'au prochain intervalle et répète le processus.