Article
· Juin 16, 2023 11m de lecture

Tutoriel : Déploiement de votre application dockerisée sur AWS

Aujourd'hui, la plupart des applications sont déployées sur des services de cloud public. Cela présente de nombreux avantages, notamment des économies de ressources humaines et matérielles, la possibilité de se développer rapidement et à moindre coût, une plus grande disponibilité, une plus grande fiabilité, une évolutivité élastique et des options permettant d'améliorer la protection des actifs numériques. L'une des options les plus populaires est AWS. Nous pouvons y déployer nos applications à l'aide de machines virtuelles (service EC2), de conteneurs Docker (service ECS) ou de Kubernetes (service EKS). La première solution, au lieu d'utiliser Docker, emploie une machine virtuelle avec Windows ou Linux où vous pouvez installer votre serveur et déployer votre application. Cependant, la dernière correspond mieux aux applications à grande échelle avec de nombreuses instances Docker en cours d'exécution grâce à l'option auto-scale. La deuxième solution (ECS), en revanche, est le meilleur choix pour les applications de petite et moyenne échelle.Cet article vous montrera comment utiliser, configurer et exécuter des applications Docker sur AWS à l'aide du service ECS.

Obtention d'un exemple d'application Docker à déployer

Pour notre exemple, nous allons utiliser une application Docker prête du catalogue InterSystems Open Exchange. Pour commencer, suivez les étapes suivantes :
1. Assurez-vous que Git est installé.
2. Allez sur https://openexchange.intersystems.com/package/iris-rest-api-template.
3. Clonez/git pull le référentiel dans n'importe quel répertoire local:

 

git <span class="hljs-built_in">clone</span> git@github.com:intersystems-community/iris-rest-api-template.git

Le modèle iris-rest-api-template est une application backend avec une base de données IRIS et une API REST d'IRIS écrite en ObjectScript. Nous allons déployer cette application sur le service AWS ECS.

Obtention de vos références AWS

Pour commencer, vous aurez besoin d'un compte AWS et d'un utilisateur disposant d'une clé d'accès. Pour ce faire, procédez comme suit :
1. Allez sur https://aws.amazon.com/console et cliquez sur le bouton de connexion en haut à droite Sign in :

 

  1. Si vous disposez d'un compte AWS, il vous suffit de vous connecter avec celui-ci. Si vous n'en possédez pas, cliquez sur le bouton Create a new AWS account (créer un nouveau compte AWS). Après avoir complété votre profil, connectez-vous avec vos nouvelles données.
  2. Dans le champ de recherche supérieur, écrivez IAM ("outil de gestion des identités et des accès AWS"), puis cliquez sur IAM :

 

  1. Dans le menu de gauche, cliquez sur Users (utilisateurs) :

 

  1. Cliquez sur le bouton Add users (ajouter des utilisateurs) :

 

  1. Remplissez le champ qui est apparu avec les valeurs mentionnées ci-dessous :
  • Nom d'utilisateur : iris
  • Cochez la case Provide user access to the AWS Management Console (fournir un accès à l'utilisateur à la console de gestion AWS).
  • Choisissez I want to create an IAM user (Je veux créer un utilisateur IAM)
  • Sélectionnez Custom password (mot de passe personnalisé) et saisissez Iris@2023
  • Décochez la case Users must create a new password at next sign-in (Les utilisateurs doivent créer un nouveau mot de passe lors de la prochaine connexion)
  • Cliquez sur le bouton Next (suivant)

      

 

  1. Dans les options de permissions, choisissez Attach policies directly (attacher les politiques directement), sélectionnez AdministratorAccess (accès administrateur) et cliquez sur le bouton Next (suivant) :

 

  1. Dans Review and Create, cliquez sur le bouton Create user (créer un utilisateur) dans le pied de page :

 

  1. Cliquez sur le bouton Download .csv file (télécharger le fichier .csv) pour enregistrer les nouvelles références de l'utilisateur.
  2. Dans la barre Search de recherche supérieure, recherchez IAM et cliquez sur IAM :

 

  1. Dans le menu de gauche, sélectionnez Users (Utilisateurs) :

 

  1. Cliquez sur le lien de l'utilisateur Iris :

 

  1. Cliquez sur l'onglet Security Credentials (références de sécurité) :

 

  1. Allez dans la sous-section Access keys (clés d'accès) (faites défiler l'écran pour la trouver) et cliquez sur le bouton Create access key (créer une clé d'accès) :

 

  1. Sélectionnez Command Line Interface (interface de ligne de commande), cochez la case "I understand the above recommendation and want to proceed to create an access key" (Je comprends la recommandation ci-dessus et je souhaite procéder à la création d'une clé d'accès), puis cliquez sur le bouton Next (suivant) :

 

 
16. Cliquez maintenant sur le bouton Create access key (créer une clé d'accès) :

 

  1. Copiez votre clé d'accès et votre clé d'accès secrète dans un fichier sur votre ordinateur. Utilisez le bouton Télécharger le fichier .csv et enfin cliquez sur le bouton Done (terminé) :

 

Installation de l'outil AWS CLI et y attribuer l'utilisateur créé

L'outil AWS CLI est utilisé pour tirer l'image Docker vers AWS ECR (c'est une sorte de Docker Hub pour les images Docker AWS). Pour l'installer, procédez comme suit :

  1. Allez sur https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install... et choisissez les instructions d'installation correspondant au système d'exploitation de votre ordinateur.

  2. Après l'installation, si vous ne l'avez pas encore fait, suivez les étapes suivantes :
    a. Sur votre terminal, mettez :
     

aws configure

b. Définissez la clé d'accès créée ci-dessus :

 

c. Définissez la clé secrète assemblée précédemment :

 

d. Ne modifiez pas les valeurs restantes. Acceptez simplement les valeurs par défaut :

 

Téléchargement de votre application Docker sur l'ECR AWS

  1. Dans le champ de recherche de la console AWS, recherchez ECR et sélectionnez Elastic Container Registry :

 

  1. Cliquez sur le bouton Get Started (commencer) dans la section Create Repository (créer le référentiel) :

 

  1. Dans Create Repository, mettez les valeurs suivantes :
  • Paramètres de visibilité : Public
  • Nom du référentiel : iris-repo iris-repo
  • Cliquez sur le bouton Create repository (créer le référentiel)

 

 
4. Le référentiel est maintenant créé. Sélectionnez iris-repo et cliquez sur le bouton View push commands (afficher les commandes push) :

 

  1. Copiez la valeur de l'URI du référentiel (deuxième colonne - URI) et stockez-la dans un fichier. Vous en aurez besoin plus tard au cours de cet article.
  2. Exécutez les 4 commandes de la boîte de dialogue dans votre terminal dans le dossier où vous avez cloné le projet Git :

 

a. Première commande : connectez-vous avec l'utilisateur IRIS :

 

b. Deuxième commande : docker build -t iris-repo .

 
    
c. Troisième commande : docker tag iris-repo:latest public.ecr.aws/e7i6j8j1/iris-repo:latest

 

d. Dernière commande : docker push public.ecr.aws/e7i6j8j1/iris-repo:latest

 

Félicitations ! Votre projet Docker est maintenant une image Docker public sur AWS ECR..

Création de l'instance Docker sur AWS ECS pour votre nouvelle image AWS ECR

Voici venue l'heure des dernières étapes. Nous allons créer une instance Docker fonctionnant sur AWS à ce stade. Pour ce faire, procédez comme suit
1. Accédez à la console AWS et recherchez ECS dans la barre de recherche supérieure. Cliquez ensuite sur le lien Elastic Container Service :

 

  1. Dans le menu de gauche, sélectionnez Clusters :

 

  1. Cliquez sur le bouton Create a cluster (créer un cluster) :

 

  1. Sur Create Cluster, ajoutez la valeur iriscluster au champ Cluster name (nom du cluster). Acceptez les valeurs restantes pour les autres champs et cliquez sur le bouton Create (créer) :

 

 

 

  1. Attendez quelques secondes, et vous aurez un nouveau cluster listé :
          

  2. Dans le menu de gauche, sélectionnez Task definitions (définitions de tâches) et allez à Create new task definition (créer une nouvelle définition de tâche) :

 

  1. Dans Configure task definition and containers (configuration de la définition de la tâche et des conteneurs), définissez les valeurs indiquées ci-dessous et cliquez sur le bouton Next (suivant) :
  • Famille de définition des tâches : iristask
  • Détails du conteneur - Nom : irisrepo
  • Détails du conteneur - URI de l'image : URI que vous avez stocké dans un fichier lorsque vous avez créé l'image avec ECR. Dans mon cas, il s'agit de public.ecr.aws/e7i6j8j1/iris-repo
  • Port de Mappage – Port à conteneurs : 52773, Protocole : TCP.

 

 

 

  1. Dans Configure environment, storage, monitoring, and tags (configuration de l'environnement, le stockage, la surveillance et les balises), modifiez la mémoire pour qu'elle soit de 4 Go. Le rôle de la tâche doit être modifié en ecsTaskExecutionRole, et Stockage - Quantité en 30. Pour les autres paramètres, acceptez les valeurs par défaut et cliquez sur le bouton Next (suivant) :

 

 

 

 

 

  1. Dans Review (révision) and Create (créer), cliquez sur le bouton Create :

 

 

 

 

 

 

  1. Cliquez sur le bouton Deploy > Run Task (déployer > exécuter une tâche) en haut de la page :

 

  1. Dans Create (créer), définissez les valeurs mentionnées ci-dessous et cliquez sur le bouton Create :
  • Cluster existant : iriscluster
  • Options de calcul : Type de lancement Launch
  • Type d'application : Task (Tâche)
  1. Développez la section Networking (mise en réseau) et choisissez :
  • Groupe de sécurité : sélectionnez Create a new security group (créer un nouveau groupe de sécurité)
  • Nom du groupe de sécurité : irissec
  • Description du groupe de sécurité : irissec
  • Règles d'entrée - Type : TCP personnalisé, plage de ports : 52773

 

 

 

 

 

  1. Attendez un certain temps pour voir l'état de la création (cliquez sur le bouton pour vérifier l'état actuel) :

 

  1. . Lorsque l'état devient "Running" (en cours d'exécution), cliquez sur le lien Task (tâche) :

 

  1. Copiez l'IP public :

 

  1. Ouvrez votre navigateur et tapez (dans mon cas, il s'agit de 54.226.128.138) :
    http://<public ip>:52773/csp/sys/%25CSP.Portal.Home.zen
  2. Le portail de gestion IRIS (avec l'utilisateur _SYSTEM et le mot de passe SYS) est maintenant actif, et les services REST pour l'application fonctionnent également (authentification de base avec _SYSTEM et SYS) :

 

 

 

Vous avez réussi ! Vous avez maintenant votre IRIS sur AWS. N'OUBLIEZ PAS D'ARRÊTER LA TÂCHE, POUR NE PAS ÊTRE FACTURÉ. Pour ce faire, cliquez sur le bouton Stop :

 
Profitez-en !

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer