Cloud Computing
7 min de lecture

Hébergement d'Applications Web sur AWS EC2

Guide complet pour l'hébergement d'applications web sur AWS EC2, l'installation d'Apache, la configuration FTP, l'intégration Load Balancer et Route53.

N
Necmettin Demir
21 juillet 2023
Chargement...

Hébergement d'Applications Web sur AWS EC2

AWS EC2 Web Hosting
AWS EC2 Web Hosting
Il existe de nombreuses façons d'héberger une application web dans l'environnement AWS. Votre application web peut être un site web traditionnel ou un projet API. Les deux types seront appelés "application web" (web app) par la suite.

Introduction

Il existe de nombreuses façons d'héberger une application web dans l'environnement AWS. Votre application web peut être un site web traditionnel ou un projet API. Les deux types seront appelés "application web" (web app) par la suite. Voici quelques méthodes que nous pouvons appliquer pour héberger une application web sur AWS :
  1. Hébergement d'application web dans un bucket S3
  2. Hébergement d'application web dans des conteneurs ECS, EKS ou Fargate
  3. Hébergement d'application web avec Elastic Beanstalk
  4. Hébergement d'application web directement sur EC2
[!NOTE] Bien que les options 1, 2 et 3 soient des approches modernes pour héberger du contenu sur AWS, dans cet article, nous nous adressons aux personnes qui ont beaucoup travaillé sur d'anciens systèmes mais qui souhaitent passer à l'environnement AWS avec leurs anciennes habitudes !
Notre objectif est de présenter rapidement le flux de Route53, Application Load Balancer, Security Groups, etc. avec EC2.
Dans cet article, nous examinerons la dernière option. Il existe de nombreux systèmes d'exploitation utilisables sur EC2. Nous utiliserons Linux avec la configuration la plus basse accessible dans le "Free Tier" (Niveau Gratuit). Pour plus d'informations sur AWS Free Tier, cliquez ici.
Amazon EC2 peut être utilisé directement pour héberger une application web. Dans cet article, toutes les étapes nécessaires pour accomplir une telle tâche sont expliquées étape par étape.

Contexte

Que Ferons-nous ?

L'architecture de base peut être comme indiqué ci-dessous :
Architecture du Système
Architecture du Système
Image-001 : Vue principale du système
Supposons que votre objectif est d'héberger votre site web sur une machine AWS EC2. Pour la simplicité de l'application, une page HTML statique sera publiée sur le serveur web Apache sur AWS EC2. Nous rendrons possible l'accès au dossier www par défaut d'Apache via FTP. En plus de ces exigences, un nom de domaine sera dirigé vers cette application web via AWS Route53.
Pour concevoir l'architecture montrée dans l'Image-001, nous créerons les éléments AWS dans l'ordre des numéros dans les cercles gris.
Supposons que notre nom de domaine est WELR.com et que nous voulons héberger ses éléments fonctionnels sur EC2.
Toutes les étapes pour héberger le contenu de WELR.com sur un AWS EC2 peuvent être les suivantes.

Étape 1 : Création d'un Groupe de Sécurité sur AWS

Ce groupe de sécurité sera utilisé pour EC2. Un groupe de sécurité peut être considéré comme le pare-feu de l'objet auquel il est attaché.
Configurez tous les ports entrants (inbound) comme indiqué ci-dessous :
  • 20-21 (FTP)
  • 1024-1048 (FTP), optionnel
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP personnalisé), optionnel
  • 443 (HTTPS)
Le rectangle rouge dans l'image ci-dessous est important pour montrer le flux de l'ALB vers EC2 via les groupes de sécurité respectifs.
Règles Entrantes
Règles Entrantes
Image-002 : Règles entrantes (inbound) de SG-for-EC2-for-WELR

Étape 2 : Création d'une Instance EC2

Créer une instance EC2 sur AWS est une opération simple. Le bouton Connect (Connecter) dans le coin supérieur droit de l'image ci-dessous sera utilisé pour se connecter à EC2.
Création EC2
Création EC2
Image-003 : EC2-for-WELR
Installez toutes les exigences sur EC2-for-WELR.
Tout d'abord, vous devez vous connecter à la ligne de commande EC2. Il existe plusieurs façons de le faire, mais la plus simple est de se connecter directement via la console web AWS.
Connexion EC2
Connexion EC2
Image-004 : Connexion à EC2-for-WELR
Après avoir appuyé sur le bouton Connect, vous serez connecté à la ligne de commande EC2 en tant que ec2-user.

2.1- Installation d'Apache

TEXT
> sudo s
> yum update -
> yum install -y httpd.x86_6
> systemctl start httpd.servic
> systemctl enable httpd.service
Tous les fichiers de l'application web seront dans le dossier web par défaut d'Apache.
Le dossier web par défaut pour Apache est le répertoire /var/www/html.

2.2 - Installation FTP

TEXT
> sudo su
> yum update -y
> yum install vsftpd
		
> sudo vi /etc/vsftpd/vsftpd.conf
Vous devez apporter quelques modifications dans le fichier de configuration FTP comme indiqué ci-dessous.
Toutes ces lignes doivent être présentes dans le fichier de configuration comme indiqué. Pour utiliser l'éditeur vi, vous devez savoir comment l'utiliser. Si c'est la première fois que vous utilisez l'éditeur vi, consultez ici.
TEXT
# supprimez les # de toutes les lignes ci-dessous
anonymous_enable=NO
#
local_enable=YES
#
write_enable=YES
#
local_umask=022
#
dirmessage_enable=YES
#
xferlog_enable=YES
#
connect_from_port_20=YES
#
chroot_local_user=YES
write_enable=YES
allow_writeable_chroot=YES
#
listen=NO
#
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=1024
pasv_max_port=1048
pasv_address=18.170.116.xxx
Pour redémarrer le service vsftpd, l'une des commandes suivantes peut être utilisée :
TEXT
> /etc/init.d/vsftpd restart
OU :
TEXT
> systemctl restart vsftpd
Pour ajouter un utilisateur pour FTP, faites ce qui suit sur la ligne de commande EC2 :
TEXT
> adduser awsftpuse
> passwd awsftpuse
> usermod -a -G root awsftpuser
> usermod -d /var/www/html/ awsftpuse
> chown -R awsftpuser /var/www/htm
> systemctl restart vsftpd

2.3 - Installation du Client FTP

Par exemple, le client Filezilla sur Windows.
Après avoir créé tous les éléments sur AWS, essayez de vous connecter avec un client FTP et de télécharger un fichier. Vous devriez pouvoir télécharger le fichier index.html dans le dossier web FTP sur EC2.

Étape 3 : Création d'un Groupe de Sécurité pour l'ALB

Configurez tous les ports entrants (inbound) comme indiqué ci-dessous :
  • 20-21 (FTP)
  • 1024-1048 (FTP), optionnel
  • 22 (SSH)
  • 80 (HTTP)
  • 8080 (HTTP personnalisé), optionnel
  • 443 (HTTPS)
Règles Entrantes ALB
Règles Entrantes ALB
Image-005 : Règles entrantes (inbound) de SG-for-ALB-for-WELR

Étape 4 : Création du Target Group

Target Group
Target Group
Image-006 : Target Group TG-for-WELR

Étape 5 : Création de l'Application Load Balancer

Cet ALB doit avoir le target group TG-for-WELR.
Le Target group (Groupe cible) est un groupe d'EC2. Cependant, pour l'instant, il ne contient que l'instance EC2-for-WELR.
De plus, cet ALB doit avoir le groupe de sécurité SG-for-ALB-for-WELR.
Image-007 : Application Load Balancer ALB-for-WELR
Création ALB
Création ALB

Étape 6 : Permissions Entre Groupes de Sécurité

Ajoutez des règles entrantes (inbound) à SG-for-EC2-for-WELR pour accepter toutes les requêtes TCP provenant de SG-for-ALB-for-WELR.
Flux Entre Groupes de Sécurité
Flux Entre Groupes de Sécurité
Image-008 : Autoriser le flux de l'ALB vers EC2 via les groupes de sécurité

Étape 7 : Création d'une Zone Hébergée Route53

Elle doit avoir quatre enregistrements comme suit :
  • NS et SOA sont créés automatiquement
  • Créez un enregistrement A. Comme montré dans l'image ci-dessous
  • Créez un enregistrement CNAME - pour welr.com
Image-009 - Enregistrements Route53
Enregistrements Route53
Enregistrements Route53
Les adresses NS peuvent être utilisées dans l'interface de gestion du nom de domaine pour diriger le nom de domaine vers l'application web que vous hébergez sur EC2 Apache.

Conclusion

Comme mentionné au début de cet article, il existe de nombreuses façons d'héberger une application web dans n'importe quel environnement cloud. Nous avons effectué quelques examens sur AWS EC2. Comme on peut le voir, nous supposons que les éléments fonctionnels de l'application web sont déployés manuellement sur Apache via FTP. Cependant, cette opération peut être automatisée avec n'importe quel outil CI/CD en utilisant des commandes FTP.
L'objectif principal de cet article est de montrer comment une application web est hébergée dans l'environnement AWS sur EC2 derrière Route53 et les Load Balancers (Équilibreurs de Charge).

Ce que nous avons appris :

  • Création et configuration d'instance EC2
  • Installation du serveur web Apache
  • Configuration FTP et ajout d'utilisateur
  • Configuration des Security Groups
  • Configuration de l'Application Load Balancer
  • Redirection de domaine avec Route53

☁️ Services de Cloud Computing

Nous offrons des services de conception d'infrastructure, migration, gestion et optimisation sur les plateformes AWS, Azure et Google Cloud.

Découvrir Notre Service

📞 Contactez-nous

Contactez notre équipe pour des informations détaillées sur nos solutions AWS et cloud computing.

Contact