Déployer une application sur AWS avec Elastic Beanstalk

Le besoin des entreprises de réduire les coûts liés à leurs applications et de gagner en agilité renforce la nécessité de dis­poser des meilleures solutions de déploiements et d’hébergement de ces applications. C’est pourquoi de nombreuses entreprises adoptent aujourd’hui le cloud afin de fournir à leur client les meilleurs services tout en concentrant leurs efforts sur les aspects les plus importants de la gestion de leurs activités.

Dans le tutoriel précédent, je vous ai présenté comment développer une application de tableau de bord avec Dash. Aujourd’hui je présenterai comment la déployer sur AWS.

Qu’est-ce que AWS?

AWS pour Amazon Web Service désigne un ensemble de services de cloud computing développé par le géant américain Amazon. En effet, AWS met à la disposition des utilisateurs des  ressources informatiques à la demande via internet et facturées selon l’utilisation. AWS regroupe plus de 100 services répartis en diverses catégories telles que le stockage cloud, la puissance de calcul, l’analyse de données ou même l’intelligence artificielle [1]. Certains services comme EC2, Elastic Beanstalk et CodeCommit sont important à comprendre pour la suite de ce tutoriel

 EC2

Amazon Elastic Compute Cloud ou EC2 est un service proposé par Amazon permettant aux utilisateurs de louer des serveurs sur lesquels ils peuvent exécuter leurs propres applications.  [2]

Elastic Beanstalk

Il s’agit d’une interface simplifiée qui vous aide à créer vos serveurs Amazon EC2, sans que vous ayez à vous préoccuper des détails.

Elastic Beanstalk gère automatiquement les étapes du déploiement que sont la création de la version de plateforme prise en charge qui a été sélectionnée, l’allocation d’une ou plusieurs ressources AWS, telles que des instances Amazon EC2 pour l’exécution de l’application, l’équilibrage des charges et le dimensionnement de la surveillance de l’état de l’application. [3]

CodeCommit

CodeCommit est un service de contrôle des versions géré qui héberge des référentiels Git privés dans le cloud AWS. Il fonctionne exactement comme Git et permet non seulement le travail collaboratif sur du code mais aussi il permet de pousser uniquement les dernières modifications locales de ce code vers AWS. [4]

Etape 0 : Préréquis

Vous devez :

  • Créer un compte AWS gratuit: 
    • NB: AWS nécessite une carte de crédit pour l’enregistrement. Ce tutoriel est réalisé sur l’offre gratuite, donc vous ne serez pas débité. 
  • En tant que super admin, créer un utilisateur via le service IAM( Identity and Access Management) avec les autorisations suivantes:
    • Administratoracces 
    • AwsCodeCommitPowerUser
  • Ensuite Générer des informations d’identifications Git HTTPS à AWS CodeCommit
    • Nb: ce tutoriel peut être réalisé en super admin mais les bonnes pratiques de AWS conseillent l’utilisation de users IAM.
  • Enin Installer les interfaces de ligne de commande AWS et Elastic Beanstalk :
pip3 install awscli  
pip3 install awsebcli

Création d’un utilisateur avec les autorisations admin et CodeCommit :

Etape 1

Si vous n’avez pas suivi le tuoriel sur la création d’application dash, vous pouvez cloner le code source ici.

Ensuite le fichier de configuration du serveur “index.py” doit être renommé en “application.py” car par défaut Elastic Beanstalk recherche un fichier nommé application.py pour lancer notre application.

De plus, notre instance Dash doit se trouver dans une variable nommée application que recherche également Elastic beanstalk

le début du fichier application.py se présente désormais comme suit :

import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import callbacks
from pages.header import navbar
from pages.layout_dashboard import layout_dashboard
from pages.layout_acceuil import layout_acceuil
from app import app
application = app.server

Etape 2 : Initialisation de Elastic Beanstalk

Se placer dans le dossier du projet et exécuter la commande suivante pour connecter le nouvel utilisateur créé à votre compte AWS

aws configure

Vous devez  renseigner les identifiants générés dans le csv téléchargé lors de la création de l’utilisateur(key id et accès) ainsi que la région et le format de sortie

Ensuite vous devez initialiser Elastic Beanstalk avec la commande suivante :

eb int

Vous devez maintenant renseigner plusieur informations:

  • Le choix de la région : 17 -> eu-west-3 pour la région de Paris.
  • Le nom de l’application
  • Le type d’environnement : python dans notre cas
  • La Configuration SSH pour la connexion à votre instance Ec2( Non dans cas car pas utile pour ce tutoriel)
  • L’ utilisation de CodeCommit en renseignant le nom du dépôt et de la branche si vous choisissez Oui
Initialisation d’Elastic Beanstalk

          Etape 3: création de l’environnement Elastic Beanstalk

après avoir initialisé Elastic Beanstalk, place maintenant à la création de notre application qui tournera sur une instance de EC2 en lançant la commande suivante:

eb create

cette commande demandera à l’utilisateur de renseigner diverses infos telles que:

  • Le nom de l’environnement
  • Le type d’équilibrage de charge( classique dans notre cas)
  • Le nom de l’application
  • Le DNS qui sera utilisé pour l’application (“ awsdashtuto” dans notre cas)
Création de l’environnement Elastic Beanstalk
Création de l’environnement Elastic Beanstalk

Etape 4 :

Lancer la commande suivante pour ouvrir l’application dans votre navigateur :

eb open
Application

C’est fait, vous venez de déployer votre application sur aws!

Pour consulter vos logs et la santé de votre application vous pouvez utiliser les commandes suivantes:

eb health

et

eb logs

Une fois votre application déployée, vous pouvez la supprimer afin de ne pas dépasser le temps de gratuité offert par AWS(1 an) par oubli.Pour ce faire, lançez simplement la commande :

eb terminate --all

Cette commande supprimera toutes vos applications en cours d’exécution.

Conclusion

Nous avons découvert dans ce tutoriel Elastic Beanstalk, CodeCommit et comment déployer une application Dash grâce à ces services sur AWS. Nous avons gagné beaucoup de temps pour le déploiement de l’infrastructure de notre application grâce à seulement 3 commandes : eb init, eb create et eb open qui montrent toute la puissance d’Elastic Beanstalk sans quoi on aurait eu nous même à dimensionner nos instances EC2 à la main.

Laisser un commentaire

Votre adresse email ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Voulez-vous en savoir plus sur la Data Science ?

Inscrivez-vous alors à notre newsletter et vous receverez gratuitement nos derniers articles et actualités ! 
S'INSCRIRE MAINTENANT 
close-link