

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.

# Gérez les applications de conteneur sur site en configurant Amazon ECS Anywhere avec le kit AWS CDK
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*M. Rahul Sharad Gaikwad, Amazon Web Services*

## Résumé
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) est une extension d'Amazon Elastic Container Service (Amazon ECS). Vous pouvez utiliser ECS Anywhere pour déployer des tâches Amazon ECS natives dans un environnement sur site ou géré par le client. Cette fonctionnalité permet de réduire les coûts et d'atténuer l'orchestration et les opérations complexes des conteneurs locaux. Vous pouvez utiliser ECS Anywhere pour déployer et exécuter des applications de conteneur dans des environnements sur site et dans le cloud. Ainsi, votre équipe n'a plus besoin d'apprendre plusieurs domaines et compétences, ou de gérer elle-même des logiciels complexes.

Ce modèle décrit les étapes de configuration d'ECS Anywhere à l'aide des [piles AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/).

## Conditions préalables et limitations
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Conditions préalables**
+ Un compte AWS actif.
+ Interface de ligne de commande AWS (AWS CLI), installée et configurée. (Voir [Installation, mise à jour et désinstallation de l'interface de ligne de commande AWS dans la](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) documentation de l'interface de ligne de commande AWS.) 
+ AWS CDK Toolkit, installé et configuré. (Consultez le [kit d'outils AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) dans la documentation AWS CDK et suivez les instructions pour installer la version 2 dans le monde entier.)
+ Gestionnaire de packages de nœuds (npm), installé et configuré pour le AWS CDK dans. TypeScript (Voir [Téléchargement et installation de Node.js et de npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) dans la documentation de npm.)

**Limites**
+ Pour connaître les limites et les considérations, consultez la section [Instances externes (Amazon ECS Anywhere)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations) dans la documentation Amazon ECS.

**Versions du produit**
+ Kit d'outils AWS CDK version 2
+ npm version 7.20.3 ou ultérieure
+ Node.js version 16.6.1 ou ultérieure

## Architecture
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Pile technologique cible**
+ AWS CloudFormation
+ AWS CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Architecture cible**

Le schéma suivant illustre une architecture système de haut niveau d'ECS Anywhere configurée à l'aide d'AWS CDK avec TypeScript, telle qu'implémentée par ce modèle.

1. Lorsque vous déployez la pile AWS CDK, elle crée une CloudFormation pile sur AWS.

1. La CloudFormation pile fournit un cluster Amazon ECS et les ressources AWS associées.

1. Pour enregistrer une instance externe auprès d'un cluster Amazon ECS, vous devez installer l'agent AWS Systems Manager (agent SSM) sur votre machine virtuelle (VM) et enregistrer la machine virtuelle en tant qu'instance gérée par AWS Systems Manager. 

1. Vous devez également installer l'agent de conteneur Amazon ECS et Docker sur votre machine virtuelle pour l'enregistrer en tant qu'instance externe auprès du cluster Amazon ECS.

1. Lorsque l'instance externe est enregistrée et configurée avec le cluster Amazon ECS, elle peut exécuter plusieurs conteneurs sur votre machine virtuelle, qui est enregistrée en tant qu'instance externe.

![\[Configuration d'ECS Anywhere à l'aide du kit AWS CDK avec TypeScript.\]](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automatisation et mise à l'échelle**

Le [GitHub référentiel](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) fourni avec ce modèle utilise le CDK AWS comme outil d'infrastructure en tant que code (IaC) pour créer la configuration de cette architecture. AWS CDK vous aide à orchestrer les ressources et à configurer ECS Anywhere.

## Outils
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) est un framework de développement logiciel qui vous aide à définir et à provisionner l'infrastructure du cloud AWS sous forme de code.
+ [L'interface de ligne de commande AWS (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) est un outil open source qui vous permet d'interagir avec les services AWS par le biais de commandes dans votre shell de ligne de commande.

**Code**

Le code source de ce modèle est disponible sur GitHub, dans le référentiel [Amazon ECS Anywhere CDK Samples](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples). Pour cloner et utiliser le référentiel, suivez les instructions de la section suivante.

## Épopées
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Vérifier la configuration d'AWS CDK
<a name="verify-aws-cdk-configuration"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Vérifiez la version du kit AWS CDK. | Vérifiez la version du kit d'outils AWS CDK en exécutant la commande suivante :<pre>cdk --version</pre>Ce modèle nécessite la version 2 d'AWS CDK. Si vous disposez d'une version antérieure du CDK AWS, suivez les instructions de la [documentation du CDK AWS](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) pour la mettre à jour. | DevOps ingénieur | 
| Configurez les informations d'identification AWS. | Pour configurer les informations d'identification, exécutez la `aws configure` commande et suivez les instructions :<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps ingénieur | 

### Démarrez l'environnement AWS CDK
<a name="bootstrap-the-aws-cdk-environment"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Clonez le référentiel de code AWS CDK. | Clonez le référentiel de GitHub code pour ce modèle à l'aide de la commande :<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps ingénieur | 
| Démarrez l'environnement. | Pour déployer le CloudFormation modèle AWS sur le compte et la région AWS que vous souhaitez utiliser, exécutez la commande suivante :<pre>cdk bootstrap <account-number>/<Region></pre>Pour plus d'informations, consultez la section [Bootstrapping](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) dans la documentation AWS CDK. | DevOps ingénieur | 

### Créez et déployez le projet
<a name="build-and-deploy-the-project"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Installez les dépendances des packages et compilez TypeScript les fichiers. | Installez les dépendances du package et compilez les TypeScript fichiers en exécutant les commandes suivantes :<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Ces commandes installent tous les packages du référentiel d'échantillons. Si vous recevez des erreurs concernant des packages manquants, utilisez l'une des commandes suivantes :<pre>$npm ci   </pre>—ou—<pre>$npm install -g @aws-cdk/<package_name></pre>Pour plus d'informations, consultez [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) et [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) dans la documentation de npm. | DevOps ingénieur | 
| Générez le projet. | Pour créer le code du projet, exécutez la commande suivante :<pre>npm run build</pre>Pour plus d'informations sur la création et le déploiement du projet, consultez [Votre première application AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) dans la documentation du CDK AWS. | DevOps ingénieur | 
| Déployez le projet. | Pour déployer le code du projet, exécutez la commande suivante :<pre>cdk deploy</pre> | DevOps ingénieur | 
| Vérifiez la création et la sortie de la pile. | Ouvrez la CloudFormation console AWS à l'[https://console---aws.amazon.com.rproxy.govskope.usadresse /cloudformation****](https://console.aws.amazon.com/cloudformation/) et choisissez la `EcsAnywhereStack` pile. L'onglet **Sorties** affiche les commandes à exécuter sur votre machine virtuelle externe. | DevOps ingénieur | 

### Configuration d'une machine sur site
<a name="set-up-an-on-premises-machine"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Configurez votre machine virtuelle à l'aide de Vagrant. | À des fins de démonstration, vous pouvez utiliser [HashiCorp Vagrant](https://www.vagrantup.com/) pour créer une machine virtuelle. Vagrant est un utilitaire open source permettant de créer et de maintenir des environnements de développement de logiciels virtuels portables. Créez une machine virtuelle Vagrant en exécutant la `vagrant up` commande depuis le répertoire racine dans lequel Vagrantfile est placé. Pour plus d'informations, consultez la [documentation de Vagrant](https://www.vagrantup.com/docs/cli/up). | DevOps ingénieur | 
| Enregistrez votre machine virtuelle en tant qu'instance externe. | 1. Connectez-vous à la machine virtuelle Vagrant à l'aide de la `vagrant ssh` commande. Pour plus d'informations, consultez la [documentation de Vagrant](https://www.vagrantup.com/docs/cli/ssh).2. Créez un code d'activation et un identifiant que vous pouvez utiliser pour enregistrer votre machine virtuelle auprès d'AWS Systems Manager et pour activer votre instance externe. Le résultat de cette commande inclut les `ActivationCode` valeurs `ActivationId` et suivantes : <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Exportez l'ID d'activation et les valeurs du code :<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. Téléchargez le script d'installation sur votre serveur ou machine virtuelle sur site :<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre>5. Exécutez le script d'installation sur votre serveur ou machine virtuelle sur site :<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre>Pour plus d'informations sur la configuration et l'enregistrement de votre machine virtuelle, consultez la section [Enregistrement d'une instance externe dans un cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) dans la documentation Amazon ECS. | DevOps ingénieur | 
| Vérifiez l'état d'ECS Anywhere et de la machine virtuelle externe. | Pour vérifier si votre boîte virtuelle est connectée au plan de contrôle Amazon ECS et en cours d'exécution, utilisez les commandes suivantes :<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps ingénieur | 

### Nettoyage
<a name="clean-up"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Nettoyez et supprimez les ressources. | Après avoir suivi ce schéma, vous devez supprimer les ressources que vous avez créées pour éviter d'encourir des frais supplémentaires. Pour nettoyer, exécutez la commande suivante :<pre>cdk destroy</pre> | DevOps ingénieur | 

## Ressources connexes
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Documentation Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Démo d'Amazon ECS Anywhere](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Exemples d'ateliers Amazon ECS Anywhere](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)