AWS Wavelength : déployer un site web public sur EC2 derrière Carrier Gateway


Dans l'article précédent, nous avons découvert le fonctionnement des Wavelength Zones et activé celle de Casablanca. Passons maintenant à la pratique: déployer un site web public dans cette zone. 

Avant de plonger dans le déploiement, il faut d'abord comprendre comment une ressource déployée dans une Wavelength Zone devient accessible depuis internet. c'est le rôle de la Carrier Gateway. 

Qu'est-ce qu'une Carrier Gateway ?

Dans un VPC classique, pour donner un accès public à une instance EC2, on utilise une Internet Gateway. Dans une Wavelength Zone, ce rôle est joué par la Carrier Gateway. Elle permet d'assurer la connectivité entre les ressources de la Wavelength Zone et le réseau de l'opérateur via des Carrier IP


Nous allons déployer dans cet article une instance Amazon EC2 dans la Wavelength Zone de Casablanca (eu-west-3-cmn-wlz-1a), avec une Carrier IP, afin qu'elle soit accessible publiquement depuis le réseau d'Orange. 
Pour se faire, Les étapes sont les suivantes :
  1. Créer la Carrier Gateway
  2. Créer un sous-réseau dans la Wavelength Zone
  3. Associer une table de routage
  4. Lancer l'instance EC2 avec une Carrier IP
  5. Tester l'accès public

1. Créer la Carrier Gateway

Dans la console VPC, section Carrier gateways, cliquez sur Create carrier gateway.


Donnez un nom, par exemple carrier-gw-casablanca, sélectionnez le VPC concerné. et cliquer sur Create carrier gateway.

Cela crée aussi une table de routage, qu on peut associer aux subnets de la Wavelength

2. Créer le sous-réseau dans la Wavelength Zone

Dans la console VPC, accédez à la section Subnets et sélectionnez Create subnet. 
Sélectionnez ensuite le VPC concerné et donnez un nom au sous-réseau, par exemple subnet-wlz-casablanca. Dans Availability Zone, choisissez eu-west-3-cmn-wlz-1a afin de créer le sous-réseau dans la Wavelength Zone de Casablanca. Pour IPv4 CIDR block, indiquez par exemple 10.0.1.0/24, puis sélectionnez Create subnet pour finaliser sa création.


3. Configurer le routage

Une fois le sous-réseau créé, il faut l'associer à la table de routage utilisée pour la Wavelength Zone.o

Pour cela, dans les paramètres dy subnet, dans l'onglet Route table, sélectionnez Edit route table association 


Puis choisissez la table de routage créée précédemment avec la Carrier Gateway.
Cette table contient une route par défaut (0.0.0.0/0) dont la cible est la Carrier Gateway, permettant au sous-réseau de communiquer avec internet.



4. Lancer l'instance EC2 avec une Carrier IP

L’objectif est de lancer l’instance directement dans le subnet de la Wavelength Zone et de lui attribuer une Carrier IP.

Lors de la création de la mchine EC2, il faudra, ,dans Network settings, sélectionner le VPC concerné, puis le subnet subnet-wlz-casablanca. et ensuite activez Auto-assign Carrier IP pour associer une Carrier IP à l’instance.

Pour automatiser la configuration du serveur Web au démarrage de l’instance, je vais utiliser User data dans Advanded details, et je mets le script suivant qui installe Nginx, démarre le service et crée une page Web simple :

#!/bin/bash

yum install -y nginx
systemctl enable nginx
systemctl start nginx

cat <<EOF > /usr/share/nginx/html/index.html
<html>
  <head>
    <title>Wavelength Casablanca</title>
  </head>
  <body>
    <h1>Welcome to CloudedLabs.com</h1>
    <p>Ce serveur est déployé dans la Wavelength Zone de casa blanca.</p>
<img src="https://blogger.googleusercontent.com/img/a/AVvXsEiBIHeZ9p77AOlzXKdJYyFOLhvO7ZH_4oUyaNfSwMR1XggJCTyHbtv0Xkt20qObTHD6avL8iNktLmTiGcsauxOX1bvRmKcE1JzL5TyLDXFyNAVM06uHbAVR_iAEm7WbR6kqJKaZdYS8kyqjnTYjRrjTcS3WeFQeRVH5jPUulYv2VQx0pcYC7Qalt5Ya_vjT
"
alt="AWS Wavelength Zone Casablanca" style="max-width:100%; height:auto;">
</body> </html> EOF

5. Tester l'accès public

Une fois l'instance au statut Running, récupérez sa Carrier IP depuis la console EC2.

En testant avec cette IP dans le navigateur, la page Web configurée via User Data s’affiche, confirmant ainsi que l’instance est accessible depuis Internet via sa Carrier IP.