

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.

# Gestion des instances de conteneur Amazon ECS Linux
<a name="manage-linux"></a>

Lorsque vous utilisez des instances EC2 pour vos charges de travail Amazon ECS, vous êtes responsable de la maintenance des instances

**Topics**
+ [Lancement d'une instance de conteneur](launch_container_instance.md)
+ [Démarrage d’instances de conteneur Linux](bootstrap_container_instance.md)
+ [Configuration des instances de conteneur pour recevoir des notifications relatives aux instances Spot](spot-instance-draining-linux-container.md)
+ [Exécution d’un script lorsque vous lancez une instance de conteneur](start_task_at_launch.md)
+ [Augmentation des interfaces réseau d’une instance de conteneur Amazon ECS Linux](container-instance-eni.md)
+ [Réservation de mémoire pour une instance de conteneur](memory-management.md)
+ [Gestion à distance des instances de conteneur](ec2-run-command.md)
+ [Utilisation d’un proxy HTTP pour les instances de conteneur Linux](http_proxy_config.md)
+ [Configuration d’instances préinitialisées pour votre groupe Auto Scaling](using-warm-pool.md)
+ [Mise à jour de l'agent de conteneur Amazon ECS](ecs-agent-update.md)

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).

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

# Lancement d'une instance de conteneur Amazon ECS Linux
<a name="launch_container_instance"></a>

Vos instances de conteneur Amazon ECS sont créées à l’aide de la console Amazon EC2. 

Vous pouvez lancer une instance par différentes méthodes, notamment la console Amazon EC2 et AWS CLI le SDK. Pour plus d’informations sur les autres méthodes de lancement d’instance, consultez la section [Lancer votre instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) dans le *Guide de l’utilisateur Amazon EC2*.

Pour plus d’informations sur l’assistant de lancement, consultez la section [Lancement d’une instance à l’aide du nouvel assistant de lancement d’instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) dans le *Guide de l’utilisateur Amazon EC2*. 

Avant de commencer, complétez les étapes détaillées dans [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md).

Vous pouvez utiliser le nouvel assistant Amazon EC2 pour lancer une instance. L’assistant de lancement d’instance spécifie les paramètres de lancement qui sont requis pour lancer une instance. 

**Topics**
+ [Procédure](#linux-liw-initiate-instance-launch)
+ [Noms et identifications](#linux-liw-name-and-tags)
+ [Images d’applications et de systèmes d’exploitation (Amazon Machine Image)](#linux-liw-ami)
+ [Type d’instance](#linux-liw-instance-type)
+ [Paire de clés (connexion)](#linux-liw-key-pair)
+ [Paramètres réseau](#linux-liw-network-settings)
+ [Configurer le stockage](#linux-liw-storage)
+ [Détails avancés](#linux-liw-advanced-details)

## Procédure
<a name="linux-liw-initiate-instance-launch"></a>

Avant de commencer, complétez les étapes détaillées dans [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md).

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans la barre de navigation en haut de l'écran, la AWS région actuelle est affichée (par exemple, USA East (Ohio)). Sélectionnez une région dans laquelle lancer l’instance. 

1. Sur le tableau de bord de la console Amazon EC2, sélectionnez **Launch instance (Lancer une instance)**.

## Noms et identifications
<a name="linux-liw-name-and-tags"></a>

Le nom de l'instance est une identification, où la clé est **Name** (Nom), et la valeur est le nom que vous spécifiez. Vous pouvez étiqueter l'instance, les volumes et les Elastic Graphics. Pour les instances Spot, vous pouvez baliser uniquement la demande d’instance Spot. 

La spécification d’un nom d’instance et d’identifications supplémentaires est facultative.
+ Pour **Name** (Nom), saisissez un nom descriptif pour l’instance. Si vous ne spécifiez pas de nom, l’instance peut être identifiée par son ID, qui est automatiquement généré lorsque vous lancez l’instance.
+ Pour ajouter des identifications supplémentaires, sélectionnez **Add additional tags** (Ajouter des identifications supplémentaires). Choisissez **Add tag** (Ajouter une identification), saisissez une clé et une valeur, puis sélectionnez le type de ressource à étiqueter. Choisissez **Add tag** (Ajouter une identification) pour chaque étiquette supplémentaire.

## Images d’applications et de systèmes d’exploitation (Amazon Machine Image)
<a name="linux-liw-ami"></a>

Une Amazon Machine Image (AMI) contient les informations requises pour créer une instance. Par exemple, une AMI peut contenir le logiciel nécessaire pour fonctionner en tant que serveur web, comme Apache et votre site web.

Utilisez la barre **de recherche** pour trouver une AMI optimisée pour Amazon ECS adaptée publiée par. AWS

1. Entrez l'un des termes suivants dans la barre de **recherche**.
   + **ami-ecs**
   + La **valeur** d'une AMI optimisée pour Amazon ECS.

     Pour connaître les dernières versions optimisées pour Amazon ECS AMIs et leurs valeurs, consultez l'AMI optimisée pour [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux) pour Linux.

1. Appuyez sur **Entrée**.

1. Sur la page **Choose an Amazon Machine Image (AMI)**, sélectionnez l' AMIsonglet **AWS Marketplace**.

1. À partir du volet de gauche **Refine results (Affiner les résultats)**, sélectionnez **Amazon Web Services** en tant qu'**éditeur**.

1. Choisissez **Sélectionner** sur la ligne de l'AMI que vous souhaitez utiliser.

   Vous pouvez également choisir **Cancel (Annuler)** (en haut à droite) pour revenir à l'assistant de lancement d'instance sans choisir une AMI. Une AMI par défaut sera sélectionnée. Assurez-vous que l'AMI répond aux exigences décrites dans le système Linux [optimisé pour Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html). AMIs

## Type d’instance
<a name="linux-liw-instance-type"></a>

Le type d’instance définit la configuration matérielle et la taille de l’instance. Les types d’instance plus importants disposent de plus d’UC et de mémoire. Pour plus d’informations, consultez [Types d’instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) dans le *Guide de l’utilisateur Amazon EC2*. Si vous souhaitez exécuter une charge de travail IPv6 uniquement, certains types d'instances ne prennent pas en charge IPv6 les adresses. Pour plus d'informations, consultez les [IPv6adresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#ipv6-addressing) dans le guide de l'*utilisateur Amazon EC2*.
+ Pour **Instance type** (Type d’instance), sélectionnez le type de l’instance. 

   Le type d'instance que vous sélectionnez détermine les ressources disponibles pour les tâches à exécuter.

## Paire de clés (connexion)
<a name="linux-liw-key-pair"></a>

Pour **Key pair name** (Nom de la paire de clés), choisissez une paire de clés existante ou choisissez **Create new key pair** (Créer une nouvelle paire de clés) pour en créer une nouvelle. 

**Important**  
Si vous sélectionnez l’option **Proceed without key pair (Not recommended)** ((Continuer sans paire de clé) (Non recommandé)), vous ne pourrez pas vous connecter à l’instance à moins de choisir une AMI configurée de façon à autoriser les utilisateurs à se connecter d’une autre façon.

## Paramètres réseau
<a name="linux-liw-network-settings"></a>

Configurez les paramètres réseau selon vos besoins après avoir cliqué sur le bouton **Modifier** dans la section **Paramètres réseau** du formulaire.
+ Pour **VPC**, choisissez le VPC dans lequel vous souhaitez lancer l’instance. Pour exécuter une charge de travail IPv6 uniquement, choisissez un VPC à double pile qui inclut à la fois IPv4 un bloc CIDR et IPv6 un bloc CIDR.
+ Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Vous pouvez lancer une instance dans un sous-réseau associé à une zone de disponibilité, une zone locale, une zone Wavelength ou un Outpost.

  Pour lancer l’instance dans une zone de disponibilité, sélectionnez le sous-réseau dans lequel lancer votre instance. Pour créer un sous-réseau, choisissez **Créer un nouveau sous-réseau** afin d’accéder à la console Amazon VPC. Une fois que vous avez terminé, revenez dans l’assistant de lancement d’instance et choisissez l’icône Refresh (Actualiser) afin de charger votre sous-réseau dans la liste.

  Pour lancer l’instance dans une zone locale, sélectionnez un sous-réseau que vous avez créé dans la zone locale. 

  Pour lancer une instance dans un Outpost, sélectionnez un sous-réseau dans un VPC que vous avez associé à l’Outpost.

  Pour exécuter une charge de travail IPv6 uniquement, choisissez un sous-réseau qui inclut uniquement un bloc IPv6 CIDR.
+ **Auto-assign Public IP** (Attribuer automatiquement l'adresse IP publique) : si votre instance doit être accessible à partir d'Internet, vérifiez que le champ **Auto-assign Public IP** (Attribuer automatiquement l'adresse IP publique) est défini sur **Enable** (Activer). Si ce n'est pas le cas, définissez ce champ sur **Disable** (Désactiver).
**Note**  
Les instances de conteneur ont besoin de communiquer avec le point de terminaison de service Amazon ECS. Cela peut être via un point de terminaison d'un VPC d'interface ou via vos instances de conteneur ayant des adresses IP publiques.  
Pour plus d'informations sur les points de terminaison d'un VPC d'interface, consultez [Points de terminaison d'un VPC d'interface Amazon ECS (AWS PrivateLink)](vpc-endpoints.md).  
Si vous n'avez pas de point de terminaison d'un VPC d'interface configuré et que vos instances de conteneur n'ont pas d'adresses IP publiques, elles doivent utiliser la traduction d'adresse réseau (NAT) pour fournir cet accès. Pour de plus amples informations, veuillez consulter [Passerelles NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) dans le *Guide de l'utilisateur Amazon VPC* et [Utilisation d’un proxy HTTP pour les instances de conteneur Amazon ECS Linux](http_proxy_config.md) dans ce guide. 
+ **Si vous choisissez un VPC à double pile et un sous-réseau IPv6 uniquement, pour **Attribuer automatiquement IPv6 ** une adresse IP, choisissez Enable.**
+ **Firewall (security groups)** (Pare-feu (groupes de sécurité)) : utilisez un groupe de sécurité afin de définir les règles de pare-feu de votre instance de conteneur. Ces règles déterminent le trafic réseau entrant acheminé vers votre instance de conteneur. Le reste du trafic est ignoré. 
  + Pour sélectionner un groupe de sécurité existant, choisissez **Select existing security group** (Sélectionner un groupe de sécurité existant), puis sélectionnez le groupe de sécurité que vous avez créé dans [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md).
+ Si vous lancez l'instance pour une charge de travail IPv6 uniquement, choisissez **Configuration réseau avancée**, puis pour **Attribuer une IPv6 adresse IP principale**, choisissez **Oui**.
**Note**  
Sans IPv6 adresse principale, les tâches exécutées sur l'instance de conteneur en mode réseau hôte ou pont ne pourront pas être enregistrées auprès des équilibreurs de charge ou auprès AWS Cloud Map de.

## Configurer le stockage
<a name="linux-liw-storage"></a>

L’AMI sélectionnée inclut un ou plusieurs volumes de stockage, notamment le volume racine. Vous pouvez spécifier d’autres volumes à attacher à l’instance.

Vous pouvez utiliser la vue **Simple**.
+ **Storage type** (Type de stockage) : configurez le stockage pour votre instance de conteneur.

  Si vous utilisez l'AMI Amazon Linux 2 optimisée pour Amazon ECS, votre instance contient un seul volume configuré de 30 Gio, partagé entre le système d'exploitation et Docker.

  Si vous utilisez l'AMI optimisée pour Amazon ECS, votre instance contient deux volumes configurés. Le volume **Racine** est réservé au système d'exploitation et le second volume Amazon EBS (attaché à `/dev/xvdcz`) est réservé à Docker.

  Vous pouvez augmenter ou diminuer la taille des volumes pour votre instance afin de répondre aux besoins de votre application.

## Détails avancés
<a name="linux-liw-advanced-details"></a>

Développez la section **Détails avancés** pour afficher les champs et spécifier des paramètres supplémentaires pour l’instance.
+ **Purchasing option** (Option d'achat) : sélectionnez **Request Spot Instances** (Demander des instances Spot) pour demander une instance Spot. Vous devez également définir les autres champs associés aux instances Spot. Pour plus d'informations, consultez [Demandes d'instances Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-requests.html).
**Note**  
Si vous utilisez les instances Spot et qu'un message `Not available` s'affiche, vous devrez peut-être choisir un autre type d'instance.
+ **IAM instance profile** (Profil d'instance IAM) : sélectionnez votre rôle IAM d'instance de conteneur. Celui-ci est généralement nommé `ecsInstanceRole`.
**Important**  
Si vous ne pas lancez votre instance de conteneur avec les autorisations IAM appropriées, votre agent Amazon ECS ne peut pas se connecter à votre cluster. Pour de plus amples informations, veuillez consulter [Rôle IAM d'instance de conteneur Amazon ECS](instance_IAM_role.md).
+ **Données utilisateur** : configurez votre instance de conteneur Amazon ECS avec les données utilisateur, telles que les variables d’environnement d’agent depuis [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md). Les scripts de données utilisateur Amazon EC2 sont exécutés une seule fois, au premier lancement de l'instance. Les exemples suivants présentent des utilisations courantes des données utilisateur :
  + Par défaut, votre instance de conteneur est lancée dans votre cluster par défaut. Pour un lancement dans un cluster autre que celui défini par défaut, choisissez la liste **Détails avancés**. Collez ensuite le script suivant dans le champ **Données utilisateur**, en le *your\$1cluster\$1name* remplaçant par le nom de votre cluster.

    ```
    #!/bin/bash
    echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
    ```
  + Si vous avez un fichier `ecs.config` dans Amazon S3 et que l'accès en lecture seule d'Amazon S3 à votre rôle d'instance de conteneur est activé, choisissez la liste **Advanced Details (Détails avancés)**. Collez ensuite le script suivant dans le champ **Données utilisateur**, en le *your\$1bucket\$1name* remplaçant par le nom de votre bucket pour installer le AWS CLI et écrivez votre fichier de configuration au moment du lancement. 
**Note**  
Pour en savoir plus sur cette configuration, consultez [Stockage de la configuration d’instance de conteneur Amazon ECS dans Amazon S3](ecs-config-s3.md).

    ```
    #!/bin/bash
    yum install -y aws-cli
    aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config
    ```
  + Spécifiez des balises pour votre instance de conteneur à l'aide du paramètre de configuration `ECS_CONTAINER_INSTANCE_TAGS`. Cela permet de créer des balises associées uniquement à Amazon ECS, qui ne peuvent pas être répertoriées à l'aide de l'API Amazon EC2.
**Important**  
Si vous lancez vos instances de conteneur à l'aide d'un groupe Amazon EC2 Auto Scaling, vous devez utiliser le paramètre de configuration de l'agent ECS\$1CONTENER\$1INSTANCE\$1TAGS pour ajouter des balises. Cela est dû à la manière dont les balises sont ajoutées aux instances Amazon EC2 lancées à l'aide de groupes Auto Scaling.

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_CONTAINER_INSTANCE_TAGS={"tag_key": "tag_value"}
    EOF
    ```
  + Spécifiez les balises pour votre instance de conteneur, puis utilisez le paramètre de configuration `ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM` pour les propager depuis Amazon EC2 vers Amazon ECS.

    L'exemple suivant présente un script de données utilisateur qui propage les balises associées à une instance de conteneur, et enregistre l'instance de conteneur avec un cluster nommé `your_cluster_name` :

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_CONTAINER_INSTANCE_PROPAGATE_TAGS_FROM=ec2_instance
    EOF
    ```
  + Par défaut, l'agent de conteneur Amazon ECS essaiera de détecter la compatibilité de l'instance de conteneur pour une configuration réservée à une configuration IPv6 uniquement en examinant la valeur par défaut IPv4 et IPv6 les itinéraires de l'instance. Pour annuler ce comportement, vous pouvez définir le paramètre ` ECS_INSTANCE_IP_COMPATIBILITY` sur `ipv4` ou `ipv6` dans le fichier `/etc/ecs/ecs.config` de l’instance.

    ```
    #!/bin/bash
    cat <<'EOF' >> /etc/ecs/ecs.config
    ECS_CLUSTER=your_cluster_name
    ECS_INSTANCE_IP_COMPATIBILITY=ipv6
    EOF
    ```

  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).

# Démarrage des instances de conteneurs Amazon ECS Linux pour transmettre des données
<a name="bootstrap_container_instance"></a>

Lorsque vous lancez une instance Amazon EC2, vous pouvez transmettre les données utilisateur à cette instance. Ces données peuvent être utilisées afin d'effectuer des tâches de configuration automatisées courantes, voire d'exécuter des scripts lors du démarrage de l'instance. Pour Amazon ECS, les données utilisateur sont le plus souvent utilisées pour transmettre les informations de configuration au démon Docker et à l'agent de conteneur Amazon ECS.

Vous pouvez transmettre plusieurs types de données utilisateur à Amazon EC2, notamment des boothooks de cloud, des scripts shell et des directives `cloud-init`. Pour plus d'informations sur ce point et sur d'autres types de format, consultez la [documentation sur Cloud-Init](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). 

Pour transmettre les données utilisateur lors de l’utilisation de l’assistant de lancement Amazon EC2, consultez la section [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

Vous pouvez configurer l’instance de conteneur pour transmettre des données dans la configuration de l’agent de conteneur ou dans la configuration du démon Docker.

## Agent de conteneur Amazon ECS
<a name="bootstrap_container_agent"></a>

Les variantes Linux de l'AMI optimisée pour Amazon ECS recherchent les données de configuration de l'agent dans le fichier `/etc/ecs/ecs.config` au démarrage de l'agent de conteneur. Vous pouvez spécifier ces données de configuration lors du lancement avec les données utilisateur Amazon EC2. Pour plus d'informations sur les variables de configuration d'agent de conteneur Amazon ECS disponibles, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

Pour définir une seule variable de configuration d'agent, par exemple le nom du cluster, utilisez **echo** afin de copier la variable dans le fichier de configuration :

```
#!/bin/bash
echo "ECS_CLUSTER=MyCluster" >> /etc/ecs/ecs.config
```

Si vous devez écrire plusieurs variables dans `/etc/ecs/ecs.config`, utilisez le format `heredoc` suivant. Ce format écrit tout entre les lignes commençant par **cat** et `EOF` dans le fichier de configuration.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_ENGINE_AUTH_TYPE=docker
ECS_ENGINE_AUTH_DATA={"https://index.docker.io/v1/":{"username":"my_name","password":"my_password","email":"email@example.com"}}
ECS_LOGLEVEL=debug
ECS_WARM_POOLS_CHECK=true
EOF
```

Pour définir des attributs d'instance personnalisés, définissez la variable d'environnement `ECS_INSTANCE_ATTRIBUTES`.

```
#!/bin/bash
cat <<'EOF' >> ecs.config
ECS_INSTANCE_ATTRIBUTES={"envtype":"prod"}
EOF
```

## Démon Docker
<a name="bootstrap_docker_daemon"></a>

Vous pouvez spécifier des informations de configuration du démon Docker avec les données utilisateur Amazon EC2. Pour plus d'informations sur les options de configuration , consultez [la documentation sur le démon Docker](https://docs.docker.com/reference/cli/dockerd/).

**Note**  
AWS ne prend pas en charge les configurations Docker personnalisées, car elles peuvent parfois entrer en conflit avec les futures modifications ou fonctionnalités d'Amazon ECS sans avertissement.

Dans l'exemple ci-dessous, les options personnalisées sont ajoutées au fichier de configuration du démon Docker, `/etc/docker/daemon.json`, qui est ensuite spécifié dans les données utilisateur lors du lancement de l'instance.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"debug": true}
EOF
systemctl restart docker --no-block
```

Dans l'exemple ci-dessous, les options personnalisées sont ajoutées au fichier de configuration du démon Docker, `/etc/docker/daemon.json`, qui est ensuite spécifié dans les données utilisateur lors du lancement de l'instance. Cet exemple montre comment désactiver le proxy Docker dans le fichier de configuration du démon Docker.

```
#!/bin/bash
cat <<EOF >/etc/docker/daemon.json
{"userland-proxy": false}
EOF
systemctl restart docker --no-block
```

# Configuration des instances de conteneur Amazon ECS Linux pour recevoir des notifications relatives aux instances Spot
<a name="spot-instance-draining-linux-container"></a>

Amazon EC2 résilie, arrête ou met en veille prolongée votre instance Spot lorsque le prix Spot dépasse le prix maximum de votre demande ou lorsque la capacité n'est plus disponible. Amazon EC2 fournit un avis d'interruption de deux minutes pour les actions de résiliation et d'arrêt des instances Spot. Il ne fournit pas l'avis de deux minutes pour l'action de mise en veille prolongée. Si le drainage des instances Spot Amazon ECS est activé sur l’instance, Amazon ECS reçoit l’avis d’interruption d’instance Spot et bascule l’instance à l’état `DRAINING`. 

**Important**  
Amazon ECS ne reçoit pas d'avis de la part d'Amazon EC2 lorsque les instances sont supprimées par le rééquilibrage de la capacité Auto Scaling. Pour plus d'informations, consultez [Rééquilibrage de la capacité Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html).

Lorsqu'une instance de conteneur est définie sur `DRAINING`, Amazon ECS bloque la planification du placement des nouvelles tâches sur l'instance de conteneur. Les tâches de service ayant l'état `PENDING` sur l'instance de conteneur faisant l'objet du drainage sont arrêtées immédiatement. S'il y a des instances de conteneur disponibles dans le cluster, des tâches de service de remplacement sont lancées dessus.

Le drainage des instances Spot est désactivé par défaut. 

Vous pouvez activer le drainage d’instance Spot lorsque vous lancez une instance. Ajoutez le script suivant dans le champ **Données utilisateur**. Remplacez *MyCluster* par le nom du cluster dans lequel enregistrer l'instance de conteneur.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
EOF
```

Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

**Pour activer le drainage des instances Spot pour une instance de conteneur existante**

1. Connectez-vous à l'instance Spot via SSH.

1. Modifiez le fichier `/etc/ecs/ecs.config` et ajoutez le code suivant :

   ```
   ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
   ```

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

     ```
     sudo systemctl restart 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
   ```

# Exécution d’un script lorsque vous lancez une instance de conteneur Amazon ECS Linux
<a name="start_task_at_launch"></a>

Vous devrez peut-être exécuter un conteneur spécifique sur chaque instance de conteneur pour traiter les problèmes de sécurité et de fonctionnement, telles que la surveillance, la sécurité, les métriques, la découverte de service ou la journalisation.

Pour ce faire, vous pouvez configurer vos instances de conteneur de façon à ce qu'elles appellent la commande **docker run** avec le script de données utilisateur au moment du lancement ou dans un système d'initialisation comme Upstart ou **systemd**. Bien que cette méthode soit efficace, elle présente quelques inconvénients, étant donné qu'Amazon ECS n'a pas connaissance du conteneur et qu'il ne peut pas surveiller l'UC, la mémoire, les ports ni aucune autre ressource utilisée. Afin de veiller à ce qu'Amazon ECS prenne en compte correctement toutes les ressources de la tâche, vous devez créer une définition de tâche pour le conteneur que vous voulez exécuter sur vos instances de conteneur. Ensuite, utilisez Amazon ECS pour placer la tâche au moment du lancement avec les données utilisateur Amazon EC2.

Le script de données utilisateur Amazon EC2 de la procédure suivante utilise l'API d'introspection Amazon ECS pour identifier l'instance de conteneur. Ensuite, il utilise la **start-task** commande AWS CLI et pour exécuter une tâche spécifiée sur lui-même au démarrage. 

**Pour démarrer une tâche au moment du lancement d'une instance de conteneur**

1. Modifiez votre rôle IAM `ecsInstanceRole` pour ajouter des autorisations pour l'opération d'API `StartTask`. Pour plus d’informations, consultez la section [Mettre à jour les 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. Lancez une ou plusieurs instances de conteneur à l’aide de l’AMI Amazon Linux 2 optimisée pour Amazon ECS. Lancez de nouvelles instances de conteneur et utilisez l’exemple de script suivant dans les données utilisateur EC2. *your\$1cluster\$1name*Remplacez-le par le cluster dans lequel l'instance de conteneur doit être enregistrée et *my\$1task\$1def* par la définition de tâche à exécuter sur l'instance au lancement. 

   Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).
**Note**  
Le contenu du fichier MIME en plusieurs parties ci-dessous utilise un script shell pour définir les valeurs de configuration et installer les packages. Il utilise également une tâche systemd pour démarrer la tâche après le lancement du service **ecs** et une fois que l'API d'introspection est disponible.

   ```
   Content-Type: multipart/mixed; boundary="==BOUNDARY=="
   MIME-Version: 1.0
   
   --==BOUNDARY==
   Content-Type: text/x-shellscript; charset="us-ascii"
   
   #!/bin/bash
   # Specify the cluster that the container instance should register into
   cluster=your_cluster_name
   
   # Write the cluster configuration variable to the ecs.config file
   # (add any other configuration variables here also)
   echo ECS_CLUSTER=$cluster >> /etc/ecs/ecs.config
   
   START_TASK_SCRIPT_FILE="/etc/ecs/ecs-start-task.sh"
   cat <<- 'EOF' > ${START_TASK_SCRIPT_FILE}
   	exec 2>>/var/log/ecs/ecs-start-task.log
   	set -x
   	
   	# Install prerequisite tools
   	yum install -y jq aws-cli
   	
   	# Wait for the ECS service to be responsive
   	until curl -s http://localhost:51678/v1/metadata
   	do
   		sleep 1
   	done
   
   	# Grab the container instance ARN and AWS Region from instance metadata
   	instance_arn=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F/ '{print $NF}' )
   	cluster=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .Cluster' | awk -F/ '{print $NF}' )
   	region=$(curl -s http://localhost:51678/v1/metadata | jq -r '. | .ContainerInstanceArn' | awk -F: '{print $4}')
   
   	# Specify the task definition to run at launch
   	task_definition=my_task_def
   
   	# Run the AWS CLI start-task command to start your task on this container instance
   	aws ecs start-task --cluster $cluster --task-definition $task_definition --container-instances $instance_arn --started-by $instance_arn --region $region
   EOF
   
   # Write systemd unit file
   UNIT="ecs-start-task.service"
   cat <<- EOF > /etc/systemd/system/${UNIT}
         [Unit]
         Description=ECS Start Task
         Requires=ecs.service
         After=ecs.service
    
         [Service]
         Restart=on-failure
         RestartSec=30
         ExecStart=/usr/bin/bash ${START_TASK_SCRIPT_FILE}
   
         [Install]
         WantedBy=default.target
   EOF
   
   # Enable our ecs.service dependent service with `--no-block` to prevent systemd deadlock
   # See https://github.com/aws/amazon-ecs-agent/issues/1707
   systemctl enable --now --no-block "${UNIT}"
   --==BOUNDARY==--
   ```

1. Vérifiez que vos instances de conteneur sont lancées dans le cluster approprié et que vos tâches ont démarré.

   1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

   1. Dans la barre de navigation, sélectionnez la région dans laquelle se trouve votre cluster.

   1. Dans le panneau de navigation, choisissez **Clusters**, puis sélectionnez le cluster qui héberge vos instances de conteneur.

   1. Sur la page **Cluster**, choisissez **Tâches**, puis choisissez vos tâches.

      Chaque instance de conteneur que vous avez lancée doit comporter votre tâche en cours d'exécution.

      Si vous ne voyez pas vos tâches, vous pouvez vous connecter à vos instances de conteneur avec le protocole SSH et vérifier le fichier `/var/log/ecs/ecs-start-task.log` pour consulter les informations de débogage.

# Augmentation des interfaces réseau d’une instance de conteneur Amazon ECS Linux
<a name="container-instance-eni"></a>

**Note**  
Cette fonction n'est pas disponible sur Fargate.

Les tâches qui utilisent le mode réseau `awsvpc` reçoivent chacune leur propre interface réseau Elastic (ENI), qui est attachée à l’instance de conteneur qui l’héberge. Le nombre d'interfaces réseau qui peuvent être attachées à des instances Amazon EC2 est limité par défaut et l'interface réseau principale est considérée comme l'une d'elles. Par exemple, par défaut, jusqu'à trois `c5.large` instances peuvent être ENIs associées. L'interface réseau principale de l'instance compte pour une seule, vous pouvez donc en attacher deux autres ENIs à l'instance. Dans la mesure où chaque tâche utilisant le mode réseau `awsvpc` nécessite une ENI, vous ne pouvez généralement exécuter que deux tâches sur ce type d’instance.

Amazon ECS prend en charge le lancement d’instances de conteneur avec une augmentation de la densité ENI et utilisant des types d’instances Amazon EC2 pris en charge. Lorsque vous utilisez ces types d'instances et que vous activez le paramètre du `awsvpcTrunking` compte, d'autres ENIs sont disponibles sur les instances de conteneur récemment lancées. Cette configuration vous permet de placer plus de tâches sur chaque instance de conteneur. Pour utiliser la console afin d’activer la fonctionnalité, consultez la section [Modification des paramètres de compte Amazon ECS](ecs-modifying-longer-id-settings.md). Pour utiliser le AWS CLI pour activer la fonctionnalité, voir[Gestion des paramètres du compte Amazon ECS à l'aide du AWS CLI](account-setting-management-cli.md). 

Par exemple, une instance `c5.large` dotée du paramètre `awsvpcTrunking` dispose d’une limite ENI augmentée à douze. L'instance de conteneur a alors une interface réseau principale. Amazon ECS crée et attache une interface réseau « tronc » à l'instance de conteneur. Par conséquent, cette configuration vous permet de lancer dix tâches sur l'instance de conteneur au lieu des deux tâches actuellement possibles.

L'interface réseau « tronc » est entièrement gérée par Amazon ECS et est supprimée lorsque vous résiliez votre instance de conteneur ou lorsque vous annulez son enregistrement dans le cluster. Pour de plus amples informations, veuillez consulter [Options de mise en réseau des tâches Amazon ECS pour EC2](task-networking.md).

## Considérations
<a name="eni-trunking-considerations"></a>

Tenez compte des éléments suivants lorsque vous utilisez la fonctionnalité de jonction ENI.
+ Seules les versions Linux des AMI optimisées pour Amazon ECS ou les autres variantes Amazon Linux avec la version `1.28.1` ou ultérieure de l’agent de conteneur et la version `1.28.1-2` ou ultérieure du package ecs-init, prennent en charge l’augmentation de la limite ENI. Si vous utilisez la dernière variante Linux des AMI optimisées pour Amazon ECS, ces exigences seront respectées. Les conteneurs Windows ne sont pas pris en charge à l'heure actuelle.
+ Seules les nouvelles instances Amazon EC2 lancées après l’activation du paramètre `awsvpcTrunking` reçoivent l’augmentation des limites ENI et l’interface réseau « de jonction ». Les instances lancées avant cette adoption ne reçoivent pas ces fonctionnalités, quelles que soient les actions réalisées.
+ Les requêtes IPv4 DNS basées sur les ressources doivent être désactivées sur les instances Amazon EC2. Pour désactiver cette option, désactivez l'option **Activer les requêtes DNS basées sur les ressources IPV4 (enregistrement A)** lorsque vous créez une nouvelle instance dans la console Amazon EC2. Pour désactiver cette option à l'aide de AWS CLI, utilisez la commande suivante.

  ```
  aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
  ```
+ Les instances Amazon EC2 dans les sous-réseaux partagés ne sont pas prises en charge. Elles ne pourront pas s'enregistrer dans un cluster si elles sont utilisées.
+ Vos tâches doivent utiliser le mode réseau `awsvpc` et l’EC2. Les tâches utilisant Fargate ont toujours reçu une ENI dédiée, quel que soit leur nombre. Cette fonctionnalité n’est donc pas nécessaire.
+ Vos tâches doivent être lancées dans le même Amazon VPC que votre instance de conteneur. Vos tâches ne parviendront pas à démarrer avec une erreur d'attribut si elles ne sont pas dans le même VPC.
+ Lors du lancement d'une nouvelle instance de conteneur, celle-ci passe à l'état `REGISTERING` tandis que l'Elastic Network Interface (ENI) « tronc » est mise en service pour l'instance. Si l'enregistrement échoue, l'instance passe à l'état `REGISTRATION_FAILED`. Vous pouvez dépanner un échec d'enregistrement en décrivant l'instance de conteneur pour afficher le champ `statusReason` qui décrit la raison de l'échec. L'instance de conteneur peut alors être désenregistrée ou résiliée manuellement. Une fois que l’instance de conteneur est correctement désenregistrée ou résiliée, Amazon ECS supprime l’ENI « tronc ».
**Note**  
Amazon ECS émet des événements de changement d'état d'instance de conteneur que vous pouvez contrôler pour les instances qui passent à un état `REGISTRATION_FAILED`. Pour de plus amples informations, veuillez consulter [Événements de changement d’état d’une instance de conteneur Amazon ECS](ecs_container_instance_events.md).
+ Une fois que l'instance de conteneur est résiliée, elle passe à l'état `DEREGISTERING` tandis que la mise en service de l'ENI « tronc » est annulée. L'instance passe alors à l'état `INACTIVE`.
+ Si une instance de conteneur d’un sous-réseau public bénéficiant de l’augmentation des limites ENI est arrêtée puis redémarrée, elle perd son adresse IP publique et l’agent de conteneur perd sa connexion.
+ Lorsque vous activez `awsvpcTrunking`, les instances de conteneur reçoivent une ENI supplémentaire qui utilise le groupe de sécurité par défaut du VPC et qui est gérée par Amazon ECS.

  Un VPC par défaut est fourni avec un sous-réseau public dans chaque zone de disponibilité, une passerelle Internet et des paramètres permettant la résolution DNS. Le sous-réseau par défaut est public, car la table de routage principale envoie le trafic du sous-réseau destiné à Internet vers la passerelle Internet. Pour transformer un sous-réseau par défaut en sous-réseau privé, vous devez supprimer la route 0.0.0.0/0 pointant vers la passerelle Internet. Toutefois, si vous procédez ainsi, aucune instance de conteneur exécutée dans ce sous-réseau ne pourra accéder à Internet. Vous pouvez ajouter ou supprimer des règles de groupe de sécurité pour contrôler le trafic entrant et sortant de vos sous-réseaux. Pour plus d’informations, consultez la section [Règles des groupes de sécurité](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) dans le *Guide de l’utilisateur Amazon Virtual Private Cloud*.

## Conditions préalables
<a name="eni-trunking-launching"></a>

Avant de lancer une instance de conteneur bénéficiant d’une augmentation des limites ENI, vous devez veiller à ce que les conditions préalables suivantes soient réunies.
+ Le rôle lié à un service pour Amazon ECS doit être créé. Le rôle lié à un service Amazon ECS fournit à Amazon ECS les autorisations nécessaires pour passer des appels vers d'autres AWS services en votre nom. Ce rôle est généré automatiquement lorsque vous créez un cluster, ou si vous créez ou mettez à jour un service dans la AWS Management Console. Pour de plus amples informations, veuillez consulter [Utilisation des rôles liés à un service pour Amazon ECS](using-service-linked-roles.md). Vous pouvez également créer le rôle lié à un service à l'aide de la commande suivante AWS CLI .

  ```
  aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name ecs.amazonaws.com
  ```
+ Votre compte ou rôle IAM d'instance de conteneur doit activer le paramètre de compte `awsvpcTrunking`. Nous vous recommandons de créer deux rôles d’instance de conteneur (`ecsInstanceRole`). Vous pouvez ensuite activer le paramètre du compte `awsvpcTrunking` pour un rôle et utiliser ce rôle pour les tâches nécessitant une jonction ENI. Pour plus d’informations sur le rôle d’instance de conteneur, consultez la section [Rôle IAM d'instance de conteneur Amazon ECS](instance_IAM_role.md).

Une fois les conditions remplies, vous pouvez lancer une nouvelle instance de conteneur en utilisant l’un des types d’instances Amazon EC2 pris en charge. Cette instance bénéficiera de l’augmentation des limites ENI. Pour obtenir la liste des types d’instances, consultez [Instances prises en charge pour augmenter le nombre d’interfaces réseau de conteneurs Amazon ECS](eni-trunking-supported-instance-types.md). L'instance de conteneur doit disposer de la version `1.28.1` ou ultérieure de l'agent de conteneur et de la version `1.28.1-2` ou ultérieure du package ecs-init. Si vous utilisez la dernière variante Linux des AMI optimisées pour Amazon ECS, ces exigences seront respectées. Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

**Important**  
Les requêtes IPv4 DNS basées sur les ressources doivent être désactivées sur les instances Amazon EC2. Pour désactiver cette option, assurez-vous que l'option **Activer les requêtes DNS basées sur les ressources IPV4 (enregistrement A)** est désélectionnée lors de la création d'une nouvelle instance à l'aide de la console Amazon EC2. Pour désactiver cette option à l'aide de AWS CLI, utilisez la commande suivante.  

```
aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
```

**Pour afficher vos instances de conteneur avec des ENI limites accrues à l'aide du AWS CLI**

Chaque instance de conteneur possède une interface réseau par défaut, appelée interface réseau « tronc ». Utilisez la commande suivante pour répertorier vos instances de conteneur bénéficiant de l’augmentation des limites ENI en interrogeant l’attribut `ecs.awsvpc-trunk-id`, qui indique qu’elle dispose d’une interface réseau « de jonction ».
+ [list-attributes](https://docs.aws.amazon.com/cli/latest/reference/ecs/list-attributes.html) (AWS CLI)

  ```
  aws ecs list-attributes \
        --target-type container-instance \
        --attribute-name ecs.awsvpc-trunk-id \
        --cluster cluster_name \
        --region us-east-1
  ```
+ [Obtenir la ECSAttribute liste](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECSAttributeList.html) (AWS Tools for Windows PowerShell)

  ```
  Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1
  ```

# Instances prises en charge pour augmenter le nombre d’interfaces réseau de conteneurs Amazon ECS
<a name="eni-trunking-supported-instance-types"></a>

L'exemple suivant montre les types d'instances Amazon EC2 pris en charge et le nombre de tâches qui utilisent le mode réseau `awsvpc` pouvant être lancées sur chaque type d'instance avant et après l'activation du paramètre de compte `awsvpcTrunking`. 

**Important**  
Bien que d'autres types d'instance soient pris en charge dans la même famille d'instances, les types d'instance `a1.metal`, `c5.metal`, `c5a.8xlarge`, `c5ad.8xlarge`, `c5d.metal`, `m5.metal`, `p3dn.24xlarge`, `r5.metal`, `r5.8xlarge` et `r5d.metal` ne sont pas pris en charge.  
Les familles d'instances `c5n`, `d3`, `d3en`, `g3`, `g3s` ,`g4dn`, `i3`, `i3en`, `inf1`, `m5dn`, `m5n`, `m5zn`, `mac1`, `r5b`, `r5n`, `r5dn`, `u-12tb1`, `u-6tb1`, `u-9tb1` et `z1d` ne sont pas prises en charge.

**Topics**
+ [Usage général](#eni-branch-gp)
+ [Calcul optimisé](#eni-branch-co)
+ [Mémoire optimisée](#eni-branch-mo)
+ [Stockage optimisé](#eni-branch-so)
+ [Calcul accéléré](#eni-branch-ac)
+ [Calcul haute performance](#eni-branch-hpc)

## Usage général
<a name="eni-branch-gp"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| a1.medium | 1 | 10 | 
| a1.large | 2 | 10 | 
| a1.xlarge | 3 | 20 | 
| a1.2xlarge | 3 | 40 | 
| a1.4xlarge | 7 | 60 | 
| m5.large | 2 | 10 | 
| m5.xlarge | 3 | 20 | 
| m5.2xlarge | 3 | 40 | 
| m5.4xlarge | 7 | 60 | 
| m5.8xlarge | 7 | 60 | 
| m5.12xlarge | 7 | 60 | 
| m5.16xlarge | 14 | 120 | 
| m5.24xlarge | 14 | 120 | 
| m5a.large | 2 | 10 | 
| m5a.xlarge | 3 | 20 | 
| m5a.2xlarge | 3 | 40 | 
| m5a.4xlarge | 7 | 60 | 
| m5a.8xlarge | 7 | 60 | 
| m5a.12xlarge | 7 | 60 | 
| m5a.16xlarge | 14 | 120 | 
| m5a.24xlarge | 14 | 120 | 
| m5ad.large | 2 | 10 | 
| m5ad.xlarge | 3 | 20 | 
| m5ad.2xlarge | 3 | 40 | 
| m5ad.4xlarge | 7 | 60 | 
| m5ad.8xlarge | 7 | 60 | 
| m5ad.12xlarge | 7 | 60 | 
| m5ad.16xlarge | 14 | 120 | 
| m5ad.24xlarge | 14 | 120 | 
| m5d.large | 2 | 10 | 
| m5d.xlarge | 3 | 20 | 
| m5d.2xlarge | 3 | 40 | 
| m5d.4xlarge | 7 | 60 | 
| m5d.8xlarge | 7 | 60 | 
| m5d.12xlarge | 7 | 60 | 
| m5d.16xlarge | 14 | 120 | 
| m5d.24xlarge | 14 | 120 | 
| m5d.metal | 14 | 120 | 
| m6a.large | 2 | 10 | 
| m6a.xlarge | 3 | 20 | 
| m6a.2xlarge | 3 | 40 | 
| m6a.4xlarge | 7 | 60 | 
| m6a.8xlarge | 7 | 90 | 
| m6a.12xlarge | 7 | 120 | 
| m6a.16xlarge | 14 | 120 | 
| m6a.24xlarge | 14 | 120 | 
| m6a.32xlarge | 14 | 120 | 
| m6a.48xlarge | 14 | 120 | 
| m6a.metal | 14 | 120 | 
| m6g.medium | 1 | 4 | 
| m6g.large | 2 | 10 | 
| m6g.xlarge | 3 | 20 | 
| m6g.2xlarge | 3 | 40 | 
| m6g.4xlarge | 7 | 60 | 
| m6g.8xlarge | 7 | 60 | 
| m6g.12xlarge | 7 | 60 | 
| m6g.16xlarge | 14 | 120 | 
| m6g.metal | 14 | 120 | 
| m6gd.medium | 1 | 4 | 
| m6gd.large | 2 | 10 | 
| m6gd.xlarge | 3 | 20 | 
| m6gd.2xlarge | 3 | 40 | 
| m6gd.4xlarge | 7 | 60 | 
| m6gd.8xlarge | 7 | 60 | 
| m6gd.12xlarge | 7 | 60 | 
| m6gd.16xlarge | 14 | 120 | 
| m6gd.metal | 14 | 120 | 
| m6i.large | 2 | 10 | 
| m6i.xlarge | 3 | 20 | 
| m6i.2xlarge | 3 | 40 | 
| m6i.4xlarge | 7 | 60 | 
| m6i.8xlarge | 7 | 90 | 
| m6i.12xlarge | 7 | 120 | 
| m6i.16xlarge | 14 | 120 | 
| m6i.24xlarge | 14 | 120 | 
| m6i.32xlarge | 14 | 120 | 
| m6i.metal | 14 | 120 | 
| m6id.large | 2 | 10 | 
| m6id.xlarge | 3 | 20 | 
| m6id.2xlarge | 3 | 40 | 
| m6id.4xlarge | 7 | 60 | 
| m6id.8xlarge | 7 | 90 | 
| m6id.12xlarge | 7 | 120 | 
| m6id.16xlarge | 14 | 120 | 
| m6id.24xlarge | 14 | 120 | 
| m6id.32xlarge | 14 | 120 | 
| m6id.metal | 14 | 120 | 
| m6idn.large | 2 | 10 | 
| m6idn.xlarge | 3 | 20 | 
| m6idn.2xlarge | 3 | 40 | 
| m6idn.4xlarge | 7 | 60 | 
| m6idn.8xlarge | 7 | 90 | 
| m6idn.12xlarge | 7 | 120 | 
| m6idn.16xlarge | 14 | 120 | 
| m6idn.24xlarge | 14 | 120 | 
| m6idn.32xlarge | 15 | 120 | 
| m6idn.metal | 15 | 120 | 
| m6in.large | 2 | 10 | 
| m6in.xlarge | 3 | 20 | 
| m6in.2xlarge | 3 | 40 | 
| m6in.4xlarge | 7 | 60 | 
| m6in.8xlarge | 7 | 90 | 
| m6in.12xlarge | 7 | 120 | 
| m6in.16xlarge | 14 | 120 | 
| m6in.24xlarge | 14 | 120 | 
| m6in.32xlarge | 15 | 120 | 
| m6in.metal | 15 | 120 | 
| m7a.medium | 1 | 4 | 
| m7a.large | 2 | 10 | 
| m7a.xlarge | 3 | 20 | 
| m7a.2xlarge | 3 | 40 | 
| m7a.4xlarge | 7 | 60 | 
| m7a.8xlarge | 7 | 90 | 
| m7a.12xlarge | 7 | 120 | 
| m7a.16xlarge | 14 | 120 | 
| m7a.24xlarge | 14 | 120 | 
| m7a.32xlarge | 14 | 120 | 
| m7a.48xlarge | 14 | 120 | 
| m7a.metal-48xl | 14 | 120 | 
| m7g.medium | 1 | 4 | 
| m7g.large | 2 | 10 | 
| m7g.xlarge | 3 | 20 | 
| m7g.2xlarge | 3 | 40 | 
| m7g.4xlarge | 7 | 60 | 
| m7g.8xlarge | 7 | 60 | 
| m7g.12xlarge | 7 | 60 | 
| m7g.16xlarge | 14 | 120 | 
| m7g.metal | 14 | 120 | 
| m7gd.medium | 1 | 4 | 
| m7gd.large | 2 | 10 | 
| m7gd.xlarge | 3 | 20 | 
| m7gd.2xlarge | 3 | 40 | 
| m7gd.4xlarge | 7 | 60 | 
| m7gd.8xlarge | 7 | 60 | 
| m7gd.12xlarge | 7 | 60 | 
| m7gd.16xlarge | 14 | 120 | 
| m7gd.metal | 14 | 120 | 
| m7i.large | 2 | 10 | 
| m7i.xlarge | 3 | 20 | 
| m7i.2xlarge | 3 | 40 | 
| m7i.4xlarge | 7 | 60 | 
| m7i.8xlarge | 7 | 90 | 
| m7i.12xlarge | 7 | 120 | 
| m7i.16xlarge | 14 | 120 | 
| m7i.24xlarge | 14 | 120 | 
| m7i.48xlarge | 14 | 120 | 
| m7i.metal-24xl | 14 | 120 | 
| m7i.metal-48xl | 14 | 120 | 
| m7i-flex.large | 2 | 4 | 
| m7i-flex.xlarge | 3 | 10 | 
| m7i-flex.2xlarge | 3 | 20 | 
| m7i-flex.4xlarge | 7 | 40 | 
| m7i-flex.8xlarge | 7 | 60 | 
| m7i-flex.12xlarge | 7 | 120 | 
| m7i-flex.16xlarge | 14 | 120 | 
| m8a.medium | 1 | 4 | 
| m8a.large | 2 | 10 | 
| m8a.xlarge | 3 | 20 | 
| 8 m x 2 x large | 3 | 40 | 
| 8 x 4 x large | 7 | 60 | 
| 8 x 8 x large | 9 | 90 | 
| 8 m x 12 x large | 11 | 120 | 
| 8 m x 16 x large | 15 | 120 | 
| 8 m x 24 x large | 15 | 120 | 
| 8 m x 48 x large | 23 | 120 | 
| m8a.metal-24xl | 15 | 120 | 
| m8a.metal-48xl | 23 | 120 | 
| m8azn.medium | 2 | 4 | 
| m8azn.large | 3 | 10 | 
| m8azn.xlarge | 3 | 20 | 
| m8azn.3 x large | 7 | 40 | 
| m8azn. 6 x large | 7 | 60 | 
| m8azn. 12 x large | 15 | 120 | 
| m8azn. 24 x large | 15 | 120 | 
| m8azn.metal-12xl | 15 | 120 | 
| m8azn.metal-24xl | 15 | 120 | 
| m8g.medium | 1 | 4 | 
| m8g.large | 2 | 10 | 
| m8g.xlarge | 3 | 20 | 
| m8g.2xlarge | 3 | 40 | 
| m8g.4xlarge | 7 | 60 | 
| m8g.8xlarge | 7 | 60 | 
| m8g.12xlarge | 7 | 60 | 
| m8g.16xlarge | 14 | 120 | 
| m8g.24xlarge | 14 | 120 | 
| m8g.48xlarge | 14 | 120 | 
| m8g.metal-24xl | 14 | 120 | 
| m8g.metal-48xl | 14 | 120 | 
| 8 Go, taille moyenne | 1 | 4 | 
| 8 Go de large | 2 | 10 | 
| m8gb.xlarge | 3 | 20 | 
| 8 Go, 2 x large | 3 | 40 | 
| 8 Go, 4 x large | 7 | 60 | 
| 8 Go, 8 x large | 9 | 60 | 
| 8 Go, 12 x large | 11 | 60 | 
| 8 Go, 16 x large | 15 | 120 | 
| 8 Go, 24 x large | 23 | 120 | 
| 8 Go, 48 x large | 23 | 120 | 
| m8gb.metal-24xl | 23 | 120 | 
| m8gb.metal-48xl | 23 | 120 | 
| m8gd.medium | 1 | 4 | 
| m8gd.large | 2 | 10 | 
| m8gd.xlarge | 3 | 20 | 
| m8gd.2xlarge | 3 | 40 | 
| m8gd.4xlarge | 7 | 60 | 
| m8gd.8xlarge | 7 | 60 | 
| m8gd.12xlarge | 7 | 60 | 
| m8gd.16xlarge | 14 | 120 | 
| m8gd.24xlarge | 14 | 120 | 
| m8gd.48xlarge | 14 | 120 | 
| m8gd.metal-24xl | 14 | 120 | 
| m8gd.metal-48xl | 14 | 120 | 
| m8gn.medium | 1 | 4 | 
| 8 mm de large | 2 | 10 | 
| m8gn.xlarge | 3 | 20 | 
| 8 mm, 2 x large | 3 | 40 | 
| 8 mm x 4 x large | 7 | 60 | 
| 8 mm x 8 x large | 9 | 60 | 
| 8 mm x 12 x large | 11 | 60 | 
| 8 mm x 16 x large | 15 | 120 | 
| 8 mm, 24 x large | 23 | 120 | 
| 8 mm x 48 x large | 23 | 120 | 
| m8gn.metal-24xl | 23 | 120 | 
| m8gn.metal-48xl | 23 | 120 | 
| m8i.large | 2 | 10 | 
| m8i.xlarge | 3 | 20 | 
| m8i.2xlarge | 3 | 40 | 
| m8i.4xlarge | 7 | 60 | 
| m8i.8xlarge | 9 | 90 | 
| m8i.12xlarge | 11 | 120 | 
| m8i.16xlarge | 15 | 120 | 
| m8i.24xlarge | 15 | 120 | 
| m8i.32xlarge | 23 | 120 | 
| m8i.48xlarge | 23 | 120 | 
| m8i.96xlarge | 23 | 120 | 
| m8i.metal-48xl | 23 | 120 | 
| m8i.metal-96xl | 23 | 120 | 
| m8id.large | 2 | 10 | 
| m8id.xlarge | 3 | 20 | 
| 8 m de diamètre x 2 x large | 3 | 40 | 
| 8 m x 4 x large | 7 | 60 | 
| 8 m de diamètre x 8 x large | 9 | 90 | 
| m 8 id. 12 x large | 11 | 120 | 
| m 8 x 16 x large | 15 | 120 | 
| m 8 id. 24 x large | 15 | 120 | 
| m 8 id.32 x large | 23 | 120 | 
| m 8 id.48 x large | 23 | 120 | 
| M8 id.96 x large | 23 | 120 | 
| m8id.metal-48xl | 23 | 120 | 
| m8id.metal-96xl | 23 | 120 | 
| m8i-flex.large | 2 | 4 | 
| m8i-flex.xlarge | 3 | 10 | 
| m8i-flex.2xlarge | 3 | 20 | 
| m8i-flex.4xlarge | 7 | 40 | 
| m8i-flex.8xlarge | 9 | 60 | 
| m8i-flex.12xlarge | 11 | 120 | 
| m8i-flex.16xlarge | 15 | 120 | 
| mac2.metal | 7 | 12 | 
| mac2-m1ultra.metal | 7 | 12 | 
| mac2-m2.metal | 7 | 12 | 
| mac2-m2pro.metal | 7 | 12 | 
| mac-m4.metal | 7 | 12 | 
| mac-m4pro.metal | 7 | 12 | 
| mac-m4max. metal | 7 | 12 | 

## Calcul optimisé
<a name="eni-branch-co"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| c5.large | 2 | 10 | 
| c5.xlarge | 3 | 20 | 
| c5.2xlarge | 3 | 40 | 
| c5.4xlarge | 7 | 60 | 
| c5.9xlarge | 7 | 60 | 
| c5.12xlarge | 7 | 60 | 
| c5.18xlarge | 14 | 120 | 
| c5.24xlarge | 14 | 120 | 
| c5a.large | 2 | 10 | 
| c5a.xlarge | 3 | 20 | 
| c5a.2xlarge | 3 | 40 | 
| c5a.4xlarge | 7 | 60 | 
| c5a.12xlarge | 7 | 60 | 
| c5a.16xlarge | 14 | 120 | 
| c5a.24xlarge | 14 | 120 | 
| c5ad.large | 2 | 10 | 
| c5ad.xlarge | 3 | 20 | 
| c5ad.2xlarge | 3 | 40 | 
| c5ad.4xlarge | 7 | 60 | 
| c5ad.12xlarge | 7 | 60 | 
| c5ad.16xlarge | 14 | 120 | 
| c5ad.24xlarge | 14 | 120 | 
| c5d.large | 2 | 10 | 
| c5d.xlarge | 3 | 20 | 
| c5d.2xlarge | 3 | 40 | 
| c5d.4xlarge | 7 | 60 | 
| c5d.9xlarge | 7 | 60 | 
| c5d.12xlarge | 7 | 60 | 
| c5d.18xlarge | 14 | 120 | 
| c5d.24xlarge | 14 | 120 | 
| c6a.large | 2 | 10 | 
| c6a.xlarge | 3 | 20 | 
| c6a.2xlarge | 3 | 40 | 
| c6a.4xlarge | 7 | 60 | 
| c6a.8xlarge | 7 | 90 | 
| c6a.12xlarge | 7 | 120 | 
| c6a.16xlarge | 14 | 120 | 
| c6a.24xlarge | 14 | 120 | 
| c6a.32xlarge | 14 | 120 | 
| c6a.48xlarge | 14 | 120 | 
| c6a.metal | 14 | 120 | 
| c6g.medium | 1 | 4 | 
| c6g.large | 2 | 10 | 
| c6g.xlarge | 3 | 20 | 
| c6g.2xlarge | 3 | 40 | 
| c6g.4xlarge | 7 | 60 | 
| c6g.8xlarge | 7 | 60 | 
| c6g.12xlarge | 7 | 60 | 
| c6g.16xlarge | 14 | 120 | 
| c6g.metal | 14 | 120 | 
| c6gd.medium | 1 | 4 | 
| c6gd.large | 2 | 10 | 
| c6gd.xlarge | 3 | 20 | 
| c6gd.2xlarge | 3 | 40 | 
| c6gd.4xlarge | 7 | 60 | 
| c6gd.8xlarge | 7 | 60 | 
| c6gd.12xlarge | 7 | 60 | 
| c6gd.16xlarge | 14 | 120 | 
| c6gd.metal | 14 | 120 | 
| c6gn.medium | 1 | 4 | 
| c6gn.large | 2 | 10 | 
| c6gn.xlarge | 3 | 20 | 
| c6gn.2xlarge | 3 | 40 | 
| c6gn.4xlarge | 7 | 60 | 
| c6gn.8xlarge | 7 | 60 | 
| c6gn.12xlarge | 7 | 60 | 
| c6gn.16xlarge | 14 | 120 | 
| c6i.large | 2 | 10 | 
| c6i.xlarge | 3 | 20 | 
| c6i.2xlarge | 3 | 40 | 
| c6i.4xlarge | 7 | 60 | 
| c6i.8xlarge | 7 | 90 | 
| c6i.12xlarge | 7 | 120 | 
| c6i.16xlarge | 14 | 120 | 
| c6i.24xlarge | 14 | 120 | 
| c6i.32xlarge | 14 | 120 | 
| c6i.metal | 14 | 120 | 
| c6id.large | 2 | 10 | 
| c6id.xlarge | 3 | 20 | 
| c6id.2xlarge | 3 | 40 | 
| c6id.4xlarge | 7 | 60 | 
| c6id.8xlarge | 7 | 90 | 
| c6id.12xlarge | 7 | 120 | 
| c6id.16xlarge | 14 | 120 | 
| c6id.24xlarge | 14 | 120 | 
| c6id.32xlarge | 14 | 120 | 
| c6id.metal | 14 | 120 | 
| c6in.large | 2 | 10 | 
| c6in.xlarge | 3 | 20 | 
| c6in.2xlarge | 3 | 40 | 
| c6in.4xlarge | 7 | 60 | 
| c6in.8xlarge | 7 | 90 | 
| c6in.12xlarge | 7 | 120 | 
| c6in.16xlarge | 14 | 120 | 
| c6in.24xlarge | 14 | 120 | 
| c6in.32xlarge | 15 | 120 | 
| c6in.metal | 15 | 120 | 
| c7a.medium | 1 | 4 | 
| c7a.large | 2 | 10 | 
| c7a.xlarge | 3 | 20 | 
| c7a.2xlarge | 3 | 40 | 
| c7a.4xlarge | 7 | 60 | 
| c7a.8xlarge | 7 | 90 | 
| c7a.12xlarge | 7 | 120 | 
| c7a.16xlarge | 14 | 120 | 
| c7a.24xlarge | 14 | 120 | 
| c7a.32xlarge | 14 | 120 | 
| c7a.48xlarge | 14 | 120 | 
| c7a.metal-48xl | 14 | 120 | 
| c7g.medium | 1 | 4 | 
| c7g.large | 2 | 10 | 
| c7g.xlarge | 3 | 20 | 
| c7g.2xlarge | 3 | 40 | 
| c7g.4xlarge | 7 | 60 | 
| c7g.8xlarge | 7 | 60 | 
| c7g.12xlarge | 7 | 60 | 
| c7g.16xlarge | 14 | 120 | 
| c7g.metal | 14 | 120 | 
| c7gd.medium | 1 | 4 | 
| c7gd.large | 2 | 10 | 
| c7gd.xlarge | 3 | 20 | 
| c7gd.2xlarge | 3 | 40 | 
| c7gd.4xlarge | 7 | 60 | 
| c7gd.8xlarge | 7 | 60 | 
| c7gd.12xlarge | 7 | 60 | 
| c7gd.16xlarge | 14 | 120 | 
| c7gd.metal | 14 | 120 | 
| c7gn.medium | 1 | 4 | 
| c7gn.large | 2 | 10 | 
| c7gn.xlarge | 3 | 20 | 
| c7gn.2xlarge | 3 | 40 | 
| c7gn.4xlarge | 7 | 60 | 
| c7gn.8xlarge | 7 | 60 | 
| c7gn.12xlarge | 7 | 60 | 
| c7gn.16xlarge | 14 | 120 | 
| c7gn.metal | 14 | 120 | 
| c7i.large | 2 | 10 | 
| c7i.xlarge | 3 | 20 | 
| c7i.2xlarge | 3 | 40 | 
| c7i.4xlarge | 7 | 60 | 
| c7i.8xlarge | 7 | 90 | 
| c7i.12xlarge | 7 | 120 | 
| c7i.16xlarge | 14 | 120 | 
| c7i.24xlarge | 14 | 120 | 
| c7i.48xlarge | 14 | 120 | 
| c7i.metal-24xl | 14 | 120 | 
| c7i.metal-48xl | 14 | 120 | 
| c7i-flex.large | 2 | 4 | 
| c7i-flex.xlarge | 3 | 10 | 
| c7i-flex.2xlarge | 3 | 20 | 
| c7i-flex.4xlarge | 7 | 40 | 
| c7i-flex.8xlarge | 7 | 60 | 
| c7i-flex.12xlarge | 7 | 120 | 
| c7i-flex.16xlarge | 14 | 120 | 
| c8a.medium | 1 | 4 | 
| c8a.large | 2 | 10 | 
| c8a.xlarge | 3 | 20 | 
| c8a.2xlarge | 3 | 40 | 
| c8a.4xlarge | 7 | 60 | 
| 8 x 8 x large | 9 | 90 | 
| environ 8 x 12 x large | 11 | 120 | 
| environ 8 x 16 x large | 15 | 120 | 
| environ 8 x 24 x large | 15 | 120 | 
| environ 8 x 48 x large | 23 | 120 | 
| c8a.metal-24xl | 15 | 120 | 
| c8a.metal-48xl | 23 | 120 | 
| c8g.medium | 1 | 4 | 
| c8g.large | 2 | 10 | 
| c8g.xlarge | 3 | 20 | 
| c8g.2xlarge | 3 | 40 | 
| c8g.4xlarge | 7 | 60 | 
| c8g.8xlarge | 7 | 60 | 
| c8g.12xlarge | 7 | 60 | 
| c8g.16xlarge | 14 | 120 | 
| c8g.24xlarge | 14 | 120 | 
| c8g.48xlarge | 14 | 120 | 
| c8g.metal-24xl | 14 | 120 | 
| c8g.metal-48xl | 14 | 120 | 
| c8gb.medium | 1 | 4 | 
| 8 Go de large | 2 | 10 | 
| c8gb.xlarge | 3 | 20 | 
| 8 Go, 2 x large | 3 | 40 | 
| 8 Go, 4 x large | 7 | 60 | 
| 8 Go, 8 x large | 9 | 60 | 
| 8 Go, 12 x large | 11 | 60 | 
| 8 Go, 16 x large | 15 | 120 | 
| 8 Go, 24 x large | 23 | 120 | 
| 8 Go, 48 x large | 23 | 120 | 
| c8gb.metal-24xl | 23 | 120 | 
| c8gb.metal-48xl | 23 | 120 | 
| c8gd.medium | 1 | 4 | 
| c8gd.large | 2 | 10 | 
| c8gd.xlarge | 3 | 20 | 
| c8gd.2xlarge | 3 | 40 | 
| c8gd.4xlarge | 7 | 60 | 
| c8gd.8xlarge | 7 | 60 | 
| c8gd.12xlarge | 7 | 60 | 
| c8gd.16xlarge | 14 | 120 | 
| c8gd.24xlarge | 14 | 120 | 
| c8gd.48xlarge | 14 | 120 | 
| c8gd.metal-24xl | 14 | 120 | 
| c8gd.metal-48xl | 14 | 120 | 
| c8gn.medium | 1 | 4 | 
| c8gn.large | 2 | 10 | 
| c8gn.xlarge | 3 | 20 | 
| c8gn.2xlarge | 3 | 40 | 
| c8gn.4xlarge | 7 | 60 | 
| c8gn.8xlarge | 9 | 60 | 
| c8gn.12xlarge | 11 | 60 | 
| c8gn.16xlarge | 15 | 120 | 
| c8gn.24xlarge | 23 | 120 | 
| c8gn.48xlarge | 23 | 120 | 
| c8gn.metal-24xl | 23 | 120 | 
| c8gn.metal-48xl | 23 | 120 | 
| c8i.large | 2 | 10 | 
| c8i.xlarge | 3 | 20 | 
| c8i, 2 x large | 3 | 40 | 
| c8i.4xlarge | 7 | 60 | 
| 8 x 8 x large | 9 | 90 | 
| 8 x 12 x large | 11 | 120 | 
| 8 x 16 x large | 15 | 120 | 
| c8i 24xlarge | 15 | 120 | 
| c8i 32xlarge | 23 | 120 | 
| 8 x 48 x large | 23 | 120 | 
| c8i.96xlarge | 23 | 120 | 
| c8i.metal-48xl | 23 | 120 | 
| c8i.metal-96xl | 23 | 120 | 
| c8id.large | 2 | 10 | 
| c8id.xlarge | 3 | 20 | 
| c8id.2xlarge | 3 | 40 | 
| c8id.4xlarge | 7 | 60 | 
| 8 cm de diamètre x 8 x large | 9 | 90 | 
| C8 id.12 x large | 11 | 120 | 
| C8 id.16 x large | 15 | 120 | 
| C8 id.24 x large | 15 | 120 | 
| C8 id.32 x large | 23 | 120 | 
| C8 id.48 x large | 23 | 120 | 
| C8 id.96 x large | 23 | 120 | 
| c8id.metal-48xl | 23 | 120 | 
| c8id.metal-96xl | 23 | 120 | 
| c8i-flex.large | 2 | 4 | 
| c8i-flex.xlarge | 3 | 10 | 
| c8i-flex.2xlarge | 3 | 20 | 
| c8i-flex.4xlarge | 7 | 40 | 
| c8i-flex.8xlarge | 9 | 60 | 
| c8i-flex.12xlarge | 11 | 120 | 
| c8i-flex.16xlarge | 15 | 120 | 

## Mémoire optimisée
<a name="eni-branch-mo"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| r5.large | 2 | 10 | 
| r5.xlarge | 3 | 20 | 
| r5.2xlarge | 3 | 40 | 
| r5.4xlarge | 7 | 60 | 
| r5.12xlarge | 7 | 60 | 
| r5.16xlarge | 14 | 120 | 
| r5.24xlarge | 14 | 120 | 
| r5a.large | 2 | 10 | 
| r5a.xlarge | 3 | 20 | 
| r5a.2xlarge | 3 | 40 | 
| r5a.4xlarge | 7 | 60 | 
| r5a.8xlarge | 7 | 60 | 
| r5a.12xlarge | 7 | 60 | 
| r5a.16xlarge | 14 | 120 | 
| r5a.24xlarge | 14 | 120 | 
| r5ad.large | 2 | 10 | 
| r5ad.xlarge | 3 | 20 | 
| r5ad.2xlarge | 3 | 40 | 
| r5ad.4xlarge | 7 | 60 | 
| r5ad.8xlarge | 7 | 60 | 
| r5ad.12xlarge | 7 | 60 | 
| r5ad.16xlarge | 14 | 120 | 
| r5ad.24xlarge | 14 | 120 | 
| r5b.16xlarge | 14 | 120 | 
| r5d.large | 2 | 10 | 
| r5d.xlarge | 3 | 20 | 
| r5d.2xlarge | 3 | 40 | 
| r5d.4xlarge | 7 | 60 | 
| r5d.8xlarge | 7 | 60 | 
| r5d.12xlarge | 7 | 60 | 
| r5d.16xlarge | 14 | 120 | 
| r5d.24xlarge | 14 | 120 | 
| r5dn.16xlarge | 14 | 120 | 
| r6a.large | 2 | 10 | 
| r6a.xlarge | 3 | 20 | 
| r6a.2xlarge | 3 | 40 | 
| r6a.4xlarge | 7 | 60 | 
| r6a.8xlarge | 7 | 90 | 
| r6a.12xlarge | 7 | 120 | 
| r6a.16xlarge | 14 | 120 | 
| r6a.24xlarge | 14 | 120 | 
| r6a.32xlarge | 14 | 120 | 
| r6a.48xlarge | 14 | 120 | 
| r6a.metal | 14 | 120 | 
| r6g.medium | 1 | 4 | 
| r6g.large | 2 | 10 | 
| r6g.xlarge | 3 | 20 | 
| r6g.2xlarge | 3 | 40 | 
| r6g.4xlarge | 7 | 60 | 
| r6g.8xlarge | 7 | 60 | 
| r6g.12xlarge | 7 | 60 | 
| r6g.16xlarge | 14 | 120 | 
| r6g.metal | 14 | 120 | 
| r6gd.medium | 1 | 4 | 
| r6gd.large | 2 | 10 | 
| r6gd.xlarge | 3 | 20 | 
| r6gd.2xlarge | 3 | 40 | 
| r6gd.4xlarge | 7 | 60 | 
| r6gd.8xlarge | 7 | 60 | 
| r6gd.12xlarge | 7 | 60 | 
| r6gd.16xlarge | 14 | 120 | 
| r6gd.metal | 14 | 120 | 
| r6i.large | 2 | 10 | 
| r6i.xlarge | 3 | 20 | 
| r6i.2xlarge | 3 | 40 | 
| r6i.4xlarge | 7 | 60 | 
| r6i.8xlarge | 7 | 90 | 
| r6i.12xlarge | 7 | 120 | 
| r6i.16xlarge | 14 | 120 | 
| r6i.24xlarge | 14 | 120 | 
| r6i.32xlarge | 14 | 120 | 
| r6i.metal | 14 | 120 | 
| r6id.large | 2 | 10 | 
| r6id.xlarge | 3 | 20 | 
| r6id.2xlarge | 3 | 40 | 
| r6id.4xlarge | 7 | 60 | 
| r6id.8xlarge | 7 | 90 | 
| r6id.12xlarge | 7 | 120 | 
| r6id.16xlarge | 14 | 120 | 
| r6id.24xlarge | 14 | 120 | 
| r6id.32xlarge | 14 | 120 | 
| r6id.metal | 14 | 120 | 
| r6idn.large | 2 | 10 | 
| r6idn.xlarge | 3 | 20 | 
| r6idn.2xlarge | 3 | 40 | 
| r6idn.4xlarge | 7 | 60 | 
| r6idn.8xlarge | 7 | 90 | 
| r6idn.12xlarge | 7 | 120 | 
| r6idn.16xlarge | 14 | 120 | 
| r6idn.24xlarge | 14 | 120 | 
| r6idn.32xlarge | 15 | 120 | 
| r6idn.metal | 15 | 120 | 
| r6in.large | 2 | 10 | 
| r6in.xlarge | 3 | 20 | 
| r6in.2xlarge | 3 | 40 | 
| r6in.4xlarge | 7 | 60 | 
| r6in.8xlarge | 7 | 90 | 
| r6in.12xlarge | 7 | 120 | 
| r6in.16xlarge | 14 | 120 | 
| r6in.24xlarge | 14 | 120 | 
| r6in.32xlarge | 15 | 120 | 
| r6in.metal | 15 | 120 | 
| r7a.medium | 1 | 4 | 
| r7a.large | 2 | 10 | 
| r7a.xlarge | 3 | 20 | 
| r7a.2xlarge | 3 | 40 | 
| r7a.4xlarge | 7 | 60 | 
| r7a.8xlarge | 7 | 90 | 
| r7a.12xlarge | 7 | 120 | 
| r7a.16xlarge | 14 | 120 | 
| r7a.24xlarge | 14 | 120 | 
| r7a.32xlarge | 14 | 120 | 
| r7a.48xlarge | 14 | 120 | 
| r7a.metal-48xl | 14 | 120 | 
| r7g.medium | 1 | 4 | 
| r7g.large | 2 | 10 | 
| r7g.xlarge | 3 | 20 | 
| r7g.2xlarge | 3 | 40 | 
| r7g.4xlarge | 7 | 60 | 
| r7g.8xlarge | 7 | 60 | 
| r7g.12xlarge | 7 | 60 | 
| r7g.16xlarge | 14 | 120 | 
| r7g.metal | 14 | 120 | 
| r7gd.medium | 1 | 4 | 
| r7gd.large | 2 | 10 | 
| r7gd.xlarge | 3 | 20 | 
| r7gd.2xlarge | 3 | 40 | 
| r7gd.4xlarge | 7 | 60 | 
| r7gd.8xlarge | 7 | 60 | 
| r7gd.12xlarge | 7 | 60 | 
| r7gd.16xlarge | 14 | 120 | 
| r7gd.metal | 14 | 120 | 
| r7i.large | 2 | 10 | 
| r7i.xlarge | 3 | 20 | 
| r7i.2xlarge | 3 | 40 | 
| r7i.4xlarge | 7 | 60 | 
| r7i.8xlarge | 7 | 90 | 
| r7i.12xlarge | 7 | 120 | 
| r7i.16xlarge | 14 | 120 | 
| r7i.24xlarge | 14 | 120 | 
| r7i.48xlarge | 14 | 120 | 
| r7i.metal-24xl | 14 | 120 | 
| r7i.metal-48xl | 14 | 120 | 
| r7iz.large | 2 | 10 | 
| r7iz.xlarge | 3 | 20 | 
| r7iz.2xlarge | 3 | 40 | 
| r7iz.4xlarge | 7 | 60 | 
| r7iz.8xlarge | 7 | 90 | 
| r7iz.12xlarge | 7 | 120 | 
| r7iz.16xlarge | 14 | 120 | 
| r7iz.32xlarge | 14 | 120 | 
| r7iz.metal-16xl | 14 | 120 | 
| r7iz.metal-32xl | 14 | 120 | 
| r8a.medium | 1 | 4 | 
| r8a.large | 2 | 10 | 
| r8a.xlarge | 3 | 20 | 
| r8a.2xlarge | 3 | 40 | 
| r8a.4xlarge | 7 | 60 | 
| 8 x 8 x large | 9 | 90 | 
| r8a. 12 x large | 11 | 120 | 
| r8a.16xlarge | 15 | 120 | 
| r8a.24xlarge | 15 | 120 | 
| r8a. 48 x large | 23 | 120 | 
| r8a.metal-24xl | 15 | 120 | 
| r8a.metal-48xl | 23 | 120 | 
| r8g.medium | 1 | 4 | 
| r8g.large | 2 | 10 | 
| r8g.xlarge | 3 | 20 | 
| r8g.2xlarge | 3 | 40 | 
| r8g.4xlarge | 7 | 60 | 
| r8g.8xlarge | 7 | 60 | 
| r8g.12xlarge | 7 | 60 | 
| r8g.16xlarge | 14 | 120 | 
| r8g.24xlarge | 14 | 120 | 
| r8g.48xlarge | 14 | 120 | 
| r8g.metal-24xl | 14 | 120 | 
| r8g.metal-48xl | 14 | 120 | 
| r8gb.medium | 1 | 4 | 
| r8gb.large | 2 | 10 | 
| r8gb.xlarge | 3 | 20 | 
| r8gb.2xlarge | 3 | 40 | 
| r8gb.4xlarge | 7 | 60 | 
| r8gb.8xlarge | 9 | 60 | 
| r8gb.12xlarge | 11 | 60 | 
| r8gb.16xlarge | 15 | 120 | 
| r8gb.24xlarge | 23 | 120 | 
| 8 Go, 48 x large | 23 | 120 | 
| r8gb.metal-24xl | 23 | 120 | 
| r8gb.metal-48xl | 23 | 120 | 
| r8gd.medium | 1 | 4 | 
| r8gd.large | 2 | 10 | 
| r8gd.xlarge | 3 | 20 | 
| r8gd.2xlarge | 3 | 40 | 
| r8gd.4xlarge | 7 | 60 | 
| r8gd.8xlarge | 7 | 60 | 
| r8gd.12xlarge | 7 | 60 | 
| r8gd.16xlarge | 14 | 120 | 
| r8gd.24xlarge | 14 | 120 | 
| r8gd.48xlarge | 14 | 120 | 
| r8gd.metal-24xl | 14 | 120 | 
| r8gd.metal-48xl | 14 | 120 | 
| r8gn.medium | 1 | 4 | 
| r8gn.large | 2 | 10 | 
| r8gn.xlarge | 3 | 20 | 
| r8gn.2xlarge | 3 | 40 | 
| r8gn.4xlarge | 7 | 60 | 
| r8gn.8xlarge | 9 | 60 | 
| r8gn.12xlarge | 11 | 60 | 
| r8gn.16xlarge | 15 | 120 | 
| r8gn.24xlarge | 23 | 120 | 
| r8gn.48xlarge | 23 | 120 | 
| r8gn.metal-24xl | 23 | 120 | 
| r8gn.metal-48xl | 23 | 120 | 
| r8i.large | 2 | 10 | 
| r8i.xlarge | 3 | 20 | 
| r8i.2xlarge | 3 | 40 | 
| r8i.4xlarge | 7 | 60 | 
| r8i.8xlarge | 9 | 90 | 
| r8i.12xlarge | 11 | 120 | 
| r8i.16xlarge | 15 | 120 | 
| r8i.24xlarge | 15 | 120 | 
| r8i.32xlarge | 23 | 120 | 
| r8i.48xlarge | 23 | 120 | 
| r8i.96xlarge | 23 | 120 | 
| r8i.metal-48xl | 23 | 120 | 
| r8i.metal-96xl | 23 | 120 | 
| r8id.large | 2 | 10 | 
| r8id.xlarge | 3 | 20 | 
| r8id.2xlarge | 3 | 40 | 
| r8id.4xlarge | 7 | 60 | 
| 8 x id.8 x large | 9 | 90 | 
| R8id.12xlarge | 11 | 120 | 
| R8 id.16 x large | 15 | 120 | 
| R8id.24xlarge | 15 | 120 | 
| R8id.32xlarge | 23 | 120 | 
| R8id.48xlarge | 23 | 120 | 
| 8 id.96 x large | 23 | 120 | 
| r8id.metal-48xl | 23 | 120 | 
| r8id.metal-96xl | 23 | 120 | 
| r8i-flex.large | 2 | 4 | 
| r8i-flex.xlarge | 3 | 10 | 
| r8i-flex.2xlarge | 3 | 20 | 
| r8i-flex.4xlarge | 7 | 40 | 
| r8i-flex.8xlarge | 9 | 60 | 
| r8i-flex.12xlarge | 11 | 120 | 
| r8i-flex.16xlarge | 15 | 120 | 
| u-3tb1.56xlarge | 7 | 12 | 
| u-6tb1.56xlarge | 14 | 12 | 
| u-18tb1.112xlarge | 14 | 12 | 
| u-18tb1.metal | 14 | 12 | 
| u-24tb1.112xlarge | 14 | 12 | 
| u-24tb1.metal | 14 | 12 | 
| u7i-6tb.112xlarge | 14 | 120 | 
| u7i-8tb.112xlarge | 14 | 120 | 
| u7i-12tb.224xlarge | 14 | 120 | 
| u7in-16tb.224xlarge | 15 | 120 | 
| u7in-24tb.224xlarge | 15 | 120 | 
| u7in-32tb.224xlarge | 15 | 120 | 
| u7inh-32tb.480xlarge | 15 | 120 | 
| x2gd.medium | 1 | 10 | 
| x2gd.large | 2 | 10 | 
| x2gd.xlarge | 3 | 20 | 
| x2gd.2xlarge | 3 | 40 | 
| x2gd.4xlarge | 7 | 60 | 
| x2gd.8xlarge | 7 | 60 | 
| x2gd.12xlarge | 7 | 60 | 
| x2gd.16xlarge | 14 | 120 | 
| x2gd.metal | 14 | 120 | 
| x2idn.16xlarge | 14 | 120 | 
| x2idn.24xlarge | 14 | 120 | 
| x2idn.32xlarge | 14 | 120 | 
| x2idn.metal | 14 | 120 | 
| x2iedn.xlarge | 3 | 13 | 
| x2iedn.2xlarge | 3 | 29 | 
| x2iedn.4xlarge | 7 | 60 | 
| x2iedn.8xlarge | 7 | 120 | 
| x2iedn.16xlarge | 14 | 120 | 
| x2iedn.24xlarge | 14 | 120 | 
| x2iedn.32xlarge | 14 | 120 | 
| x2iedn.metal | 14 | 120 | 
| x2iezn.2xlarge | 3 | 64 | 
| x2iezn.4xlarge | 7 | 120 | 
| x2iezn.6xlarge | 7 | 120 | 
| x2iezn.8xlarge | 7 | 120 | 
| x2iezn.12xlarge | 14 | 120 | 
| x2iezn.metal | 14 | 120 | 
| x8g.medium | 1 | 4 | 
| x8g.large | 2 | 10 | 
| x8g.xlarge | 3 | 20 | 
| x8g.2xlarge | 3 | 40 | 
| x8g.4xlarge | 7 | 60 | 
| x8g.8xlarge | 7 | 60 | 
| x8g.12xlarge | 7 | 60 | 
| x8g.16xlarge | 14 | 120 | 
| x8g.24xlarge | 14 | 120 | 
| x8g.48xlarge | 14 | 120 | 
| x8g.metal-24xl | 14 | 120 | 
| x8g.metal-48xl | 14 | 120 | 
| x8aedz.large | 3 | 10 | 
| x8aedz.xlarge | 3 | 20 | 
| x 8 aedz. 3 x large | 7 | 40 | 
| x 8 aedz. 6 x large | 7 | 60 | 
| x 8 aedz. 12 x large | 15 | 120 | 
| x 8 aedz. 24 x large | 15 | 120 | 
| x8aedz.metal-12xl | 15 | 120 | 
| x8aedz.metal-24xl | 15 | 120 | 
| x8 i. large | 2 | 10 | 
| x8i.xlarge | 3 | 20 | 
| x 8 x 2 x large | 3 | 40 | 
| x 8 x 4 x large | 7 | 60 | 
| 8 x 1 x 8 x large | 9 | 90 | 
| 8 x 1 x 12 x large | 11 | 120 | 
| 8 x 1 x 16 x large | 15 | 120 | 
| 8 x 1 x 24 x large | 15 | 120 | 
| x 8 x 32 x large | 23 | 120 | 
| 8 x 48 x large | 23 | 120 | 
| x 8 x 64 x large | 23 | 120 | 
| x 8 x 96 x large | 23 | 120 | 
| x8i.metal-48xl | 23 | 120 | 
| x8i.metal-96xl | 23 | 120 | 

## Stockage optimisé
<a name="eni-branch-so"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| i4g.large | 2 | 10 | 
| i4g.xlarge | 3 | 20 | 
| i4g.2xlarge | 3 | 40 | 
| i4g.4xlarge | 7 | 60 | 
| i4g.8xlarge | 7 | 60 | 
| i4g.16xlarge | 14 | 120 | 
| i4i.xlarge | 3 | 8 | 
| i4i.2xlarge | 3 | 28 | 
| i4i.4xlarge | 7 | 58 | 
| i4i.8xlarge | 7 | 118 | 
| i4i.12xlarge | 7 | 118 | 
| i4i.16xlarge | 14 | 248 | 
| i4i.24xlarge | 14 | 118 | 
| i4i.32xlarge | 14 | 498 | 
| i4i.metal | 14 | 498 | 
| i7i.large | 2 | 10 | 
| i7i.xlarge | 3 | 20 | 
| i7i.2xlarge | 3 | 40 | 
| i7i.4xlarge | 7 | 60 | 
| i7i.8xlarge | 7 | 90 | 
| i7i.12xlarge | 7 | 90 | 
| i7i.16xlarge | 14 | 120 | 
| i7i.24xlarge | 14 | 120 | 
| i7i.48xlarge | 14 | 120 | 
| i7i.metal-24xl | 14 | 120 | 
| i7i.metal-48xl | 14 | 120 | 
| i7ie.large | 2 | 20 | 
| i7ie.xlarge | 3 | 29 | 
| i7ie.2xlarge | 3 | 29 | 
| i7ie.3xlarge | 3 | 29 | 
| i7ie.6xlarge | 7 | 60 | 
| i7ie.12xlarge | 7 | 60 | 
| i7ie.18xlarge | 14 | 120 | 
| i7ie.24xlarge | 14 | 120 | 
| i7ie.48xlarge | 14 | 120 | 
| i7ie.metal-24xl | 14 | 120 | 
| i7ie.metal-48xl | 14 | 120 | 
| i8g.large | 2 | 10 | 
| i8g.xlarge | 3 | 20 | 
| i8g.2xlarge | 3 | 40 | 
| i8g.4xlarge | 7 | 60 | 
| i8g.8xlarge | 7 | 60 | 
| i8g.12xlarge | 7 | 60 | 
| i8g.16xlarge | 14 | 120 | 
| i8g.24xlarge | 14 | 120 | 
| i8g.48xlarge | 14 | 120 | 
| i8g.metal-24xl | 14 | 120 | 
| i8g.metal-48xl | 14 | 120 | 
| i8ge.large | 2 | 20 | 
| i8ge.xlarge | 3 | 29 | 
| i8ge.2xlarge | 3 | 29 | 
| i8ge.3xlarge | 5 | 29 | 
| i8ge.6xlarge | 9 | 60 | 
| i8ge.12xlarge | 11 | 60 | 
| i8ge.18xlarge | 15 | 120 | 
| i8ge.24xlarge | 15 | 120 | 
| i8ge.48xlarge | 23 | 120 | 
| i8ge.metal-24xl | 15 | 120 | 
| i8ge.metal-48xl | 23 | 120 | 
| im4gn.large | 2 | 10 | 
| im4gn.xlarge | 3 | 20 | 
| im4gn.2xlarge | 3 | 40 | 
| im4gn.4xlarge | 7 | 60 | 
| im4gn.8xlarge | 7 | 60 | 
| im4gn.16xlarge | 14 | 120 | 
| is4gen.medium | 1 | 4 | 
| is4gen.large | 2 | 10 | 
| is4gen.xlarge | 3 | 20 | 
| is4gen.2xlarge | 3 | 40 | 
| is4gen.4xlarge | 7 | 60 | 
| is4gen.8xlarge | 7 | 60 | 

## Calcul accéléré
<a name="eni-branch-ac"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| dl1.24xlarge | 59 | 120 | 
| dl2q.24xlarge | 14 | 120 | 
| f2.6xlarge | 7 | 90 | 
| f2.12xlarge | 7 | 120 | 
| f2.48xlarge | 14 | 120 | 
| g4ad.xlarge | 1 | 12 | 
| g4ad.2xlarge | 1 | 12 | 
| g4ad.4xlarge | 2 | 12 | 
| g4ad.8xlarge | 3 | 12 | 
| g4ad.16xlarge | 7 | 12 | 
| g5.xlarge | 3 | 6 | 
| g5.2xlarge | 3 | 19 | 
| g5.4xlarge | 7 | 40 | 
| g5.8xlarge | 7 | 90 | 
| g5.12xlarge | 14 | 120 | 
| g5.16xlarge | 7 | 120 | 
| g5.24xlarge | 14 | 120 | 
| g5.48xlarge | 6 | 120 | 
| g5g.xlarge | 3 | 20 | 
| g5g.2xlarge | 3 | 40 | 
| g5g.4xlarge | 7 | 60 | 
| g5g.8xlarge | 7 | 60 | 
| g5g.16xlarge | 14 | 120 | 
| g5g.metal | 14 | 120 | 
| g6.xlarge | 3 | 20 | 
| g6.2xlarge | 3 | 40 | 
| g6.4xlarge | 7 | 60 | 
| g6.8xlarge | 7 | 90 | 
| g6.12xlarge | 7 | 120 | 
| g6.16xlarge | 14 | 120 | 
| g6.24xlarge | 14 | 120 | 
| g6.48xlarge | 14 | 120 | 
| g6e.xlarge | 3 | 20 | 
| g6e.2xlarge | 3 | 40 | 
| g6e.4xlarge | 7 | 60 | 
| g6e.8xlarge | 7 | 90 | 
| g6e.12xlarge | 9 | 120 | 
| g6e.16xlarge | 14 | 120 | 
| g6e.24xlarge | 19 | 120 | 
| g6e.48xlarge | 39 | 120 | 
| g6f.large | 1 | 10 | 
| g6f.xlarge | 3 | 20 | 
| g6f.2xlarge | 3 | 40 | 
| g6f.4xlarge | 7 | 60 | 
| gr6.4xlarge | 7 | 60 | 
| gr6.8xlarge | 7 | 90 | 
| gr6f.4xlarge | 7 | 60 | 
| g7e.2xlarge | 3 | 242 | 
| g7e.4xlarge | 7 | 242 | 
| 7e x 8 x large | 7 | 242 | 
| G7E, 12 x large | 9 | 242 | 
| g7e x 24 x large | 19 | 242 | 
| g7e 48 x large | 39 | 242 | 
| inf2.xlarge | 3 | 20 | 
| inf2.8xlarge | 7 | 90 | 
| inf2.24xlarge | 14 | 120 | 
| inf2.48xlarge | 14 | 120 | 
| p4d.24xlarge | 59 | 120 | 
| p4de.24xlarge | 59 | 120 | 
| p5.4xlarge | 3 | 60 | 
| p5.48xlarge | 63 | 242 | 
| p5e.48xlarge | 63 | 242 | 
| p5en.48xlarge | 63 | 242 | 
| p6-b200.48xlarge | 31 | 242 | 
| p6-b 300,48 x large | 67 | 242 | 
| p6e-gb200.36xlarge | 38 | 120 | 
| trn1.2xlarge | 3 | 19 | 
| trn1.32xlarge | 39 | 120 | 
| trn1n.32xlarge | 79 | 242 | 
| trn 2,3 x large | 1 | 14 | 
| trn2.48xlarge | 31 | 242 | 
| trn2u.48xlarge | 31 | 242 | 
| vt1.3xlarge | 3 | 40 | 
| vt1.6xlarge | 7 | 60 | 
| vt1.24xlarge | 14 | 120 | 

## Calcul haute performance
<a name="eni-branch-hpc"></a>


| Type d’instance | Limite de tâche sans jonction ENI | Limite de tâche avec jonction ENI | 
| --- | --- | --- | 
| hpc6a.48xlarge | 1 | 120 | 
| hpc6id.32xlarge | 1 | 120 | 
| hpc7g.4xlarge | 3 | 120 | 
| hpc7g.8xlarge | 3 | 120 | 
| hpc7g.16xlarge | 3 | 120 | 
| HP C8A. 96 x large | 3 | -2 | 

# Réservation de mémoire pour une instance de conteneur Amazon ECS Linux
<a name="memory-management"></a>

Lorsque l’agent de conteneur Amazon ECS enregistre une instance de conteneur dans un cluster, il doit déterminer la quantité de mémoire disponible que l’instance de conteneur peut réserver pour vos tâches. En raison de la surcharge de mémoire de la plateforme et de la mémoire utilisée par le noyau du système, ce nombre est différent de la quantité de mémoire installée qui est annoncée pour les instances Amazon EC2. Par exemple, une instance `m4.large` a 8 Gio de mémoire installée. Toutefois, cela n’équivaut pas toujours exactement à 8 192 Mio de mémoire disponible pour les tâches lorsque l’instance de conteneur s’enregistre.

## Détermination des ressources de mémoire des instances gérées ECS
<a name="ecs-mi-memory-calculation"></a>

Les instances gérées Amazon ECS utilisent une approche hiérarchique pour déterminer les besoins en ressources de mémoire pour les tâches. Contrairement à ECS sur EC2 qui repose sur l'introspection de la mémoire de Docker, ECS Managed Instances calcule les besoins en mémoire directement à partir de la charge utile des tâches lors des décisions de planification.

Lorsque l'agent ECS Managed Instances reçoit une tâche, il calcule la mémoire requise en utilisant l'ordre de priorité suivant :

1. **Mémoire au niveau des tâches (priorité la plus élevée)** : si la mémoire au niveau des tâches est spécifiée dans la définition des tâches, l'agent utilise directement cette valeur. Cela a priorité sur tous les paramètres de mémoire au niveau du conteneur.

1. **Somme de mémoire au niveau du conteneur (solution de secours)** : si la mémoire au niveau de la tâche n'est pas spécifiée (ou vaut 0), l'agent fait la somme des besoins en mémoire de tous les conteneurs de la tâche. Pour chaque contenant, il utilise :

   1. *Réservation de mémoire (limite souple)* : si un conteneur le spécifie `memoryReservation` dans sa configuration, l'agent utilise cette valeur.

   1. *Mémoire du conteneur (limite stricte)* - Si `memoryReservation` ce n'est pas spécifié, l'agent utilise le `memory` champ du conteneur.

**Example Mémoire au niveau des tâches spécifiée**  
Lorsque la mémoire au niveau des tâches est spécifiée, elle a priorité sur les paramètres au niveau du conteneur :  

```
{
  "family": "my-task",
  "memory": "2048",
  "containerDefinitions": [
    {
      "name": "container1",
      "memory": 1024,
      "memoryReservation": 512
    }
  ]
}
```
L'agent réserve 2048 MiB (la mémoire au niveau des tâches est prioritaire).

**Example Mémoire au niveau du conteneur avec réservations**  
Lorsque la mémoire au niveau des tâches n'est pas spécifiée, l'agent additionne les besoins en mémoire du conteneur :  

```
{
  "family": "my-task",
  "containerDefinitions": [
    {
      "name": "container1",
      "memory": 1024,
      "memoryReservation": 512
    },
    {
      "name": "container2",
      "memory": 512
    }
  ]
}
```
L'agent réserve 512 Mo (réservation conteneur1) \$1 512 Mo (conteneur2 mémoire) = 1024 Mo au total.

L'agent ECS Managed Instances effectue le calcul de la mémoire en trois phases :

1. **Réception de tâches** - Lorsqu'une charge utile de tâche arrive depuis le plan de contrôle ECS, l'agent calcule immédiatement la mémoire requise.

1. **Stockage des ressources** - La mémoire requise calculée est stockée dans le modèle de tâche pour être utilisée ultérieurement dans les opérations de comptabilité des ressources.

1. **Décision de planification** - Avant d'accepter une tâche, l'agent vérifie si suffisamment de mémoire est disponible. Si la mémoire disponible est insuffisante, la tâche est rejetée et reste dans la file d'attente du service ECS jusqu'à ce que les ressources soient disponibles.

**Note**  
Contrairement à ECS sur EC2, ECS Managed Instances n'utilise pas la variable `ECS_RESERVED_MEMORY` de configuration. La réservation de mémoire pour les processus du système est gérée par le biais de la gestion des ressources de la plate-forme sous-jacente, et l'agent effectue une comptabilité précise des ressources en fonction des définitions de tâches.

 Pour ECS sur EC2, l'agent de conteneur Amazon ECS fournit une variable de configuration appelée`ECS_RESERVED_MEMORY`, que vous pouvez utiliser pour supprimer un nombre spécifié de MiB de mémoire du pool alloué à vos tâches. Cela réserve de manière effective cette quantité de mémoire pour les processus système critiques.

Si vous occupez la totalité de la mémoire sur une instance de conteneur avec vos tâches, il est alors possible que vos tâches se disputent la mémoire avec les processus système critiques, ce qui peut provoquer une défaillance du système.

Par exemple, si vous spécifiez `ECS_RESERVED_MEMORY=256` dans votre fichier de configuration de l'agent de conteneur, l'agent enregistre la mémoire totale, moins 256 Mio pour cette instance. 256 Mio de mémoire ne sont donc pas allouées par des tâches ECS. Pour plus d'informations sur les variables de configuration de l'agent et la façon de les définir, consultez [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md) et [Démarrage des instances de conteneurs Amazon ECS Linux pour transmettre des données](bootstrap_container_instance.md).

Si vous spécifiez 8 192 Mio pour la tâche et qu’aucune de vos instances de conteneur ne dispose d’au moins 8 192 Mio de mémoire disponible pour répondre à cette exigence, la tâche ne peut pas être placée dans votre cluster. Si vous utilisez un environnement informatique géré, vous AWS Batch devez lancer un type d'instance plus important pour répondre à la demande.

L'agent de conteneur Amazon ECS utilise la fonction `ReadMemInfo()` Docker pour connaître la mémoire totale disponible pour le système d'exploitation. Linux et Windows fournissent tous deux des utilitaires de ligne de commande pour déterminer la mémoire totale.

**Example - Déterminer la mémoire totale Linux**  
La commande **free** renvoie la mémoire totale reconnue par le système d'exploitation.  

```
$ free -b
```
Exemple de sortie d'une instance `m4.large` exécutant l'AMI Amazon Linux optimisée pour Amazon ECS.  

```
             total       used       free     shared    buffers     cached
Mem:    8373026816  348180480 8024846336      90112   25534464  205418496
-/+ buffers/cache:  117227520 8255799296
```
Cette instance comporte 8373026816 octets de mémoire totale, soit 7 985 Mio disponible pour les tâches.

**Example - Déterminer la mémoire totale Windows**  
La commande **wmic** renvoie la mémoire totale reconnue par le système d'exploitation.  

```
C:\> wmic ComputerSystem get TotalPhysicalMemory
```
Exemple de sortie d’une instance `m4.large` exécutant l’AMI Windows Server optimisée pour Amazon ECS.  

```
TotalPhysicalMemory
8589524992
```
Cette instance comporte 8589524992 octets de mémoire totale, soit 8 191 Mio disponible pour les tâches.

## Affichage de la mémoire d’une instance de conteneur
<a name="viewing-memory"></a>

Vous pouvez voir la quantité de mémoire utilisée par une instance de conteneur dans la console Amazon ECS (ou dans le cadre de l'opération [DescribeContainerInstances](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html)API). Si vous essayez d’optimiser l’utilisation de vos ressources en fournissant à vos tâches autant de mémoire que possible pour un type d’instance particulier, vous pouvez observer la mémoire disponible pour cette instance de conteneur, puis attribuer autant de mémoire à vos tâches.

**Pour afficher la mémoire d’une instance de conteneur**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans le panneau de navigation, choisissez **Clusters**, puis sélectionnez le cluster qui héberge votre instance de conteneur.

1. Choisissez **Infrastructure**, puis sous les instances de conteneur, choisissez une instance de conteneur.

1. La section **Ressources** indique la mémoire enregistrée et la mémoire disponible pour l’instance de conteneur.

   La valeur de mémoire **Enregistrée** correspond à l’instance de conteneur enregistrée auprès d’Amazon ECS lors de son premier lancement, tandis que la valeur de mémoire **Disponible** correspond à la mémoire qui n’a pas encore été allouée à des tâches.

# Gestion à distance des instances de conteneur Amazon ECS à l'aide de AWS Systems Manager
<a name="ec2-run-command"></a>

Vous pouvez utiliser la fonctionnalité Run Command dans AWS Systems Manager (Systems Manager) pour gérer de manière sécurisée et à distance la configuration de vos instances de conteneur Amazon ECS. Exécutez la commande vous fournit des outils simples afin d'effectuer des tâches administratives courantes sans qu'il soit nécessaire de se connecter localement à l'instance. Vous pouvez gérer les changements de configuration sur vos clusters en exécutant des commandes simultanément sur plusieurs instances de conteneur. La fonctionnalité Exécuter la commande affiche le statut et les résultats de chaque commande.

Voici quelques exemples des types de tâches susceptibles d'être effectués avec la fonctionnalité Exécuter la commande :
+ Installer ou désinstaller des packages
+ Effectuer des mises à jour de sécurité
+ Nettoyer les images Docker
+ Arrêter ou démarrer des services
+ Afficher les ressources système
+ Afficher les fichiers journaux
+ Effectuer des opérations sur les fichiers

Pour plus d'informations sur Run Command, veuillez consulter [AWS Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) dans le *Guide de l'utilisateur AWS Systems Manager *.

Les conditions suivantes sont requises pour utiliser Systems Manager avec Amazon ECS.

1. Vous devez accorder à l'instance de conteneur role (**ecsInstanceRole**) les autorisations d'accès au Systems Manager APIs. Vous pouvez le faire en affectant l'**Amazon SSMManaged InstanceCore** au `ecsInstanceRole` rôle. 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. Vérifier que SSM Agent est installé sur vos instances de conteneur. Pour plus d’informations, consultez la section [Installation et désinstallation manuelle de l’agent SSM sur les instances EC2 pour Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html).

Après avoir attaché les politiques gérées par Systems Manager à vos instances de conteneur `ecsInstanceRole` et vérifié que AWS Systems Manager l'agent (agent SSM) est installé sur vos instances de conteneur, vous pouvez commencer à utiliser Run Command pour envoyer des commandes à vos instances de conteneur. Pour de plus amples informations sur l'exécution des commandes et des scripts shell sur vos instances et pour afficher la sortie obtenue, veuillez consulter [Exécution de commandes avec Systems Manager Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command.html) et [Procédures Run Command](https://docs.aws.amazon.com/systems-manager/latest/userguide/run-command-walkthroughs.html) dans le *Guide de l'utilisateur AWS Systems Manager *. 

Un cas d’utilisation courant consiste à mettre à jour le logiciel d’instance de conteneur avec Exécuter une commande. Vous pouvez suivre les procédures décrites dans le guide de l' AWS Systems Manager utilisateur avec les paramètres suivants.


| Paramètre | Value | 
| --- | --- | 
|  **Document de commande**  | AWS-RunShellScript | 
| Commande |  <pre>$ yum update -y</pre> | 
| Instances cibles | Vos instances de conteneur | 

# Utilisation d’un proxy HTTP pour les instances de conteneur Amazon ECS Linux
<a name="http_proxy_config"></a>

Vous pouvez configurer vos instances de conteneur Amazon ECS pour qu'elles utilisent un proxy HTTP pour l'agent de conteneur Amazon ECS et le démon Docker. C'est utile si vos instances de conteneur n'ont pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT. 

Pour configurer votre instance de conteneur Linux Amazon ECS afin qu'elle utilise un proxy HTTP, définissez les variables suivantes dans les fichiers appropriés lors du lancement (avec les données utilisateur Amazon EC2). Vous pouvez également modifier manuellement le fichier de configuration, puis redémarrer l’agent.

`/etc/ecs/ecs.config`(Amazon Linux 2et AmazonLinux AMI)    
`HTTP_PROXY=10.0.0.131:3128`  
Pour cette valeur, employez le nom d'hôte (ou l'adresse IP) et le numéro de port d'un proxy HTTP à utiliser pour que l'agent Amazon ECS puisse se connecter à Internet. Par exemple, vos instances de conteneur n'ont peut-être pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT.  
`NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
Utilisez la valeur `169.254.169.254,169.254.170.2,/var/run/docker.sock` pour filtrer des métadonnées d'instance EC2, les rôles IAM et le trafic du démon Docker en provenance du proxy. 

`/etc/systemd/system/ecs.service.d/http-proxy.conf` (Amazon Linux 2 uniquement)    
`Environment="HTTP_PROXY=10.0.0.131:3128/"`  
Pour cette valeur, employez le nom d'hôte (ou l'adresse IP) et le numéro de port d'un proxy HTTP à utiliser pour que `ecs-init` puisse se connecter à Internet. Par exemple, vos instances de conteneur n'ont peut-être pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT.  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock"`  
Utilisez la valeur `169.254.169.254,169.254.170.2,/var/run/docker.sock` pour filtrer des métadonnées d'instance EC2, les rôles IAM et le trafic du démon Docker en provenance du proxy. 

`/etc/init/ecs.override` (Amazon Linux AMI uniquement)    
`env HTTP_PROXY=10.0.0.131:3128`  
Pour cette valeur, employez le nom d'hôte (ou l'adresse IP) et le numéro de port d'un proxy HTTP à utiliser pour que `ecs-init` puisse se connecter à Internet. Par exemple, vos instances de conteneur n'ont peut-être pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT.  
`env NO_PROXY=169.254.169.254,169.254.170.2,/var/run/docker.sock`  
Utilisez la valeur `169.254.169.254,169.254.170.2,/var/run/docker.sock` pour filtrer des métadonnées d'instance EC2, les rôles IAM et le trafic du démon Docker en provenance du proxy. 

`/etc/systemd/system/docker.service.d/http-proxy.conf` (Amazon Linux 2 uniquement)    
`Environment="HTTP_PROXY=http://10.0.0.131:3128"`  
Pour cette valeur, employez le nom d'hôte (ou l'adresse IP) et le numéro de port d'un proxy HTTP à utiliser pour que le démon Docker puisse se connecter à Internet. Par exemple, vos instances de conteneur n'ont peut-être pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT.  
`Environment="NO_PROXY=169.254.169.254,169.254.170.2"`  
Utilisez la valeur `169.254.169.254,169.254.170.2` pour filtrer les métadonnées d'instance EC2 issues du proxy. 

`/etc/sysconfig/docker` (Amazon Linux AMI et Amazon Linux 2 uniquement)    
`export HTTP_PROXY=http://10.0.0.131:3128`  
Pour cette valeur, employez le nom d'hôte (ou l'adresse IP) et le numéro de port d'un proxy HTTP à utiliser pour que le démon Docker puisse se connecter à Internet. Par exemple, vos instances de conteneur n'ont peut-être pas accès au réseau externe via une passerelle Internet Amazon VPC, une instance ou une passerelle NAT.  
`export NO_PROXY=169.254.169.254,169.254.170.2`  
Utilisez la valeur `169.254.169.254,169.254.170.2` pour filtrer les métadonnées d'instance EC2 issues du proxy. 

La définition de ces variables d'environnement dans les fichiers ci-dessus affecte uniquement l'agent de conteneur Amazon ECS, `ecs-init`, et le démon Docker. Elles ne configurent aucun autre service (comme **yum**) pour utiliser le proxy.

Pour plus d'informations sur la configuration du proxy, consultez [Comment configurer un proxy HTTP pour Docker et l'agent de conteneur Amazon ECS dans Amazon Linux 2](https://repost.aws/knowledge-center/ecs-http-proxy-docker-linux2) ou. AL2023

# Configuration d’instances préinitialisées pour votre groupe Auto Scaling Amazon ECS
<a name="using-warm-pool"></a>

Amazon ECS prend en charge les groupes d'instances pré-initialisées Amazon EC2 Auto Scaling. Un groupe d'instances pré-initialisées est un groupe d'instances Amazon EC2 pré-initialisées prêtes à être mises en service. Chaque fois que votre application doit monter en puissance, Amazon EC2 Auto Scaling utilise les instances pré-initialisées du groupe d'instances pré-initialisées plutôt que de lancer des instances froides, permet l'exécution de tout processus d'initialisation final, puis met l'instance en service.

Pour en savoir plus sur les groupes instances pré-initialisées et comment les ajouter à votre groupe Auto Scaling, consultez la section [Groupes d'instances pré-initialisées pour Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-warm-pools.html) *dans le Guide de l'utilisateur Amazon EC2 Auto Scaling*.

Lorsque vous créez ou mettez à jour un groupe instances pré-initialisées pour un groupe Auto Scaling pour Amazon ECS, vous ne pouvez pas définir l'option qui renvoie les instances vers le groupe instances pré-initialisées à mise à l'échelle horizontale (`ReuseOnScaleIn`). Pour plus d'informations, consultez [put-warm-pool](https://docs.aws.amazon.com/cli/latest/reference/autoscaling/put-warm-pool.html) dans la *référence AWS Command Line Interface *.

Pour utiliser des groupes d'instances pré-initialisées avec votre cluster Amazon ECS, définissez la variable de configuration de l'agent `ECS_WARM_POOLS_CHECK` sur `true` dans le champ **User data** (Données utilisateur) du modèle de lancement de votre groupe Amazon EC2 Auto Scaling. 

Voici un exemple de la façon dont la variable de configuration de l'agent peut être spécifiée dans le champ **User data** (Données utilisateur) d'un modèle de lancement Amazon EC2. Remplacez *MyCluster* par le nom de votre cluster.

```
#!/bin/bash
cat <<'EOF' >> /etc/ecs/ecs.config
ECS_CLUSTER=MyCluster
ECS_WARM_POOLS_CHECK=true
EOF
```

La variable `ECS_WARM_POOLS_CHECK` est uniquement prise en charge sur les versions d'agent `1.59.0` et ultérieures. Pour plus d'informations sur la variable, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

# Mise à jour de l'agent de conteneur Amazon ECS
<a name="ecs-agent-update"></a>

L’agent de conteneur Amazon ECS doit parfois être mis à jour afin d’obtenir les correctifs de bogues et les nouvelles fonctions. La mise à jour de l'agent de conteneur Amazon ECS n'interrompt pas les tâches ou les services en cours d'exécution sur l'instance de conteneur. Le processus de mise à jour de l'agent varie selon si votre instance de conteneur a été lancée avec l'AMI optimisée pour Amazon ECS ou un autre système d'exploitation.

**Note**  
Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

## Vérification de la version d'agent de conteneur Amazon ECS
<a name="checking_agent_version"></a>

Vous pouvez vérifier la version de l'agent de conteneur qui est en cours d'exécution sur vos instances de conteneur afin de savoir s'il doit être mis à jour. L'affichage d'une instance de conteneur dans la console Amazon ECS fournit la version de l'agent. Procédez comme indiqué ci-dessous pour vérifier la version de votre agent.

------
#### [ Amazon ECS console ]

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans la barre de navigation, choisissez la région dans laquelle votre instance externe est inscrite.

1. Dans le panneau de navigation, choisissez **Clusters**, puis sélectionnez le cluster qui héberge l'instance externe.

1. Sur la *name* page **Cluster :**, choisissez l'onglet **Infrastructure**.

1. Sous **Container instances** (Instances de conteneur), notez la colonne **Agent version** (Version d'agent) pour vos instances de conteneur. Si l'instance de conteneur ne contient pas la dernière version de l'agent de conteneur, la console vous prévient à l'aide d'un message et signale la version d'agent obsolète.

   Si votre version d'agent est obsolète, vous pouvez la mettre à jour en suivant les instructions ci-dessous :
   + Si votre instance de conteneur exécute l'AMI optimisée pour Amazon ECS, veuillez consulter [Mise à jour de l'agent de conteneur Amazon ECS sur une AMI optimisée pour Amazon ECS](agent-update-ecs-ami.md).
   + Si votre instance de conteneur n'exécute pas une AMI optimisée pour Amazon ECS, veuillez consulter [Mise à jour manuelle de l'agent de conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs)](manually_update_agent.md).
**Important**  
Pour mettre à jour la version de l'agent Amazon ECS à partir des versions antérieures à v1.0.0 sur votre AMI optimisée pour Amazon ECS, nous vous recommandons de résilier votre instance de conteneur actuelle et de lancer une nouvelle instance avec la version d'AMI la plus récente. Toutes les instances de conteneur qui utilisent une version précédente doivent être retirées et remplacées par l'AMI la plus récente. Pour de plus amples informations, veuillez consulter [Lancement d'une instance de conteneur Amazon ECS Linux](launch_container_instance.md).

------
#### [ Amazon ECS container agent introspection API  ]

Vous pouvez également utiliser l'API d'introspection d'agent de conteneur Amazon ECS pour vérifier la version de l'agent à partir de l'instance de conteneur elle-même. Pour de plus amples informations, veuillez consulter [Introspection de conteneur Amazon ECS](ecs-agent-introspection.md).

**Pour vérifier si votre agent de conteneur Amazon ECS exécute la dernière version avec l'API d'introspection**

1. Connectez-vous à votre instance de conteneur via SSH.

1. Interrogez l'API d'introspection.

   ```
   [ec2-user ~]$ curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```
**Note**  
L'API d'introspection a ajouté les informations `Version` dans la version v1.0.0 de l'agent de conteneur Amazon ECS. Si `Version` n'apparaît pas lors de l'interrogation de l'API d'introspection ou que l'API d'introspection n'apparaît pas du tout dans votre agent, la version que vous exécutez est v0.0.3 ou une version antérieure. Vous devez mettre à jour votre version.

------

# Mise à jour de l'agent de conteneur Amazon ECS sur une AMI optimisée pour Amazon ECS
<a name="agent-update-ecs-ami"></a>

Si vous utilisez l'AMI optimisée pour Amazon ECS, vous disposez de plusieurs options pour obtenir la dernière version de l'agent de conteneur Amazon ECS (présentées dans l'ordre de recommandation) :
+ Résiliez l'instance de conteneur et lancez la dernière version de l'AMI Amazon Linux 2 optimisée pour Amazon ECS (manuellement ou en mettant à jour votre configuration du lancement Auto Scaling avec la dernière AMI). Cette opération fournit une instance de conteneur propre avec les versions les plus récemment testées et validées d'Amazon Linux, de Docker, d'`ecs-init` et de l'agent de conteneur Amazon ECS. Pour de plus amples informations, veuillez consulter [Linux optimisé pour Amazon ECS AMIs](ecs-optimized_AMI.md).
+ Connectez-vous à l'instance avec SSH et mettez à jour le package `ecs-init` (et ses dépendances) vers la dernière version. Cette opération fournit les versions les plus récemment testées et validées de Docker et d'`ecs-init` disponibles dans les référentiels Amazon Linux et la dernière version de l'agent de conteneur Amazon ECS. Pour de plus amples informations, veuillez consulter [Pour mettre à jour le package `ecs-init` sur une AMI optimisée pour Amazon ECS](#procedure_update_ecs-init).
+ Mettez à jour l'agent de conteneur avec l'opération d'`UpdateContainerAgent`API, soit via la console, soit avec le AWS CLI ou AWS SDKs. Pour de plus amples informations, veuillez consulter [Mise à jour de l'agent de conteneur Amazon ECS avec l'opération d'API `UpdateContainerAgent`](#agent-update-api).

**Note**  
Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.<a name="procedure_update_ecs-init"></a>

**Pour mettre à jour le package `ecs-init` sur une AMI optimisée pour Amazon ECS**

1. Connectez-vous à votre instance de conteneur via SSH.

1. Mettez à jour le package `ecs-init` avec la commande suivante.

   ```
   sudo yum update -y ecs-init
   ```
**Note**  
Le package `ecs-init` et l'agent de conteneur Amazon ECS sont mis à jour immédiatement. Cependant, les versions les plus récentes de Docker ne sont pas chargées tant que le démon Docker n'est pas redémarré. Redémarrez en relançant l'instance ou en exécutant les commandes suivantes sur votre instance :  
AMI Amazon Linux 2 optimisée pour Amazon ECS :  

     ```
     sudo systemctl restart docker
     ```
AMI Amazon Linux optimisée pour Amazon ECS :  

     ```
     sudo service docker restart && sudo start ecs
     ```

## Mise à jour de l'agent de conteneur Amazon ECS avec l'opération d'API `UpdateContainerAgent`
<a name="agent-update-api"></a>

**Important**  
L'API `UpdateContainerAgent` n'est prise en charge que sur les variantes Linux de l'AMI optimisée pour Amazon ECS, à l'exception de l'AMI Amazon Linux 2 (arm64) optimisée pour Amazon ECS. Pour les instances de conteneur utilisant l'AMI Amazon Linux 2 (arm64) optimisée pour Amazon ECS, mettez à jour le package `ecs-init` pour mettre à jour l'agent. Pour les instances de conteneur qui exécutent d'autres systèmes d'exploitation, consultez la page [Mise à jour manuelle de l'agent de conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs)](manually_update_agent.md). Si vous utilisez des instances de conteneur Windows, nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

Le processus `UpdateContainerAgent` d'API commence lorsque vous demandez une mise à jour de l'agent, soit via la console, soit avec le AWS CLI ou AWS SDKs. Amazon ECS vérifie la version actuelle de votre agent par rapport à la dernière version disponible, et détermine si une mise à jour est possible. Si aucune mise à jour n'est disponible, si l'agent exécute déjà par exemple la version la plus récente, le message `NoUpdateAvailableException` est renvoyé.

Les étapes du processus de mise à jour ci-dessus sont les suivantes :

`PENDING`  
Une mise à jour de l'agent est disponible, et le processus de mise à jour a commencé.

`STAGING`  
L'agent a commencé le téléchargement de la mise à jour. Si l'agent ne peut pas télécharger la mise à jour, ou si le contenu de la mise à jour est incorrect ou endommagé, l'agent envoie une notification de l'échec et la mise à jour passe en état `FAILED`.

`STAGED`  
Le téléchargement est terminé et le contenu de l'agent a été vérifié.

`UPDATING`  
Le service `ecs-init` est redémarré et il récupère la nouvelle version de l'agent. Si, pour une raison quelconque, l'agent est incapable de redémarrer, la mise à jour passe à l'état `FAILED`. Dans le cas contraire, l'agent indique à Amazon ECS que la mise à jour est terminée.

**Note**  
Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

**Pour mettre à jour l'agent de conteneur Amazon ECS sur une AMI optimisée pour Amazon ECS dans la console**

1. Ouvrez la console à la [https://console.aws.amazon.com/ecs/version 2](https://console.aws.amazon.com/ecs/v2).

1. Dans la barre de navigation, choisissez la région dans laquelle votre instance externe est inscrite.

1. Dans le panneau de navigation, choisissez **Clusters** et sélectionnez le cluster.

1. Sur la *name* page **Cluster :**, choisissez l'onglet **Infrastructure**.

1. Sous **Instances de conteneur**, sélectionnez les instances à mettre à jour, puis choisissez **Actions** et **Mettre à jour l'agent**.

# Mise à jour manuelle de l'agent de conteneur Amazon ECS (pour les applications non optimisées pour Amazon ECS AMIs)
<a name="manually_update_agent"></a>

L’agent de conteneur Amazon ECS doit parfois être mis à jour afin d’obtenir les correctifs de bogues et les nouvelles fonctions. La mise à jour de l'agent de conteneur Amazon ECS n'interrompt pas les tâches ou les services en cours d'exécution sur l'instance de conteneur.
**Note**  
Les mises à jour de l'agent ne s'appliquent pas aux instances de conteneur Windows. Nous vous recommandons de lancer de nouvelles instances de conteneur pour mettre à jour le version de l'agent dans vos clusters Windows.

1. Connectez-vous à votre instance de conteneur via SSH.

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

   ```
   ubuntu:~$ 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 de mettre à jour votre agent. Les agents récents avec la variable d'environnement `ECS_DATADIR` enregistrent leur état et sont possibles à mettre à jour sans problèmes tandis que les tâches sont en cours d'exécution.

1. Arrêtez l'agent de conteneur Amazon ECS.

   ```
   ubuntu:~$ docker stop ecs-agent
   ```

1. Supprimez le conteneur de l'agent.

   ```
   ubuntu:~$ docker rm ecs-agent
   ```

1. Vérifiez que le répertoire `/etc/ecs` et le fichier de configuration de l'agent de conteneur Amazon ECS existent à l'emplacement `/etc/ecs/ecs.config`.

   ```
   ubuntu:~$ sudo mkdir -p /etc/ecs && sudo touch /etc/ecs/ecs.config
   ```

1. Modifiez le fichier `/etc/ecs/ecs.config` et vérifiez qu'il contient au moins les déclarations de variable suivantes. Pour que votre instance de conteneur ne s'inscrive pas auprès du cluster par défaut, spécifiez le nom de votre cluster comme valeur pour `ECS_CLUSTER`.

   ```
   ECS_DATADIR=/data
   ECS_ENABLE_TASK_IAM_ROLE=true
   ECS_ENABLE_TASK_IAM_ROLE_NETWORK_HOST=true
   ECS_LOGFILE=/log/ecs-agent.log
   ECS_AVAILABLE_LOGGING_DRIVERS=["json-file","awslogs"]
   ECS_LOGLEVEL=info
   ECS_CLUSTER=default
   ```

   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. Extrayez la dernière image de l'agent de conteneur Amazon ECS depuis Amazon Elastic Container Registry Public.

   ```
   ubuntu:~$ docker pull public.ecr.aws/ecs/amazon-ecs-agent:latest
   ```

   Sortie :

   ```
   Pulling repository amazon/amazon-ecs-agent
   a5a56a5e13dc: Download complete
   511136ea3c5a: Download complete
   9950b5d678a1: Download complete
   c48ddcf21b63: Download complete
   Status: Image is up to date for amazon/amazon-ecs-agent:latest
   ```

1. Exécutez l'agent de conteneur Amazon ECS le plus récent sur votre instance de conteneur.
**Note**  
Utilisez les stratégies de redémarrage de Docker ou un gestionnaire de processus (tel que **upstart** ou **systemd**) pour traiter l'agent de conteneur comme un service ou un démon, et vous assurer qu'il est redémarré après avoir été arrêté. L'AMI optimisée pour Amazon ECS utilise le `ecs-init` RPM à cette fin, et vous pouvez consulter le [code source de ce RPM](https://github.com/aws/amazon-ecs-init) sur. GitHub 

   L'exemple suivant de commande d'exécution d'agent est divisé en lignes distinctes pour montrer chaque option. 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).
**Important**  
Les systèmes d'exploitation sur lesquels cette `--privileged` option est SELinux activée doivent figurer dans votre **docker run** commande. En outre, pour les instances de conteneur SELinux activées, nous vous recommandons d'ajouter l'`:Z`option aux montages de `/data` volume `/log` et. Cependant, les montages hôtes de ces volumes doivent exister avant d'exécuter la commande. Dans le cas contraire, vous recevrez une erreur `no such file or directory`. Procédez comme suit si vous rencontrez des difficultés pour exécuter l'agent Amazon ECS sur une instance de conteneur SELinux activée :  
Créez les points de montage des volumes hôtes sur votre instance de conteneur.  

     ```
     ubuntu:~$ sudo mkdir -p /var/log/ecs /var/lib/ecs/data
     ```
Ajoutez l'option `--privileged` à la commande **docker run** ci-dessous.
Ajoutez l'option `:Z` aux montages de volume de conteneur `/log` et `/data` (par exemple, `--volume=/var/log/ecs/:/log:Z`) dans la commande **docker run** ci-dessous.

   ```
   ubuntu:~$ sudo docker run --name ecs-agent \
   --detach=true \
   --restart=on-failure:10 \
   --volume=/var/run:/var/run \
   --volume=/var/log/ecs/:/log \
   --volume=/var/lib/ecs/data:/data \
   --volume=/etc/ecs:/etc/ecs \
   --volume=/etc/ecs:/etc/ecs/pki \
   --net=host \
   --env-file=/etc/ecs/ecs.config \
   amazon/amazon-ecs-agent:latest
   ```
**Note**  
Si vous recevez un message `Error response from daemon: Cannot start container`, vous pouvez supprimer le conteneur ayant échoué à l'aide de la commande **sudo docker rm ecs-agent**, puis réessayer d'exécuter l'agent. 