DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Déployer une application Nodejs sur AWS dans un serveur EC2
    Uncategorized

    Déployer une application Nodejs sur AWS dans un serveur EC2

    février 25, 2023
    Déployer une application Nodejs sur AWS dans un serveur EC2
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Il existe plusieurs façons de déployer votre application Nodejs, que ce soit sur le cloud ou sur site. Cependant, il ne s’agit pas seulement de déployer votre application, mais de la déployer correctement. La sécurité est également un aspect important qui ne doit pas être ignoré, et si vous le faites, l’application ne durera pas longtemps, ce qui signifie qu’il y a de fortes chances qu’elle soit compromise. Par conséquent, nous sommes là pour vous aider dans les étapes de déploiement d’une application Nodejs sur AWS. Nous vous montrerons exactement comment déployer une application Nodejs sur le serveur à l’aide de conteneurs Docker, RDS Amazon Aurora, Nginx avec HTTPS et y accéder à l’aide du nom de domaine.

    Pile d’outils pour déployer une application Nodejs sur AWS

    • Exemple d’application Nodejs: Un exemple d’application Nodejs avec trois API à savoir, statut, insertion et liste. Ces API seront utilisées pour vérifier l’état de l’application, insérer des données dans la base de données et récupérer et afficher les données de la base de données.
    • Instance AWS EC2: Une instance Ubuntu 20.04 LTS Amazon Elastic Compute Cloud (Amazon EC2) sera utilisée pour déployer l’application Nodejs conteneurisée. Nous installerons Docker dans cette instance au-dessus de laquelle les conteneurs seront créés. Nous installerons également un client MySQL sur l’instance. Un client MySQL est requis pour se connecter à l’instance Aurora afin de créer une table requise.
    • AWS RDS Amazon Aurora: Nos données seront stockées dans AWS RDS Amazon Aurora. Nous stockerons des champs simples tels que le nom d’utilisateur, l’identifiant de messagerie et l’âge seront stockés dans l’instance AWS RDS Amazon Aurora.
      Amazon Aurora est une base de données relationnelle compatible MySQL et PostgreSQL disponible sur AWS.
    • Docker: Docker est une plate-forme de conteneurisation pour créer des images Docker et les déployer à l’aide de conteneurs. Nous allons déployer une application Nodejs sur le serveur, Nginx et Certbot en tant que conteneurs Docker.
    • Docker-Compose: Pour faire tourner les conteneurs Nodejs, Nginx et Certbot, nous utiliserons Docker-Compose. Docker-Compose permet de réduire le temps de déploiement et de gestion des conteneurs.
    • Nginx: Cela sera utilisé pour activer HTTPS pour l’exemple d’application Nodejs et rediriger toutes les demandes des utilisateurs vers l’application Nodejs. Il agira comme un proxy inverse pour rediriger les demandes des utilisateurs vers l’application et aider à sécuriser la connexion en fournissant la configuration pour activer SSL/HTTPS.
    • Certbot: Cela nous permettra d’utiliser automatiquement « Let’s Encrypt » pour la validation de domaine et l’émission de certificats SSL.
    • Domaine: À la fin du document, vous pourrez accéder à l’exemple d’application Nodejs en utilisant votre nom de domaine via HTTPS, c’est-à-dire que votre exemple de Nodejs sera sécurisé sur Internet.
    • Facteur: Nous utiliserons PostMan pour tester nos API, c’est-à-dire pour vérifier l’état, insérer des données et répertorier les données de la base de données.

    Comme je l’ai dit, nous allons « déployer une application Nodejs sur le serveur à l’aide de conteneurs Docker, RDS Amazon Aurora, Nginx avec HTTPS, et y accéder en utilisant le nom de domaine ». Commençons par comprendre l’architecture avant de nous salir les mains.

    Architecture

    Architecture

    Le déploiement d’une application Nodejs sur une instance EC2 à l’aide de Docker sera disponible sur le port 3000. Cet exemple d’application Nodejs récupère les données de l’instance RDS Amazon Aurora créée dans le même VPC que celui de l’instance EC2. Une instance de base de données Amazon Aurora sera privée et, par conséquent, accessible au sein du même VPC. L’application Nodejs déployée sur l’instance EC2 est accessible à l’aide de son adresse IP publique sur le port 3000, mais nous ne le ferons pas.

    L’accès aux applications sur des ports non standard n’est pas recommandé, nous aurons donc Nginx qui agira comme un proxy inverse et activera la terminaison SSL. Les utilisateurs essaieront d’accéder à l’application en utilisant le nom de domaine et ces demandes seront transmises à Nginx. Nginx vérifiera la demande et, en fonction de l’API, il redirigera cette demande vers l’application Nodejs. L’application sera également terminée avec le SSL. En conséquence, la communication entre le client et le serveur sera sécurisée et protégée.

    Voici le diagramme d’architecture qui donne la clarté du déploiement d’une application Nodejs sur AWS :

    Tableau de déploiement

    Conditions préalables

    Avant de procéder au déploiement d’une application Nodejs sur AWS, nous partons du principe que vous disposez déjà des prérequis suivants :

    1. Compte AWS
    2. PostMan ou toute autre alternative sur votre machine pour tester les API.
    3. Un domaine enregistré dans votre compte AWS.

    Créer une instance EC2 Ubuntu 20.04 LTS sur AWS

    Accédez à la page de connexion à la console de gestion d’AWS et connectez-vous à votre compte.

    Après vous être connecté avec succès, accédez à la barre de recherche et recherchez « EC2.” Ensuite, cliquez sur le résultat pour visiter le tableau de bord EC2 afin de créer une instance EC2 :

    Barre de recherche

    Ici, cliquez sur « Lancer des instances” pour configurer et créer une instance EC2 :

    Lancer des instances

    Sélectionnez le « Serveur Ubuntu 20.04 LTS » SUIS-JE:

    Serveur Ubuntu

    Je vous recommande de sélectionner t3.small uniquement à des fins de test. Cela aura deux processeurs et 2 Go de RAM. Vous pouvez choisir le type d’instance selon vos besoins et votre choix :

    Type d'instance

    Vous pouvez conserver les paramètres par défaut et continuer. Ici, j’ai sélectionné le VPC par défaut. Si vous le souhaitez, vous pouvez sélectionner votre VPC.

    Note: Ici, je vais créer une instance dans le sous-réseau public :

    Sous-réseau public

    Il est préférable de mettre un espace disque plus important à 30 Go. Le reste peut être la valeur par défaut :

    Défaut

    Attribuez un « Nom » et « Environnement” à toutes les valeurs de votre choix. Vous pouvez même sauter cette étape :

    Sauter

    Autorisez la connexion au port 22 uniquement à partir de votre adresse IP. Si vous l’autorisez de 0.0.0.0/0votre instance autorisera quiconque sur le port 22 :

    Allocation Port 22

    Revoyez la configuration une fois, et cliquez sur « Lancement” si tout va bien pour créer une instance :

    Lancement

    Avant que l’instance ne soit créée, elle a besoin d’une paire de clés. Vous pouvez créer une nouvelle paire de clés ou utiliser celle qui existe déjà. Clique sur le « Lancer des instances” bouton qui lancera la création de l’instance :

    Lancer des instances

    Pour aller dans la console et vérifier votre instance, cliquez sur le « Afficher les instances » bouton:

    Afficher les instances

    Ici, vous pouvez voir que l’instance a été créée et se trouve dans le « Initier » phase. En une minute ou deux, vous pouvez voir votre instance opérationnelle.

    En attendant, créons une instance RDS :

    Instance RDS

    Créer un RDS Aurora avec une instance MySQL sur AWS

    Allez dans la barre de recherche en haut de la page et recherchez « RDS.” Cliquez sur le résultat pour visiter le « Tableau de bord RDS.”

    Tableau de bord RDS

    Sur le tableau de bord RDS, cliquez sur le « Créer une base de données” pour configurer et créer l’instance RDS :

    Créer RDS

    Choisir la « Création facile » méthode, « Amazone Aurore » type de moteur, et le « Développement/Test” Taille de l’instance de base de données comme suit :

    Créer une base de données

    Faites défiler un peu et spécifiez « l’identifiant du cluster DB » comme « ma-base de données Nodejs.” Vous pouvez spécifier n’importe quel nom de votre choix car il s’agit simplement d’un nom donné à l’instance RDS ; Cependant, je suggérerais d’utiliser le même nom afin de ne pas vous tromper en suivant les étapes suivantes.

    Spécifiez également un nom d’utilisateur principal tel que « administrateur», son mot de passe, puis cliquez sur «Créer une base de données.”

    Cela lancera la création de l’instance RDS Amazon Aurora.

    Note: Pour les environnements de production ou de production, vous ne devez pas définir de simples noms d’utilisateur et mots de passe :

    Mot de passe

    Ici, vous pouvez voir que l’instance est dans le « Créer » État. Dans environ 5 à 10 minutes, l’instance devrait être opérationnelle :

    Instance en cours d'exécution

    Prenez quelques notes ici :

    • L’instance RDS Amazon Aurora sera privée par défaut, ce qui signifie que l’instance RDS Amazon Aurora ne sera pas accessible depuis le monde extérieur et ne sera disponible que dans le VPC.
    • L’instance EC2 et l’instance RDS appartiennent au même VPC.
    • L’instance RDS est accessible depuis l’instance EC2.

    Installer les dépendances sur l’instance EC2

    Maintenant, vous pouvez vous connecter à l’instance que nous avons créée. Je ne rentrerai pas dans les détails sur la façon de se connecter à l’instance et je pense que vous le savez déjà.

    Client MySQL

    Nous aurons besoin d’un client MySQL pour nous connecter à l’instance RDS Amazon Aurora et y créer une base de données. Connectez-vous à l’instance EC2 et exécutez les commandes suivantes :

    1. sudo apt update
    2. sudo apt install mysql-client

    Créer un tableau

    Nous aurons besoin d’une table dans notre instance RDS Amazon Aurora pour stocker nos données d’application. Pour créer une table, connectez-vous à l’instance Amazon RDS Aurora à l’aide du client MySQL que nous avons installé sur l’instance EC2 à l’étape précédente.

    Copiez le point de terminaison de la base de données à partir de l’instance Amazon Aurora :

    Copie

    Exécutez le commun suivant avec les valeurs correctes :

    1. mysql -u <user-name> -p<password> -h <host-endpoint>

    Ici, ma commande ressemble à ceci :

    1. mysql -u admin -padmin1234 -h (ici).

    Une fois connecté à l’instance Amazon RDS Aurora, exécutez les commandes suivantes pour créer une table nommée « utilisateurs: »

    show databases;
    use main;
    CREATE TABLE IF NOT EXISTS users(id int NOT NULL AUTO_INCREMENT, username varchar(30), email varchar(255), age int, PRIMARY KEY(id));
    select * from users;

    Reportez-vous à la capture d’écran suivante pour comprendre les exécutions de commande :

    Exécutions de commandes

    Créer un répertoire d’applications

    Maintenant, créons un répertoire où nous stockerons tous nos fichiers de base de code et de configuration :

    1. pwd
    2. cd /home/ubuntu/ 
    3. mkdir Nodejs-docker
    4. cd Nodejs-docker

    Cloner le référentiel de code sur l’instance EC2

    Cloner mon dépôt Github contenant tout le code. Il s’agit d’une étape facultative, j’ai inclus tout le code dans ce document :

    1. pwd
    2. cd /home/ubuntu/ 
    3. clone git
    4. cp /home/ubuntu/DevOps/AWS/Nodejs-docker/* /home/ubuntu/Nodejs-docker

    Note: Ceci est une étape optionnelle. Si vous copiez tous les fichiers du référentiel vers le répertoire de l’application, vous n’avez pas besoin de créer de fichiers dans les étapes suivantes ; cependant, vous devrez toujours apporter les modifications nécessaires.

    Déploiement

    Pourquoi devriez-vous utiliser Docker dans votre instance EC2 ?

    Docker est un outil de conteneurisation utilisé pour regrouper notre application logicielle dans une image pouvant être utilisée pour créer des conteneurs Docker. Docker aide à créer, partager et déployer facilement nos applications.

    La première étape de Dockerization consiste à installer Docker :

    Installer Docker

    1. Vérifiez la version Linux :
      1. cat /etc/issue
    2. Mettez à jour l’index du package apt :
      1. sudo apt-get update
    3. Installez les packages pour permettre à apt d’utiliser un référentiel via HTTPS :
      1. sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
    4. Ajoutez la clé GPG officielle de Docker :
      1. curl -fsSL (ici) | sudo gpg –dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    5. Ensemble…
    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.