Gérez les applications de conteneur sur site en configurant Amazon ECS Anywhere avec AWS CDK - Recommandations AWS

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 AWS CDK

Créée par le Dr Rahul Sharad Gaikwad () AWS

Référentiel de code : amazon-ecs-anywhere-cdk -samples

Environnement : PoC ou pilote

Technologies : modernisation ; conteneurs et microservices DevOps ; cloud hybride ; infrastructure

Charge de travail : toutes les autres charges de travail

AWSservices : AWS CDK ; Amazon ECS ; AWS Identity and Access Management

Récapitulatif

Amazon ECS Anywhere est une extension d'Amazon Elastic Container Service (AmazonECS). Vous pouvez utiliser ECS Anywhere pour déployer des ECS tâches Amazon 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 à suivre pour configurer ECS Anywhere à l'aide des piles AWSCloud Development Kit (AWSCDK).

Conditions préalables et limitations

Prérequis

Limites

Versions du produit

  • AWSCDKBoîte à outils version 2

  • npm version 7.20.3 ou ultérieure

  • Node.js version 16.6.1 ou ultérieure

Architecture

Pile technologique cible

  • AWS CloudFormation

  • AWS CDK

  • Amazon ECS N'importe où

  • AWSIdentity and Access Management (IAM)

Architecture cible

Le schéma suivant illustre une architecture système de haut niveau de configuration ECS Anywhere utilisant le AWS CDK with TypeScript, telle qu'implémentée par ce modèle.

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

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

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

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

  5. Lorsque l'instance externe est enregistrée et configurée auprès du ECS cluster Amazon, elle peut exécuter plusieurs conteneurs sur votre machine virtuelle, qui est enregistrée en tant qu'instance externe.

ECSConfiguration n'importe où à l'aide du AWS CDK with TypeScript.

Automatisation et mise à l'échelle

Le GitHub référentiel fourni avec ce modèle utilise l'outil IaC (AWSCDKas an infrastructure as code) pour créer la configuration de cette architecture. AWSCDKvous aide à orchestrer les ressources et à configurer ECS Anywhere.

Outils

Code

Le code source de ce modèle est disponible sur GitHub, dans le référentiel d'CDKéchantillons Amazon ECS Anywhere. Pour cloner et utiliser le référentiel, suivez les instructions de la section suivante.

Épopées

TâcheDescriptionCompétences requises

Vérifiez la AWS CDK version.

Vérifiez la version du AWS CDK Toolkit en exécutant la commande suivante :

cdk --version

Ce modèle nécessite AWS CDK la version 2. Si vous disposez d'une version antérieure du AWSCDK, suivez les instructions de la AWSCDKdocumentation pour la mettre à jour.

DevOps ingénieur

Configurez les AWS informations d'identification.

Pour configurer les informations d'identification, exécutez la aws configure commande et suivez les instructions :

$aws configure AWS Access Key ID [None]: <your-access-key-ID> AWS Secret Access Key [None]: <your-secret-access-key> Default region name [None]: <your-Region-name> Default output format [None]:
DevOps ingénieur
TâcheDescriptionCompétences requises

Clonez le référentiel de AWS CDK code.

Clonez le référentiel de GitHub code pour ce modèle à l'aide de la commande :

git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git
DevOps ingénieur

Démarrez l'environnement.

Pour déployer le AWS CloudFormation modèle sur le compte et AWS la région que vous souhaitez utiliser, exécutez la commande suivante :

cdk bootstrap <account-number>/<Region>

Pour plus d'informations, consultez Bootstrapping dans la AWS CDK documentation.

DevOps ingénieur
TâcheDescriptionCompé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 :

$cd amazon-ecs-anywhere-cdk-samples $npm install $npm fund

Ces commandes installent tous les packages du référentiel d'échantillons. 

Important : Si vous recevez des erreurs concernant des packages manquants, utilisez l'une des commandes suivantes :

$npm ci

—ou—

$npm install -g @aws-cdk/<package_name>

Pour plus d'informations, consultez npm ci et 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 :

npm run build

Pour plus d'informations sur la création et le déploiement du projet, consultez Votre première AWS CDK application dans la AWS CDK documentation.

DevOps ingénieur

Déployez le projet.

Pour déployer le code du projet, exécutez la commande suivante :

cdk deploy
DevOps ingénieur

Vérifiez la création et la sortie de la pile.

Ouvrez la AWS CloudFormation console à l'adresse https://console.aws.amazon.com/cloudformation, puis choisissez la EcsAnywhereStack pile. L'onglet Sorties affiche les commandes à exécuter sur votre machine virtuelle externe.

DevOps ingénieur
TâcheDescriptionCompétences requises

Configurez votre machine virtuelle à l'aide de Vagrant.

À des fins de démonstration, vous pouvez utiliser HashiCorp Vagrant 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.

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.

2. Créez un code d'activation et un identifiant que vous pouvez utiliser pour enregistrer votre machine virtuelle auprès de AWS Systems Manager et pour activer votre instance externe. Le résultat de cette commande inclut les ActivationCode valeurs ActivationId et suivantes : 

aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json

3. Exportez l'ID d'activation et les valeurs du code :

export ACTIVATION_ID=<activation-ID> export ACTIVATION_CODE=<activation-code>

4. Téléchargez le script d'installation sur votre serveur ou machine virtuelle sur site :

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

5. Exécutez le script d'installation sur votre serveur ou machine virtuelle sur site :

sudo ./ecs-anywhere-install.sh \ --cluster test-ecs-anywhere \ --activation-id $ACTIVATION_ID \ --activation-code $ACTIVATION_CODE \ --region <Region>

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 dans la ECS documentation Amazon.

DevOps ingénieur

Vérifiez l'état de ECS Anywhere et de la machine virtuelle externe.

Pour vérifier si votre boîte virtuelle est connectée au plan de ECS contrôle Amazon et fonctionne, utilisez les commandes suivantes :

aws ssm describe-instance-information aws ecs list-container-instances --cluster $CLUSTER_NAME
DevOps ingénieur
TâcheDescriptionCompé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 :

cdk destroy
DevOps ingénieur

Ressources connexes