

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.

# Clusters Amazon ECS pour instances externes
<a name="ecs-anywhere"></a>

Amazon ECS Anywhere fournit un support pour l'enregistrement d'une *Instance externe*, telle qu'un serveur sur site ou une machine virtuelle (VM), sur votre cluster Amazon ECS. Les instances externes sont optimisées pour exécuter des applications qui génèrent du trafic sortant ou des données de processus. Si votre application nécessite du trafic entrant, l'absence de prise en charge d'Elastic Load Balancing rend l'exécution de ces applications moins efficace. Amazon ECS a ajouté un nouveau type de lancement `EXTERNAL` que vous pouvez utiliser pour créer des services ou exécuter des tâches sur vos instances externes.

## Systèmes d'exploitation et architectures système pris en charge
<a name="ecs-anywhere-supported-os"></a>

Voici la liste des systèmes d'exploitation pris en charge. Les architectures d'UC `x86_64` et `ARM64` sont prises en charge.
+ Amazon Linux 2023
+ Ubuntu 20, Ubuntu 22, Ubuntu 24
+ RHEL 9 — Vous devez vous assurer que Docker est installé avant d'exécuter le script d'[installation d'ECS Anywhere](https://github.com/aws/amazon-ecs-agent/blob/master/scripts/ecs-anywhere-install.sh). Pour plus d'informations, consultez [Installer le moteur Docker sur RHEL](https://docs.docker.com/engine/install/rhel/) dans la documentation Docker.

À compter du 7 août 2026, les systèmes d'exploitation suivants ne sont plus pris en charge par Amazon ECS Anywhere :
+ Amazon Linux 2
+ CentOS Stream 9
+ RHEL 7, RHEL 8
+ Fedora 32, Fedora 33, Fedora 40
+ openSUSE Tumbleweed
+ Ubuntu 18
+ Debian 9, Debian 10, Debian 11, Debian 12
+ SUSE Enterprise Server 15
+ Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 20H2

## Considérations
<a name="ecs-anywhere-considerations"></a>

Avant de démarrer l'utilisation des instances externes, tenez compte des considérations suivantes.
+ Vous pouvez enregistrer une instance externe dans un cluster à la fois. Pour plus d'informations sur l'enregistrement d'une instance externe auprès d'un autre cluster, veuillez consulter [Annulation de l’enregistrement d’une instance externe Amazon ECS](ecs-anywhere-deregistration.md).
+ Vos instances externes ont besoin d'un rôle IAM qui leur permet de communiquer avec AWS APIs. Pour de plus amples informations, veuillez consulter [Rôle IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).
+ Vos instances externes ne doivent pas avoir de chaîne d'informations d'identification d'instance préconfigurée définie localement, car cela interférera avec le script d'enregistrement.
+ Pour envoyer des journaux de conteneur à CloudWatch Logs, assurez-vous de créer et de spécifier un rôle IAM d'exécution de tâche dans la définition de votre tâche. 
+ Lorsqu'une instance externe est enregistrée dans un cluster, la valeur `ecs.capability.external` est associée à l'instance. Cet attribut identifie l'instance en tant qu'instance externe. Vous pouvez ajouter des attributs personnalisés à vos instances externes pour les utiliser comme contrainte de placement de tâches. Pour de plus amples informations, veuillez consulter [Attributs personnalisés](task-placement-constraints.md#ecs-custom-attributes).
+ Vous pouvez ajouter des balises de ressources à votre instance externe. Pour de plus amples informations, veuillez consulter [Ajout de balises à une instance de conteneur externe pour Amazon ECS](instance-details-tags-external.md).
+ ECS Exec est pris en charge sur les instances externes. Pour de plus amples informations, veuillez consulter [Surveillance des conteneurs Amazon ECS avec ECS Exec](ecs-exec.md).
+ Vous trouverez ci-dessous des considérations supplémentaires spécifiques aux réseaux avec vos instances externes. Pour de plus amples informations, veuillez consulter [Réseaux](#ecs-anywhere-networking).
  + La répartition de charge de service n'est pas prise en charge.
  + La découverte de service n'est pas prise en charge.
  + Les tâches qui s'exécutent sur des instances externes doivent utiliser les modes réseau `bridge`, `host` ou `none`. Le mode réseau `awsvpc` n'est pas pris en charge.
  + Il existe des domaines de service Amazon ECS dans chaque AWS région. Ces domaines de service doivent être autorisés à envoyer du trafic vers vos instances externes.
  + Le SSM Agent installé sur votre instance externe gère les informations d'identification IAM qui effectuent une rotation toutes les 30 minutes à l'aide d'une empreinte matérielle. Si votre instance externe perd la connexion à AWS, l'agent SSM actualise automatiquement les informations d'identification une fois la connexion rétablie. Pour plus d'informations, consultez [Validation de serveurs et de machines virtuelles sur site à l'aide d'une empreinte matérielle](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) dans le *Guide de l'utilisateur AWS Systems Manager *.
  + Vous pouvez exécuter des tâches Linux sur des instances externes dans une configuration IPv6 uniquement tant que les instances se trouvent dans des sous-réseaux IPv6 uniquement. Pour de plus amples informations, veuillez consulter [Utilisation d'un VPC en mode -only IPv6](task-networking.md#networking-ipv6-only).
+ L'API `UpdateContainerAgent` n'est pas prise en charge. Pour obtenir des instructions sur la mise à jour du SSM Agent ou de l'agent Amazon ECS sur vos instances externes, veuillez consulter [Mise à jour de l' AWS Systems Manager agent et de l'agent de conteneur Amazon ECS sur une instance externe](ecs-anywhere-updates.md).
+ Les fournisseurs de capacité Amazon ECS ne sont pas pris en charge. Pour créer un service ou exécuter une tâche autonome sur vos instances externes, utilisez le type de lancement `EXTERNAL`.
+ SELinux n'est pas pris en charge.
+ L'utilisation de volumes Amazon EFS ou la spécification d'une `EFSVolumeConfiguration` n'est pas prise en charge.
+ L'intégration à App Mesh n'est pas prise en charge.
+ Si vous utilisez la console pour créer une définition de tâche d'instance externe, vous devez créer la définition de tâche avec l'éditeur JSON de la console.
+ Lorsque vous utilisez une AMI non optimisée pour Amazon ECS, exécutez les commandes suivantes sur l'instance de conteneur externe pour configurer les règles d'utilisation des rôles IAM pour les tâches. Pour de plus amples informations, veuillez consulter [Configuration supplémentaire d’instance externe](task-iam-roles.md#enable_task_iam_roles).

  ```
  $ sysctl -w net.ipv4.conf.all.route_localnet=1
  $ iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679
  $ iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679
  ```

### Réseaux
<a name="ecs-anywhere-networking"></a>

Les instances externes Amazon ECS sont optimisées pour exécuter des applications qui génèrent du trafic sortant ou des données de traitement. Si votre application nécessite un trafic entrant, tel qu'un service web, l'absence de prise en charge d'Elastic Load Balancing rend l'exécution de ces applications moins efficace, car il n'existe pas de prise en charge pour placer ces charges de travail derrière un équilibreur de charge.

Vous trouverez ci-dessous des considérations supplémentaires spécifiques aux réseaux avec vos instances externes. 
+ La répartition de charge de service n'est pas prise en charge.
+ La découverte de service n'est pas prise en charge.
+ Les tâches Linux qui s'exécutent sur des instances externes doivent utiliser les modes réseau `bridge`, `host` ou `none`. Le mode réseau `awsvpc` n'est pas pris en charge. 

  Pour savoir comment opérer un réseau, consultez la section [Options de mise en réseau des tâches Amazon ECS pour les instances EC2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html).
+ Vous pouvez exécuter des tâches Linux sur des instances externes dans une configuration IPv6 uniquement tant que les instances se trouvent dans des sous-réseaux IPv6 uniquement. Pour de plus amples informations, veuillez consulter [Utilisation d'un VPC en mode -only IPv6](task-networking.md#networking-ipv6-only).
+ Il existe des domaines de service Amazon ECS dans chaque région et vous devez être autorisé à envoyer du trafic vers vos instances externes.
+ Le SSM Agent installé sur votre instance externe gère les informations d'identification IAM qui effectuent une rotation toutes les 30 minutes à l'aide d'une empreinte matérielle. Si votre instance externe perd la connexion à AWS, l'agent SSM actualise automatiquement les informations d'identification une fois la connexion rétablie. Pour plus d'informations, consultez [Validation de serveurs et de machines virtuelles sur site à l'aide d'une empreinte matérielle](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-technical-details.html#fingerprint-validation) dans le *Guide de l'utilisateur AWS Systems Manager *.

Les domaines suivants sont utilisés pour la communication entre le service Amazon ECS service et l'agent Amazon ECS installé sur votre instance externe. Assurez-vous que le trafic est autorisé et que la résolution DNS fonctionne. Pour chaque point de terminaison, *region* représente l'identifiant de AWS région d'une région prise en charge par Amazon ECS, par exemple `us-east-2` pour la région USA Est (Ohio). Les points de terminaison de toutes les régions que vous utilisez doivent être autorisés. Pour les points de terminaison `ecs-a` et `ecs-t`, vous devez inclure un astérisque (par exemple, `ecs-a-*`).
+ `ecs-a-*.region.amazonaws.com` — Ce point de terminaison est utilisé lors de la gestion des tâches.
+ `ecs-t-*.region.amazonaws.com` — Ce point de terminaison est utilisé pour gérer les métriques de tâche et de conteneur.
+ `ecs.region.amazonaws.com` — Il s'agit du point de terminaison de service pour Amazon ECS.
+ `ssm.region.amazonaws.com `— Il s'agit du point de terminaison du service pour AWS Systems Manager.
+ `ec2messages.region.amazonaws.com`— Il s'agit du point de terminaison du service AWS Systems Manager utilisé pour communiquer entre l'agent Systems Manager et le service Systems Manager dans le cloud.
+ `ssmmessages.region.amazonaws.com` — Il s'agit du point de terminaison requis pour créer et supprimer des canaux de session avec le service Session Manager dans le cloud.
+ Si vos tâches nécessitent une communication avec d'autres AWS services, assurez-vous que ces points de terminaison de service sont autorisés. Parmi les applications, citons l'utilisation d'Amazon ECR pour extraire des images de conteneurs ou l'utilisation de CloudWatch for CloudWatch Logs. Pour plus d'informations, consultez [Points de terminaison de service](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) dans la *Référence générale AWS *.

### Amazon FSx for Windows File Server avec ECS Anywhere
<a name="ecs-anywhere-fsx"></a>

**Important**  
Le support Windows pour Amazon ECS Anywhere est obsolète. Cette section n'est plus applicable.

Pour utiliser les instances externes Amazon FSx for Windows File Server d'Amazon ECS, vous devez établir une connexion entre votre centre de données sur site et le AWS Cloud. Pour plus d'informations sur la connexion de votre réseau à votre VPC, consultez [Options de connectivité du cloud privé virtuel Amazon](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html).

### gMSA avec ECS Anywhere
<a name="ecs-anywhere-gmsa"></a>

**Important**  
Le support Windows pour Amazon ECS Anywhere est obsolète. Cette section n'est plus applicable.

Les cas d'utilisation suivants ont été pris en charge pour ECS Anywhere lorsque Windows était un système d'exploitation compatible.
+ L'Active Directory se trouve dans le AWS Cloud - Pour cette configuration, vous créez une connexion entre votre réseau local et l' AWS Cloud utilisation d'une AWS Direct Connect connexion. Pour en savoir plus comment créer une connexion, consultez [Options de connectivité du cloud privé virtuel Amazon](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html). Vous pouvez créer un Active Directory dans AWS Cloud. Pour plus d'informations sur la façon de démarrer AWS Directory Service, consultez la section [Configuration AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/setting_up.html) du *Guide d'AWS Directory Service administration*. Vous pouvez ensuite joindre vos instances externes au domaine à l'aide de la AWS Direct Connect connexion. Pour en savoir plus sur l'utilisation de gMSA avec Amazon ECS, consultez [Utilisation des gMSA pour les conteneurs Windows EC2 pour Amazon ECS](windows-gmsa.md).
+ Active Directory se trouve dans le centre de données sur site. - Pour cette configuration, vous joignez vos instances externes à Active Directory sur site. Vous utilisez ensuite les informations d'identification disponibles localement lorsque vous exécutez les tâches Amazon ECS.

# Création d’un cluster Amazon ECS pour les charges de travail d’instance externe
<a name="create-cluster-console-v2-ecs-anywhere"></a>

Vous créez un cluster pour définir l’infrastructure sur laquelle vos tâches et vos services s’exécutent.

Avant de commencer, veillez achever les étapes de [Configurer l'utilisation d'Amazon ECS](get-set-up-for-amazon-ecs.md) et affectez l’autorisation IAM appropriée. Pour de plus amples informations, veuillez consulter [Exemples de cluster Amazon ECS](security_iam_id-based-policy-examples.md#IAM_cluster_policies). La console Amazon ECS fournit un moyen simple de créer les ressources nécessaires à un cluster Amazon ECS en créant une CloudFormation pile. 

Pour que le processus de création de cluster soit aussi simple que possible, la console dispose de sélections par défaut pour de nombreux choix que nous décrivons ci-dessous. La plupart des sections de la console comportent des volets d'aide qui fournissent un contexte supplémentaire. 

Vous pouvez modifier les options suivantes :
+ Ajoutez un espace de noms au cluster.

  Un espace de noms permet aux services que vous créez dans le cluster de se connecter aux autres services de l'espace de noms sans configuration supplémentaire. Pour de plus amples informations, veuillez consulter [Interconnexion des services Amazon ECS](interconnecting-services.md).
+ Configuration du cluster pour les instances externes
+ Attribuez une AWS KMS clé à votre espace de stockage géré. Pour plus d’informations sur la création d’une clé, consultez la section [Création d’une clé KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) dans le *Guide de l’utilisateur AWS Key Management Service *.
+ Ajoutez des balises pour vous aider à identifier vos clusters.

**Pour créer un nouveau cluster (console Amazon ECS)**

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 à utiliser.

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

1. Sur la page **Clusters**, choisissez **Create Cluster** (Créer un cluster).

1. Sous **Configuration de cluster**, configurez les éléments suivants :
   + Pour **Nom du cluster**, saisissez un nom unique.

     Le nom peut contenir jusqu'à 255 lettres (minuscules et majuscules), des chiffres et des traits d'union.
   + (Facultatif) Pour que l'espace de noms utilisé pour Service Connect soit différent du nom du cluster, saisissez un nom unique dans **Espace de nom**.

1. (Facultatif) Utilisez Container Insights, développez **Surveillance**, puis sélectionnez une des options suivantes :
   + Pour utiliser Container Insights avec observabilité améliorée comme recommandé, sélectionnez **Container Insights avec observabilité améliorée**.
   + Pour utiliser Container Insights, choisissez **Container Insights**.

1. (Facultatif) Pour utiliser ECS Exec afin de déboguer les tâches dans le cluster, développez **Configuration de la résolution des problèmes**, puis configurez les éléments suivants :
   + Sélectionnez **Activer sur ECS Exec**.
   + (Facultatif) Pour la **AWS KMS clé pour ECS Exec**, entrez l'ARN de la AWS KMS clé que vous souhaitez utiliser pour chiffrer les données de session ECS Exec.
   + (Facultatif) Pour **Journalisation ECS Exec**, choisissez la destination du journal :
     + Pour envoyer des journaux à CloudWatch Logs, choisissez **Amazon CloudWatch**.
     + Pour envoyer les journaux à Amazon S3, choisissez **Amazon S3**.
     + Pour désactiver la journalisation, choisissez **Aucune**.

1. (Facultatif) Chiffrez les données sur le stockage géré. Sous **Chiffrement**, pour **Stockage géré**, entrez l'ARN de la AWS KMS clé que vous souhaitez utiliser pour chiffrer les données du stockage géré.

1. (Facultatif) Pour vous aider à identifier votre cluster, développez **Tags** (balises), puis configurez vos balises.

   [Add a tag] Choisissez **Add tag** (Ajouter une balise) et procédez comme suit :
   + Pour **Key** (Clé), saisissez le nom de la clé.
   + Pour **Valeur**, saisissez la valeur de clé.

1. Choisissez **Créer**.

## Étapes suivantes
<a name="cluster-next-steps-ecs-anywhere"></a>

Vous devez enregistrer les instances auprès du cluster. Pour de plus amples informations, veuillez consulter [Enregistrement d’une instance externe dans un cluster Amazon ECS](ecs-anywhere-registration.md).

Créez une définition de tâche pour le type de lancement externe. Pour de plus amples informations, consultez [Création d’une définition de tâche Amazon ECS à l’aide de la console](create-task-definition.md).

Exécutez vos applications en tant que tâches autonomes ou dans le cadre d’un service. Pour plus d’informations, consultez les ressources suivantes :
+ [Exécution d’une application en tant que tâche Amazon ECS](standalone-task-create.md)
+ [Création d’un déploiement de mise à jour propagée Amazon ECS](create-service-console-v2.md)

# Enregistrement d’une instance externe dans un cluster Amazon ECS
<a name="ecs-anywhere-registration"></a>

Pour chaque instance externe que vous enregistrez auprès d'un cluster Amazon ECS, le SSM Agent, l'agent de conteneur Amazon ECS et Docker doivent être installés. Pour enregistrer l'instance externe dans un cluster Amazon ECS, elle doit d'abord être enregistrée en tant qu'instance AWS Systems Manager gérée. Vous pouvez créer le script d'installation en quelques clics sur la console Amazon ECS. Le script d'installation inclut une clé d'activation Systems Manager et des commandes pour installer chacun des agents requis et Docker. Le script d'installation doit être exécuté sur votre serveur local ou votre machine virtuelle pour terminer la procédure d'installation et d'enregistrement.

**Note**  
Avant d'enregistrer votre instance externe Linux auprès du cluster, créez le fichier `/etc/ecs/ecs.config` sur votre instance externe et ajoutez les paramètres de configuration de l'agent de conteneur souhaités. Vous ne pouvez pas le faire après l'enregistrement de l'instance externe dans un cluster. Pour de plus amples informations, veuillez consulter [Configuration de l'agent de conteneur Amazon ECS](ecs-agent-config.md).

------
#### [ AWS Management 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, sélectionnez la région à utiliser.

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

1. Dans la page **Clusters**, sélectionnez un cluster dans lequel enregistrer votre instance externe.

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

1. Sur la page **Register external instances** (Enregistrer des instances externes), effectuez les étapes suivantes.

   1. Pour **Activation key duration (in days)** [Durée de la clé d'activation (en jours)], saisissez le nombre de jours pendant lesquels la clé d'activation reste active. Une fois que le nombre de jours que vous avez saisis est écoulé, la clé ne fonctionne plus lors de l'enregistrement d'une instance externe.

   1. Pour **Number of instances (Nombre d'instances)**, saisissez le nombre d'instances externes que vous souhaitez enregistrer dans votre cluster avec la clé d'activation.

   1. Pour **Instance role (Rôle d'instance)**, choisissez le rôle IAM à associer à vos instances externes. Si aucun rôle n'a déjà été créé, choisissez **Create new role (Créer un rôle)** Pour qu'Amazon ECS crée un rôle en votre nom. Pour plus d'informations sur les autorisations IAM requises pour vos instances externes, consultez [Rôle IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   1.  Copiez la commande d'inscription. Cette commande doit être exécutée sur chaque instance externe que vous souhaitez enregistrer dans le cluster.
**Important**  
La partie bash du script doit être exécutée en tant que root. Si la commande n'est pas exécutée en tant que racine, une erreur est renvoyée.

   1. Choisissez **Close** (Fermer).

------
#### [ AWS CLI for Linux operating systems ]

1. Créez une paire d'activations de Systems Manager. Elle est utilisée pour l'activation de l'instance gérée par Systems Manager. La sortie inclut un `ActivationId` et un `ActivationCode`. Vous les utiliserez dans une étape ultérieure. Veillez à spécifier le rôle IAM ECS Anywhere que vous avez créé. Pour de plus amples informations, veuillez consulter [Rôle IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   ```
   aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
   ```

1. Sur votre serveur local ou votre machine virtuelle (VM), téléchargez le script d'installation.

   ```
   curl --proto "https" -o "/tmp/ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh"
   ```

1. (Facultatif) Sur votre serveur sur site ou votre machine virtuelle (VM), procédez comme suit pour vérifier le script d'installation à l'aide du fichier de signature du script.

   1. Téléchargez et installez GnuPG. Pour plus d'informations GNUpg, consultez le site Web de [GnuPG](https://www.gnupg.org). Pour les systèmes Linux, installez `gpg` à l'aide du gestionnaire de package de votre version de Linux.

   1. Extrayez la clé publique PGP Amazon ECS.

      ```
      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
      ```

   1. Téléchargez la signature du script d'installation. La signature est une signature PGP détachées ASCII, stockée dans un fichier portant l'extension `.asc`.

      ```
      curl --proto "https" -o "/tmp/ecs-anywhere-install.sh.asc" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh.asc"
      ```

   1. Vérifiez le fichier de script d'installation à l'aide de la clé.

      ```
      gpg --verify /tmp/ecs-anywhere-install.sh.asc /tmp/ecs-anywhere-install.sh
      ```

      La sortie attendue est la suivante :

      ```
      gpg: Signature made Tue 25 May 2021 07:16:29 PM UTC
      gpg:                using RSA key 50DECCC4710E61AF
      gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: F34C 3DDA E729 26B0 79BE  AEC6 BCE9 D9A4 2D51 784F
           Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB  346F 50DE CCC4 710E 61AF
      ```

1. Sur votre serveur sur site ou votre machine virtuelle (VM), exécutez le script d'installation. Spécifiez le nom du cluster, la région, l'ID d'activation de Systems Manager et le code d'activation à partir de la première étape.

   ```
   sudo bash /tmp/ecs-anywhere-install.sh \
       --region $REGION \
       --cluster $CLUSTER_NAME \
       --activation-id $ACTIVATION_ID \
       --activation-code $ACTIVATION_CODE
   ```

   Pour un serveur local ou une machine virtuelle (VM) sur lequel le pilote NVIDIA est installé pour les charges de travail GPU, vous devez ajouter l'indicateur `--enable-gpu` du script d'installation. Lorsque cet indicateur est spécifié, le script d'installation vérifie que le pilote NVIDIA est en cours d'exécution, puis ajoute les variables de configuration requises pour exécuter vos tâches Amazon ECS. Pour plus d'informations sur l'exécution de charges de travail GPU et la spécification des exigences GPU dans une définition de tâche, consultez [Spécification GPUs dans une définition de tâche Amazon ECS](ecs-gpu-specifying.md).

   ```
   sudo bash /tmp/ecs-anywhere-install.sh \
       --region $REGION \
       --cluster $CLUSTER_NAME \
       --activation-id $ACTIVATION_ID \
       --activation-code $ACTIVATION_CODE \
       --enable-gpu
   ```

Pour enregistrer une instance externe existante auprès d'un cluster différent, procédez comme suit.

**Pour enregistrer une instance externe existante auprès d'un cluster différent**

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

   ```
   sudo systemctl stop ecs.service
   ```

1. Modifiez le fichier `/etc/ecs/ecs.config` et sur la ligne `ECS_CLUSTER`, assurez-vous que le nom du cluster correspond au nom du cluster auprès duquel vous souhaitez enregistrer l'instance externe.

1. Supprimez les données existantes de l'agent Amazon ECS.

   ```
   sudo rm /var/lib/ecs/data/agent.db
   ```

1. Démarrez l'agent de conteneur Amazon ECS.

   ```
   sudo systemctl start ecs.service
   ```

------
#### [ AWS CLI for Windows operating systems ]

1. Créez une paire d'activations de Systems Manager. Elle est utilisée pour l'activation de l'instance gérée par Systems Manager. La sortie inclut un `ActivationId` et un `ActivationCode`. Vous les utiliserez dans une étape ultérieure. Veillez à spécifier le rôle IAM ECS Anywhere que vous avez créé. Pour de plus amples informations, veuillez consulter [Rôle IAM Amazon ECS Anywhere](iam-role-ecsanywhere.md).

   ```
   aws ssm create-activation --iam-role ecsAnywhereRole | tee ssm-activation.json
   ```

1. Sur votre serveur local ou votre machine virtuelle (VM), téléchargez le script d'installation.

   ```
   Invoke-RestMethod -URI "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install.ps1" -OutFile “ecs-anywhere-install.ps1”
   ```

1. (Facultatif) Le script PowerShell est signé par Amazon et, par conséquent, Windows effectue automatiquement la validation du certificat sur ce dernier. Aucune validation manuelle n'est requise.

   Pour vérifier manuellement le certificat, effectuez un clic droit sur le fichier, accédez aux propriétés et utilisez l'onglet Signatures numériques pour obtenir plus de détails.

   Cette option n'est disponible que lorsque l'hôte possède le certificat dans le magasin de certificats.

   La vérification doit renvoyer des informations semblables à ce qui suit :

   ```
   # Verification (PowerShell)
   Get-AuthenticodeSignature -FilePath .\ecs-anywhere-install.ps1
   
   SignerCertificate                         Status      Path
   -----------------                         ------      ----
   EXAMPLECERTIFICATE                        Valid       ecs-anywhere-install.ps1
   
   ...
   
   Subject              : CN="Amazon Web Services, Inc.",...
   
   ----
   ```

1. Sur votre serveur sur site ou votre machine virtuelle (VM), exécutez le script d'installation. Spécifiez le nom du cluster, la région, l'ID d'activation de Systems Manager et le code d'activation à partir de la première étape.

   ```
   .\ecs-anywhere-install.ps1 -Region $Region -Cluster $Cluster -ActivationID $ActivationID -ActivationCode $ActivationCode
   ```

1. Vérifiez que l'agent de conteneur Amazon ECS est en cours d'exécution.

   ```
   Get-Service AmazonECS
   
   Status   Name               DisplayName
   ------   ----               -----------
   Running  AmazonECS          Amazon ECS
   ```

Pour enregistrer une instance externe existante auprès d'un cluster différent, procédez comme suit.

**Pour enregistrer une instance externe existante auprès d'un cluster différent**

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

   ```
   Stop-Service AmazonECS
   ```

1. Modifier le paramètre `ECS_CLUSTER` afin que le nom du cluster corresponde au nom du cluster auprès duquel vous souhaitez enregistrer l'instance externe.

   ```
   [Environment]::SetEnvironmentVariable("ECS_CLUSTER", $ECSCluster, [System.EnvironmentVariableTarget]::Machine)
   ```

1. Supprimez les données existantes de l'agent Amazon ECS.

   ```
   Remove-Item -Recurse -Force $env:ProgramData\Amazon\ECS\data\*
   ```

1. Démarrez l'agent de conteneur Amazon ECS.

   ```
   Start-Service AmazonECS
   ```

------

Il AWS CLI peut être utilisé pour créer une activation de Systems Manager avant d'exécuter le script d'installation afin de terminer le processus d'enregistrement de l'instance externe.

# Annulation de l’enregistrement d’une instance externe Amazon ECS
<a name="ecs-anywhere-deregistration"></a>

Nous vous recommandons de désenregistrer l'instance à la fois auprès d'Amazon ECS et une AWS Systems Manager fois que vous en aurez terminé avec l'instance. Après l'annulation de l'enregistrement, l'instance externe n'est plus en mesure d'accepter de nouvelles tâches.

Si des tâches sont en cours d'exécution sur l'instance de conteneur lorsque vous annulez l'enregistrement, ces tâches restent en cours d'exécution jusqu'à ce que vous les arrêtiez d'une autre manière. Toutefois, ces tâches ne sont plus surveillées ou prise en compte par Amazon ECS. Si ces tâches sur votre instance externe font partie d'un Amazon ECS service, le planificateur de service commence une autre copie de cette tâche sur une autre instance de conteneur, si possible.

Après avoir désenregistré l'instance, nettoyez les AWS ressources restantes sur l'instance. Vous pouvez ensuite l’enregistrer dans un nouveau cluster.

## Procédure
<a name="ecs-anywhere-deregistration-procedure"></a>

------
#### [ AWS Management 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 **Constainer instances** (Instances de conteneur), sélectionnez l'ID de l'instance externe pour annuler l'enregistrement. Vous êtes redirigé vers la page de détails de l'instance de conteneur.

1. Sur la *id* page **Instance de conteneur :**, choisissez **Désenregistrer**.

1. Passez en revue le message d'annulation d'enregistrement. Sélectionnez **Deregister from AWS Systems Manager(Annuler l'enregistrement AWS Systems Manager)** pour également annuler l'enregistrement de l'instance externe en tant qu'instance gérée par Systems Manager. Choisissez **Deregister** (Annuler l'enregistrement).
**Note**  
Vous pouvez annuler l'enregistrement de l'instance externe en tant qu'instance gérée par Systems Manager dans la console Systems Manager. Pour plus d’informations, consultez la section [Annuler l’enregistrement des nœuds gérés dans un environnement hybride et multicloud](https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-manager-deregister-hybrid-nodes.html) dans le *Guide de l’utilisateur AWS Systems Manager *.

1. Après avoir désenregistré l'instance, nettoyez les AWS ressources sur votre serveur local ou sur votre machine virtuelle.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------
#### [ AWS CLI ]

1. Vous avez besoin de l'ID d'instance et de l'ARN de l'instance de conteneur pour annuler l'enregistrement de l'instance de conteneur. Si vous n'avez pas ces valeurs, exécutez les commandes suivantes.

   Exécutez la commande suivante pour obtenir l'ID d'instance.

   Vous utilisez l'ID d'instance (`instanceID`) pour obtenir l'ARN de l'instance de conteneur (`containerInstanceARN`).

   ```
   instanceId=$(aws ssm describe-instance-information --region "{{ region }}" | jq ".InstanceInformationList[] |select(.IPAddress==\"{{ IPv4 Address }}\") | .InstanceId" | tr -d'"'
   ```

   Exécutez les commandes suivantes.

   Vous utilisez l'`containerInstanceArn` comme paramètre dans la commande pour annuler l'enregistrement de l'instance (`deregister-container-instance`).

   ```
   instances=$(aws ecs list-container-instances --cluster "{{ cluster }}" --region "{{ region }}" | jq -c '.containerInstanceArns')
   containerInstanceArn=$(aws ecs describe-container-instances --cluster "{{ cluster }}" --region "{{ region }}" --container-instances $instances | jq ".containerInstances[] | select(.ec2InstanceId==\"{{ instanceId }}\") | .containerInstanceArn" | tr -d '"')
   ```

1.  Exécutez la commande suivante pour purger l'instance.

   ```
   aws ecs update-container-instances-state --cluster "{{ cluster }}" --region "{{ region }}" --container-instances "{{ containerInstanceArn }}" --status DRAINING
   ```

1. Une fois le drainage de l'instance de conteneur terminé, exécutez la commande suivante pour annuler son enregistrement.

   ```
   aws ecs deregister-container-instance --cluster "{{ cluster }}" --region "{{ region }}" --container-instance "{{ containerInstanceArn }}"
   ```

1. Exécutez la commande suivante pour supprimer l'instance de conteneur de SSM.

   ```
   aws ssm deregister-managed-instance --region "{{ region }}" --instance-id "{{ instanceId }}"
   ```

1. Après avoir désenregistré l'instance, nettoyez les AWS ressources sur votre serveur local ou sur votre machine virtuelle.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AmazonECS/latest/developerguide/ecs-anywhere-deregistration.html)

------

# Mise à jour de l' AWS Systems Manager agent et de l'agent de conteneur Amazon ECS sur une instance externe
<a name="ecs-anywhere-updates"></a>

Votre serveur ou machine virtuelle sur site doit exécuter à la fois l' AWS Systems Manager agent (agent SSM) et l'agent de conteneur Amazon ECS lors de l'exécution de charges de travail Amazon ECS. AWS publie de nouvelles versions de ces agents lorsque des fonctionnalités sont ajoutées ou mises à jour. Si vos instances externes utilisent une version antérieure de l'un ou l'autre des agents, vous pouvez les mettre à jour à l'aide des procédures suivantes.

## Mise à jour de SSM Agent sur une instance externe
<a name="ecs-anywhere-updates-ssmagent"></a>

AWS Systems Manager vous recommande d'automatiser le processus de mise à jour de l'agent SSM sur vos instances. Ils fournissent plusieurs méthodes pour automatiser les mises à jour. Pour de plus amples informations, veuillez consulter [Automatisation des mises à jour sur SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html) dans le *Guide de l'utilisateur AWS Systems Manager *.

## Mise à jour de l'agent Amazon ECS sur une instance externe
<a name="ecs-anywhere-updates-ecsagent"></a>

Sur vos instances externes, l'agent de conteneur Amazon ECS est mis à jour en mettant à niveau le package `ecs-init`. La mise à jour de l'agent Amazon ECS n'interrompt pas les tâches ou les services en cours d'exécution. Amazon ECS fournit le package `ecs-init` et le fichier SIGNATURE dans un compartiment Amazon S3 dans chaque région. En commençant par `ecs-init` version `1.52.1-1`, Amazon ECS fournit des packages `ecs-init` distincts à utiliser en fonction du système d'exploitation et de l'architecture système que votre instance externe utilise. 

Utilisez le tableau suivant pour déterminer le package `ecs-init` que vous devez télécharger en fonction du système d'exploitation et de l'architecture système que votre instance externe utilise.

**Note**  
Vous pouvez déterminer le système d'exploitation et l'architecture système que votre instance externe utilise à l'aide des commandes suivantes.  

```
cat /etc/os-release
uname -m
```


| Systèmes d'exploitation (architecture) | package ecs-init | 
| --- | --- | 
|  CentOS 7 (x86\$164) CentOS 8 (x86\$164) CentOS Stream 9 (x86\$164) SUSE Enterprise Server 15 (x86\$164) RHEL 7 (x86\$164) RHEL 8 (x86\$164)  |  `amazon-ecs-init-latest.x86_64.rpm`  | 
|  CentOS 7 (aarch64) CentOS 8 (aarch64) CentOS Stream 9 (aarch64) RHEL 7 (aarch64)  |  `amazon-ecs-init-latest.aarch64.rpm`  | 
|  Debian 9 (x86\$164) Debian 10 (x86\$164) Debian 11 (x86\$164) Debian 12 (x86\$164) Ubuntu 18 (x86\$164) Ubuntu 20 (x86\$164) Ubuntu 22 (x86\$164) Ubuntu 24 (x86\$164)  |  `amazon-ecs-init-latest.amd64.deb`  | 
|  Debian 9 (aarch64) Debian 10 (aarch64) Debian 11 (aarch64) Debian 12 (aarch64) Ubuntu 18 (aarch64) Ubuntu 20 (aarch64) Ubuntu 22 (aarch64) Ubuntu 24 (aarch64)  |  `amazon-ecs-init-latest.arm64.deb`  | 

Procédez comme suit pour mettre à jour l'agent Amazon ECS. 

**Pour mettre à jour l'agent Amazon ECS**

1. Confirmez la version de l'agent Amazon ECS que vous exécutez.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```

1. Télécharger le package `ecs-init` pour votre système d'exploitation et votre architecture système. Amazon ECS fournit le fichier de package `ecs-init` dans un compartiment Amazon S3 dans chaque région. Assurez-vous de remplacer l'*<region>*identifiant dans la commande par le nom de la région (par exemple`us-west-2`) dont vous êtes le plus proche géographiquement.

   **amazon-ecs-init-latest.x86\$164 .rpm**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
   ```

   **amazon-ecs-init-latest.aarch64 tr/min**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
   ```

   **amazon-ecs-init-latest.amd64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb
   ```

   **amazon-ecs-init-latest.arm64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb
   ```

1. (Facultatif) Vérification de la validité du fichier de package `ecs-init` à l'aide de la signature PGP.

   1. Téléchargez et installez GnuPG. Pour plus d'informations GNUpg, consultez le site Web de [GnuPG](https://www.gnupg.org). Pour les systèmes Linux, installez `gpg` à l'aide du gestionnaire de package de votre version de Linux.

   1. Extrayez la clé publique PGP Amazon ECS.

      ```
      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
      ```

   1. Téléchargez la signature de package `ecs-init`. La signature est une signature PGP détachées ASCII, stockée dans un fichier portant l'extension `.asc`. Amazon ECS fournit le fichier SIGNATURE dans un compartiment Amazon S3 dans chaque région. Assurez-vous de remplacer l'*<region>*identifiant dans la commande par le nom de la région (par exemple`us-west-2`) dont vous êtes le plus proche géographiquement.

      **amazon-ecs-init-latest.x86\$164 .rpm**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm.asc
      ```

      **amazon-ecs-init-latest.aarch64 tr/min**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm.asc
      ```

      **amazon-ecs-init-latest.amd64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb.asc
      ```

      **amazon-ecs-init-latest.arm64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb.asc
      ```

   1. Vérifiez le fichier de package `ecs-init` à l'aide de la clé.

      **Pour les packages `rpm`**

      ```
      gpg --verify amazon-ecs-init.rpm.asc ./amazon-ecs-init.rpm
      ```

      **Pour les packages `deb`**

      ```
      gpg --verify amazon-ecs-init.deb.asc ./amazon-ecs-init.deb
      ```

      La sortie attendue est la suivante :

      ```
      gpg: Signature made Fri 14 May 2021 09:31:36 PM UTC
      gpg:                using RSA key 50DECCC4710E61AF
      gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: F34C 3DDA E729 26B0 79BE  AEC6 BCE9 D9A4 2D51 784F
           Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB  346F 50DE CCC4 710E 61AF
      ```

1. Installez le package `ecs-init`.

   **Pour le package `rpm` sur CentOS 7, CentOS 8 et RHEL 7**

   ```
   sudo yum install -y ./amazon-ecs-init.rpm
   ```

   **Pour le package `rpm` sur SUSE Enterprise Server 15**

   ```
   sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
   ```

   **Pour le package `deb`**

   ```
   sudo dpkg -i ./amazon-ecs-init.deb
   ```

1. Redémarrez le service `ecs`.

   ```
   sudo systemctl restart ecs
   ```

1. Vérifiez que la version d'agent Amazon ECS a été mise à jour.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```