Hébergement d'Applications Web sur AWS EC2

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 :
- Hébergement d'application web dans un bucket S3
- Hébergement d'application web dans des conteneurs ECS, EKS ou Fargate
- Hébergement d'application web avec Elastic Beanstalk
- 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
- Amazon Security Group (Groupe de Sécurité)
- Amazon EC2
- Amazon Load Balancer (Équilibreur de Charge)
- Amazon Route53
Que Ferons-nous ?
L'architecture de base peut être comme indiqué ci-dessous :

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.

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.

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.

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)

Image-005 : Règles entrantes (inbound) de SG-for-ALB-for-WELR
Étape 4 : Création du 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

É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.
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

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