Vous êtes sur la page 1sur 82

Projet de Fin d’Etudes

Spécialité : Génie Télécommunications et Réseaux

Réalisé au sein de : DXT

Période de stage : Du 10/03/2021 Au 01/07/2021

Etude du cloud AWS et développement de


l’offre du service cloud de l’entreprise DXT
Encadré par :
Réalisé par :

EL AMRANI Samira Mr. LAKHAL Hassan


Mr. MAZER Said

Présenté le 05/07/2021

Devant le Jury composé de

o BALBOUL Younes
o MAHFOUDI Mohammed
o EL GHAZI Mohammed
o FATTAH Mohammed

Page 1 sur 82

Année universitaire : 2020/2021


Page 2 sur 82
Dédicace
Avec tout respect et amour je dédie ce travail :

A mes parents Hassan El amrani et Drissiya Abouyaala,

Permettez-moi de vous exprimer mon grand amour, mon attachement et ma plus haute
considération pour votre personne. Vous n’avez jamais cessé de déployer tous vos efforts
afin de subvenir à mes besoins, m’encourager et m’aider à choisir le chemin de la Réussite.
Que ce modeste travail, soit l’expression des vœux que vous n’avez cessé de formuler dans
vos prières. Que Dieu vous préserve santé et longue vie.

A mes chères copines Fatima Kiouach, Imane Akhrif et Nihal El hassouni

Vous trouverez ici le témoignage d’une fidélité et d’une amitié infinie. Aucune dédicace ne
saurait exprimer l’amour, l’estime, le dévouement et le respect que j’ai toujours eu pour
vous.

Aux familles EL amrani, Abouyaala et Dahmani

Les expressions me trahissent, et ne peuvent exprimer mon attachement, mon


amour et ma gratitude pour vous. Qu’il me soit permis de vous exprimer à travers ce travail,
mon respect et ma vive reconnaissance. Que Dieu le Tout Puissant vous garde et vous
procure santé et bonheur.

A mes professeurs,
Leur générosité et leur soutien m’oblige de leurs témoigner mon profond respect et ma
loyale considération.

Et à toute personne qui a contribué de près ou de loin pour que ce projet soit possible, on
veut dit merci.

SAMIRA EL AMRANI

Page 3 sur 82
Remerciement
Avant tout développement de cette expérience professionnelle il apparait opportun de
commencer ce rapport de stage par des remerciements, à ceux qui m’ont beaucoup appris en
si peu de temps, et ceux qui eurent la gentillesse d’en faire un moment très profitable.

Tous mes remerciements à la société DXT de m’avoir accueilli dans des conditions
favorables pendant toute la durée de mon stage.

Tout d’abord, je voudrais remercier mon encadrant de stage Mr. LAKHAL Hassan pour la
qualité de son suivi durant toute la période de mon stage. Je le remercie d’avoir accepté de
m’accueillir dans sa société, ainsi pour tout le temps qu’il m’a consacré, ses directives
précieuses m’ont énormément aidé à bien réaliser mon projet.

J’adresse mes sincères remerciements aux membres du jury qui m’ont honoré en acceptant
de juger mon travail et de l’enrichir de leurs remarques et critiques.

Au président de jury Mohammed FATTAH


Je voulais vous remercier pour l’honneur que vous m’avez fait en acceptant de présider ce
jury.

A mon professeur, et rapporteur BALBOUL Younes


Votre présence au sein de ce jury constitue pour moi un grand honneur. Je vous remercie
pour vos efforts tout au long de ces années. Qu’il me soit permis de vous présenter à travers
ce travail le témoignage de mon grand respect.

A mon professeur et encadrant MAZER SAID


Je suis très reconnaissante envers vous de bien vouloir porter intérêt à ce travail. Je vous
remercie pour votre patience, votre disponibilité, vos encouragements et vos précieux
conseils dans la réalisation de ce travail. Veuillez croire à l’expression de ma profonde
reconnaissance.

Au professeur EL GHAZI Mohammed et à mon examinateur MAHFOUDI Mohammed


Veuillez trouverez ici l’expression de mes sincères remerciements.

MERCI !

Page 4 sur 82
Résumé
Le présent travail a été élaboré au sein de la société DXT dans le cadre de projet de fin d’études
à l’école Nationale des Sciences Appliquées de Fès, Pour l’obtention du diplôme d’ingénieur
d’état en Génie des Télécommunications et Réseaux.

Le but principal de ce projet consiste à réaliser une étude sur les offres cloud au niveau
international et d’explorer et mettre en application particulièrement les services et
fonctionnalités du cloud du leader mondial en la matière Amazon (AWS).

Afin de réaliser ce projet, nous avons étudié la notion du cloud computing en donnant ses
caractéristiques, ses bénéfices ainsi que ses enjeux. Ensuite nous avons passé pour étudier
les différents services d’AWS qui est la plateforme cloud la plus complète et la plus largement
adoptée au monde.

Dans la partie pratique, nous avons déployé une application web sans serveur en utilisant des
services de la plateforme AWS.

Mots clés : Cloud Computing, AWS, Fonctionnalités, Elasticité, Agilité, Facturation.

Page 5 sur 82
Abstract

This work was carried out at DXT company as part of our end of studies project at the
National School of Applied Sciences of Fez, with the purpose of obtaining the diploma of state
engineer in Telecommunications and Networks Engineering.

The main goal of this project is to carry out a study on cloud offerings at the international level
and to explore and apply in particular the cloud services and functionalities of the world leader
in the field Amazon (AWS).

In order to carry out this project, we studied the notion of cloud computing by giving its
characteristics, its benefits as well as its challenges. Then we moved on to study the different
services of AWS, which is the most comprehensive and widely adopted cloud platform in the
world.

In the practical part, we deployed a serverless web application using services from the AWS
platform.

Keywords: Cloud Computing, AWS, Features, Elasticity, Agility, Billing.

Page 6 sur 82
Table de matières
Dédicace .................................................................................................................................................. 3
Remerciement.......................................................................................................................................... 4
Résumé .................................................................................................................................................... 5
Abstract ................................................................................................................................................... 6
Table de matières..................................................................................................................................... 7
Liste des figures....................................................................................................................................... 9
Liste des tables ...................................................................................................................................... 11
Liste des abréviations ............................................................................................................................ 12
Introduction générale............................................................................................................................. 13
Chapitre I : Présentation de l’organigramme d’accueil et le contexte du projet .................................... 14
I) Introduction.................................................................................................................................... 15
II) Organigramme d’accueil .............................................................................................................. 15
1. Présentation de la société DXT ................................................................................................. 15
3. Les partenaires de la société DXT ............................................................................................. 15
III) Contexte du projet ....................................................................................................................... 15
1. Cadre du projet et problématique .............................................................................................. 15
2. Objectifs du projet ..................................................................................................................... 16
IV) Conclusion .................................................................................................................................. 16
Chapitre II : Cloud Computing : Etat de l’art ......................................................................................... 17
I) Introduction.................................................................................................................................... 18
II) Le cloud computing : définitions et caractéristiques .................................................................... 18
1. Définitions ................................................................................................................................. 18
2. Historique du cloud computing ................................................................................................. 19
3. Les caractéristiques du cloud computing .................................................................................. 20
4. Bénéfices du cloud computing .................................................................................................. 20
5. Les défis du cloud...................................................................................................................... 21
III) Les services du cloud computing et ses modèles de déploiement ............................................... 22
1. Les différents services du cloud ................................................................................................ 22
2. Les modèles de déploiement du cloud....................................................................................... 24
IV) Benchmark des fournisseurs du cloud ........................................................................................ 24
V) La sécurité du cloud au Maroc ..................................................................................................... 28
VI) Les procédures de migration vers le cloud ................................................................................. 28
VII) Conclusion ................................................................................................................................. 30
Chapitre III : Etude des services et architectures du Cloud AWS .......................................................... 31
I) Introduction................................................................................................................................... 32
II) AWS et ses catégories de services................................................................................................ 32

Page 7 sur 82
1. Qu’est-ce qu’un service Web ?.................................................................................................. 32
2. C’est quoi AWS......................................................................................................................... 32
3. l’interaction avec AWS ............................................................................................................. 33
4. Les catégories de services AWS................................................................................................ 33
III) Les services d’AWS .................................................................................................................... 34
1. Amazon VPC............................................................................................................................. 34
2. EC2 ............................................................................................................................................ 36
3. API Gateway ............................................................................................................................. 38
4. S3 ............................................................................................................................................... 39
5. Le service lambda ...................................................................................................................... 40
6. Les services de base de données dans le cloud AWS ................................................................ 41
7. Amazon SNS ............................................................................................................................. 43
8. Amazon route 53 ....................................................................................................................... 44
9. Amazon IAM ............................................................................................................................. 45
IV) Modalités de facturation par fonctionnalité ................................................................................ 45
1. Comment payer pour AWS ? .................................................................................................... 45
2. Exemple de facturation pour le service EC2 ............................................................................. 46
3. Exemple de facturation pour le service Amazon Aurora .......................................................... 47
V) Les services AWS nécessaires pour la mise en place d’un serveur Exchange sur le cloud AWS 47
VI) Conclusion .................................................................................................................................. 49
Chapitre IV : Cas d’applications du cloud AWS .................................................................................... 49
I) Introduction.................................................................................................................................... 51
1. Présentation ............................................................................................................................... 51
2. Architecture de l’application ..................................................................................................... 51
3. Connexion à la console Management AWS .............................................................................. 52
3. Création de GET API Gateway ................................................................................................. 53
4. Création de la fonction lambda.................................................................................................. 59
5. Connexion de la fonction lambda à l’API ................................................................................. 64
6. Le service AWS DynamoDB .................................................................................................... 66
7. Obtention les données de la table DynamoDB par la fonction lambda ..................................... 68
8. Test de la fonction lambda depuis API...................................................................................... 71
9. Création du compartiment S3 .................................................................................................... 74
10. Test d’hébergement de site statique......................................................................................... 77
10. Test de fonctionnement de l’application ................................................................................. 79
III. Conclusion ................................................................................................................................... 80
Conclusion générale .............................................................................................................................. 81
Webographie ......................................................................................................................................... 82

Page 8 sur 82
Liste des figures
Figure 1 : Logo de la société DXT ........................................................................................................ 15
Figure 2 : Le cloud computing .............................................................................................................. 19
Figure 3: Les niveaux d'interaction entre utilisateur et le cloud ............................................................ 22
Figure 4: Gartner’s Magic Quadrant ..................................................................................................... 25
Figure 5: Tendance des parts de marché 2019 ...................................................................................... 26
Figure 6 : Service web ........................................................................................................................... 32
Figure 7: Les catégories de services AWS ............................................................................................ 33
Figure 8 : les services de la catégorie calcul ......................................................................................... 34
Figure 9 : Exemple de VPC avec un sous-réseau public ....................................................................... 35
Figure 10 : Exemple de VPC avec des sous-réseaux publics et privés ................................................. 35
Figure 11 : Exemple de VPC isolé de l’internet .................................................................................... 36
Figure 12 : AWS Lambda ..................................................................................................................... 41
Figure 13 : Les différents types de base de données ............................................................................. 42
Figure 14 : Facturation d’EC2 ............................................................................................................... 47
Figure 15 : Facturation du service Aurora ............................................................................................. 47
Figure 16 : Architecture du serveur Exchange sur le cloud AWS......................................................... 48
Figure 17 : L’architecture de l’application à déployer .......................................................................... 51
Figure 18 : AWS Console Managment ................................................................................................. 52
Figure 19 : les services AWS ................................................................................................................ 53
Figure 20 : Types d'APIs ....................................................................................................................... 53
Figure 21 : Création de l'API ................................................................................................................. 54
Figure 22: Création d'une ressource d'API ............................................................................................ 54
Figure 23: Création d'une méthode ....................................................................................................... 55
Figure 24: le point d'intégration de la méthode ..................................................................................... 55
Figure 25: Exécution de la méthode ...................................................................................................... 56
Figure 26: Générer un modèle de mappage ........................................................................................... 56
Figure 27: modèle de mappage.............................................................................................................. 56
Figure 28: Déploiement de l'API ........................................................................................................... 57
Figure 29: Etape de déploiement de l'API ............................................................................................. 57
Figure 30: URL de l'API ....................................................................................................................... 58
Figure 31: Premier test Postman............................................................................................................ 58
Figure 32: Deuxième test Postman ........................................................................................................ 59
Figure 33: AWS Lambda ...................................................................................................................... 59
Figure 34: Fonction lambda .................................................................................................................. 59
Figure 35: Autorisation de la fonction lambda ...................................................................................... 60
Figure 36: Création du rôle IAM ........................................................................................................... 60
Figure 37: Cas d'utilisation du rôle IAM ............................................................................................... 61
Figure 38: Le choix d'autorisations pour la fonction lambda ................................................................ 62
Figure 39: Vérification de rôle IAM ..................................................................................................... 63
Figure 40: L'ajout du rôle a la fonction lambda .................................................................................... 63
Figure 41: Code Json sous la fonction lambda ...................................................................................... 64
Figure 42 : Exécution du code ............................................................................................................... 64
Figure 43: Suppression de modèle de mappage .................................................................................... 65
Figure 44 : Demande d'intégration par la fonction lambda ................................................................... 65
Figure 45: Code de test.......................................................................................................................... 66
Figure 46 :Amazon DynamoDB............................................................................................................ 67
Figure 47 : Création de la table DynamoDB ......................................................................................... 67
Figure 48: Création des éléments de la table ......................................................................................... 67
Figure 49 : L'ajout des données ............................................................................................................. 68
Figure 50 : Table DynamoDB ............................................................................................................... 68
Figure 51: code de la connexion avec DynamoDB ............................................................................... 69

Page 9 sur 82
Figure 52: Evénement de test ................................................................................................................ 69
Figure 53: Résultat du test (Data depuis DynamoDB) .......................................................................... 70
Figure 54: Test avec un autre évènement .............................................................................................. 70
Figure 55 : Résultat du test .................................................................................................................... 71
Figure 56: Ajout de paramètre pour l'API ............................................................................................. 71
Figure 57: Code Json pour l'ajout du paramètre .................................................................................... 72
Figure 58: Test postman sans paramètre ............................................................................................... 72
Figure 59: Test postman avec paramètre ............................................................................................... 73
Figure 60: Page web statique................................................................................................................. 74
Figure 61: Création du compartiment S3 .............................................................................................. 74
Figure 62: Configuration du compartiment ........................................................................................... 75
Figure 63: compartiment crée................................................................................................................ 75
Figure 64: Activation d'hébergement de site web statique .................................................................... 76
Figure 65: URL de site statique hébergé ............................................................................................... 76
Figure 66: chargement des fichiers dans le compartiment S3 ............................................................... 77
Figure 67: chargement des fichiers avec succès .................................................................................... 77
Figure 68: Test d’hébergement de site statique ..................................................................................... 77
Figure 69: Désactivation de tous les ACLs ........................................................................................... 78
Figure 70: Stratégie de compartiment ................................................................................................... 79
Figure 71: Compartiment accessible publiquement .............................................................................. 79
Figure 72: Test de fonctionnement de l'application .............................................................................. 80

Page 10 sur 82
Liste des tables
Tableau 1 : Comparaison entre les différents fournisseur du cloud ...................................................... 27
Tableau 2 : Solutions de migration........................................................................................................ 29

Page 11 sur 82
Liste des abréviations
A I

AWS : Amazon Web Services IAM : Identity and Access


API : Application Programming Interface Management
ARN : Amazon Resource Name IaaS : Insfrastructure as a Service
IoT : Internet Of Things
IP : Internet Protocol

C P

CIDR : Classless Inter-Domain PaaS : Platform as a Service


Routing
CPS : cloud service provider

D R

DNS : Domain Name System RDS : Amazon Relational


DGSSI : Direction Générale de la Database Service
Sécurité des Systèmes
d’Information

E S

EC2 : Elastic Compute Cloud SaaS : Software as a Service


S3 : Simple Storage Service
SNS : Simple Notification Service
SDK : Software Development Kit
G

GCP : Google Cloud Platform V

H VPC : Virtual Private Cloud


VPN : Virtual Private Network
HTTP : HyperText Transfer Protocol

Page 12 sur 82
Introduction générale
Le Cloud Computing est aujourd’hui une composante « mainstream » des
infrastructures IT d’entreprise. Avec des solutions technologiquement performantes et
économiquement efficientes, le cloud figure parmi les principales sources de transformation,
de valeur ajoutée et de gain de productivité.

Avec le Cloud Computing les organisations, institutions et entreprises n’ont plus besoin
d’investir lourdement dans des ressources informatiques, nécessairement limitées, et
nécessitant une gestion interne lourde et couteuse. Aujourd’hui elles ont le choix de migrer
vers un modèle Cloud Computing où elles peuvent acheter ou louer des ressources en ligne.
Ce modèle leur épargne les coûts de gestion interne, puisque les ressources informatiques
sont administrées au niveau du fournisseur du Cloud Computing.
Les géants du cloud proposent des solutions de qualité, hautement sécurisées et promettent
des modèles de facturation se fondant sur la consommation réelle. Chaque fournisseur cloud
trouve alors sa cible.

Ce projet de fin d’étude, effectuée à la société DXT pour une période de 4 mois, a une
dimension technique qui a aidée à mettre en pratique les connaissances acquises durant notre
formation et enrichir nos compétences. Basée sur cette optique, ce projet se compose de 4
chapitres et organisé de la manière suivante :
Le premier chapitre sera consacré à la présentation de l’organisme d’accueil et sur le contexte
général du projet.

Le deuxième chapitre présentera la notion du cloud computing, ses caractéristiques, ses


services et ses modèles de déploiement, ainsi qu’une étude comparative entre les
fournisseurs du service cloud.

Le troisième chapitre consiste sur l’étude des différents services proposée par la plateforme
AWS.

Pour la partie pratique y compris le déploiement d’une application web sans serveur en
utilisant les services AWS.

Page 13 sur 82
C
h
aChapitre I :
p
Présentation de l’organigramme
i d’accueil et le contexte du projet

t
r
e
Page 14 sur 82
I) Introduction
Le présent chapitre a pour but de situer le projet dans son contexte général. La première
section de ce chapitre donne un bref aperçu sur l’organisme d’accueil, à savoir la société DXT,
son domaine d’activité, ses missions et ses partenaires. La deuxième sera dédiée à une
description du projet en expliquant la problématique, ses objectifs ainsi que la démarche
adoptée pour le mener à bien.

II) Organigramme d’accueil


1. Présentation de la société DXT

La société DXT est société fraichement crée et qui a vocation


d’accompagner ses clients dans l’intégration des solutions informatiques
performantes et innovantes tout en reposant sur une des partenaires
leaders dans leur domaine d’activité.
Figure 1 : Logo de la
société DXT

2. Les missions du DXT

La société DXT a pour mission de :

 Intégration de matériel et de logiciels informatiques.


 Réalisation et hébergement des sites web.
 Accompagnement des entreprises dans l’adoption et la migration vers le cloud.
3. Les partenaires de la société DXT

 Réseau et sécurité : Veeam, Fortinet, Trend Micro, Cisco


 Visioconférence : Logitech
 Hébergement Web : NameHero, ResellerClub
 Cloud : Amazon (AWS)

III) Contexte du projet


1. Cadre du projet et problématique

Les technologies informatiques ont considérablement évolué ces dernières années. Elles
offrent désormais des possibilités extraordinaires mais au prix d’une complexité plus grande
et parfois des coûts significatifs.

Le Cloud Computing (ou « l’informatique dans les nuages ») apporte une réponse pragmatique
aux entreprises pour leur permettre de profiter de ces évolutions technologiques en
externalisant une partie de leur infrastructure informatique sans avoir à supporter des
investissements financiers lourds.

Page 15 sur 82
Le Cloud Computing est un concept qui consiste à déporter sur des serveurs distants des
ressources informatiques virtualisées et mutualisées. Les données et applications
informatiques ne sont plus sur des serveurs locaux ou sur le poste de travail de l’utilisateur
mais sur des serveurs sécurisés dans des Datacenters qui apportent des engagements de
haute-disponibilité et de sécurité.

Ce projet consiste à réaliser une étude sur les offres cloud au niveau international et d’explorer
et mettre en application particulièrement les services et fonctionnalités du cloud du leader
mondial en la matière Amazon (AWS).

2. Objectifs du projet

Les objectifs de ce projet sont :


 Etudier les différents services d’AWS
 Déployer une application web sous la plateforme AWS
 Etre capable de poser une architecture de n’importe quelle application en se basant
sur les services AWS.

IV) Conclusion
Sous la lumière de ce qui précède il se voit clairement qu’on a présenté le contexte général
du projet par lequel nous sommes chargés, en commençant par la présentation de l’organisme
d’accueil, passant par la description des motivations et objectifs du projet et en finissant par
la planification des différentes tâches à réaliser.

Maintenant qu’on s’est situé et après avoir eu des informations d’ordre générales. Il est le
temps d’entamer le deuxième chapitre de l’étude de la notion du Cloud Computing en
adoptant l’enchainement scientifique du projet.

Page 16 sur 82
C
h
a
Chapitre
p II :

i Cloud Computing : Etat de l’art

t
r
e
Page 17 sur 82
I) Introduction
Dans ce chapitre, nous allons définir l’aspect du cloud computing qui représente le cœur de
notre sujet PFE. Nous aborderons dans un premier temps la définition de la notion du cloud computing,
ses caractéristiques ainsi que les services et ses modèles de déploiements. Dans un second temps nous
réaliserons une étude comparative entre les principaux fournisseurs du cloud computing, puis on va
entamer la notion de sécurité du cloud au Maroc et enfin nous allons citer les phases nécessaires pour
une bonne migration vers le cloud.

II) Le cloud computing : définitions et caractéristiques


1. Définitions

Il existe plusieurs approches pour définir le Cloud Computing, mais l’approche la plus
largement adoptée est celle du NIST «National Institute of Standards and Technology» ; Le
Cloud Computing est un modèle qui permet un accès réseau pratique et sur demande à un
pool partagé de ressources informatiques configurables (par exemple, des réseaux, des
serveurs, du stockage, des applications et des services) qui peut être rapidement
approvisionné et disponible sans trop d’efforts de gestion ou d’interaction d’opérateurs.
Le « cloud computing » est un néologisme utilisé pour décrire l'association d'Internet (« cloud
», le nuage) et l'utilisation de l'informatique (« computing »). C'est une manière d'utiliser
l'informatique dans laquelle tout est dynamiquement couplé et évolutif et dans laquelle les
ressources sont fournies sous la forme de services au travers d'Internet. Les utilisateurs n'ont
ainsi besoin d'aucune connaissance ni expérience en rapport avec la technologie derrière les
services proposés.
Le Cloud Computing est une infrastructure dans laquelle la puissance de calcul et le stockage
sont gérés par des serveurs distants auxquels les usagers se connectent via une liaison internet
sécurisée. L’ordinateur, le téléphone mobile et autres objets connectés deviennent des points
d’accès pour exécuter des applications ou consulter des données qui sont hébergées sur les
serveurs.
Une autre définition qui se veut exhaustive par ses auteurs est : « Le Cloud Computing est un
accès « à la demande » à des ressources IT virtualisées, hébergées hors du Data Center de
l’entreprise, partagées avec d’autres entreprises, simples d’utilisation, payées via un
abonnement et accessibles par le Web ».
Donc le Cloud Computing est un concept qui consiste à déporter sur des serveurs distants des
stockages et des traitements informatiques traditionnellement localisés sur des serveurs
locaux ou sur le poste de l'utilisateur. Il consiste à proposer des services informatiques sous
forme de service à la demande, accessible de n'importe où, n'importe quand et par n'importe
qui.
« L'idée principale à retenir est que le Cloud n'est pas un ensemble de technologies, mais un
modèle de fourniture, de gestion et de consommation des services et des ressources
informatiques localisés dans des Datacenter ».

Page 18 sur 82
Figure 2 : Le cloud computing

2. Historique du cloud computing

Techniquement, le concept de cloud computing est loin d'être nouveau, il est même
présent depuis des décennies. On en trouve les premières traces dans les années 1960, quand
John McCarty affirmait que cette puissance de traitement informatique serait accessible au
public dans le futur. Le terme en lui-même est apparu plus couramment aux alentours de la
fin du XXe siècle et il semblerait qu’Amazon.com soit l'un des premiers à avoir assemblé des
centres de données et fournit des accès à des clients. Les entreprises comme IBM et Google
ainsi que plusieurs universités ont seulement commencé à s'y intéresser sérieusement aux
alentours de 2008, quand le cloud computing est devenu un concept « à la mode ». Réalisant
ce qu'ils pourraient faire de toute cette puissance, de nombreuses compagnies ont ensuite
commencé à montrer un certain intérêt à échanger leurs anciennes infrastructures et
applications internes contre ce que l'on appelle les « pay per-use service » (services payés à
l'utilisation).
Auparavant, seuls les super-ordinateurs permettaient de fournir cette puissance et étaient
principalement utilisés par des gouvernements, des militaires, des laboratoires et des
universités pour réaliser des calculs aussi complexes que prédire le comportement d'un avion
en vol, les changements climatiques ou la simulation d'explosions nucléaires. Désormais, des
entreprises comme Google fournissent des applications qui exploitent le même type de
puissance et sont accessibles à tout moment, de n'importe où et par tout un chacun via
Internet. Quelques universités prestigieuses ont également lancé leurs propres programmes
de cloud computing en fournissant des accès à des maillages de centaines ou milliers de
processeurs et des entreprises comme IBM ont annoncé leur intention d'utiliser massivement
le cloud computing à l'avenir. Ces derniers ont dévoilé un système ultra-performant connu
sous le nom de « Blue Cloud » qui permettra d'aider les banques et diverses entreprises à
distribuer leurs calculs sur un très grand nombre de machines sans posséder d'infrastructure
interne.
Actuellement, le cloud computing est utilisé de la même manière que nous utilisons
l'électricité, c'est à dire en payant uniquement ce que nous consommons sans même nous
soucier des aspects techniques nécessaires au bon fonctionnement du système.

Page 19 sur 82
3. Les caractéristiques du cloud computing

Le modèle Cloud Computing se différencie par les cinq caractéristiques essentielles


suivantes :
 Accès aux services par l’utilisateur à la demande

La mise en œuvre des systèmes est entièrement automatisée et c’est l’utilisateur, au moyen
d’une console ou à travers des outils et des logiciels spécifiques, qui mettent en place et gèrent
la configuration à distance.

 Accès réseau large bande

Ces centres de traitement sont généralement raccordés directement sur le backbone internet
pour bénéficier d’une excellente connectivité. Les grands fournisseurs répartissent les centres
de traitement sur la planète pour fournir un accès aux systèmes en moins de 50 ms de
n’importe quel endroit.

 Réservoir des ressources (non localisées)

La plupart de ces centres comportent des dizaines de milliers de serveurs et de moyens de


stockage pour permettre des montées en charge rapides. Il est souvent possible de choisir une
zone géographique pour mettre les données “près” des utilisateurs.

 Redimensionnement rapide (élasticité)

La mise en ligne d’une nouvelle instance d’un serveur est réalisée en quelques minutes, l’arrêt
et le redémarrage en quelques secondes. Toutes ces opérations peuvent s’effectuer
automatiquement par des scripts. Ces mécanismes de gestion permettent de bénéficier
pleinement de la facturation à l’usage en adaptant la puissance de calcul au trafic instantané.

 Facturation à l’usage

La facturation est calculée en fonction de la durée et de la quantité de ressources utilisées.


Une unité de traitement stoppée n’est pas facturée.

4. Bénéfices du cloud computing

Généralement, le cloud assure à son fournisseur et aux entreprises délocalisant leurs


infrastructures une meilleure rentabilité. Ainsi, il permet à l'entreprise de se concentrer
uniquement sur les tâches de production au lieu de penser aussi de la partie maintenance de
systèmes informatiques.

 Pour le fournisseur

Les bénéfices du fournisseur sont uniquement dus au fait de la mutualisation des ressources.
En effet, après son investissement dans la mise en place des infrastructures pour le cloud, il

Page 20 sur 82
fait payer aux entreprises la marge nécessaire pour sa rentabilisation. Comme pour une
entreprise disposant d'une plateforme interne, il paie pour les frais d'administration de
l'ensemble. Cette dépense peut être amortie par facturation aux entreprises.

 Pour l’entreprise

C'est elle la première gagnante de cette technologie. Elle réalise des bénéfices en argent et en
flexibilité dans sa capacité à s'agrandir.

1- La réduction des coûts : Le recours au cloud permet à l'entreprise d'être facturée à


l'usage, en fonction de ses besoins.
2- La réduction des gaspillages : Les infrastructures gérées en interne sont souvent sous
utilisées, alors que l'infrastructure d'un cloud mutualise l'ensemble de ressources pour
un grand nombre d'entreprises. La mutualisation consiste à mettre à la disposition de
plusieurs utilisateurs une base commune de ressources. Elle permet ainsi d'augmenter
le taux d'utilisation de ces ressources. En effet, les ressources n'étant pas dédiées à un
seul utilisateur, elles pourront servir à d'autres en cas de besoin.
3- La flexibilité et accès aux ressources à larges échelle : L'entreprise peut augmenter la
capacité de son infrastructure sans investissement majeur. En effet, grâce à l'allocation
dynamique (à la demande) des ressources qu'offre le cloud, il suffit de souscrire à des
nouvelles ressources et celles-ci sont directement allouées. De plus, l’entreprise est
libre de ses allées et venues car les contrats d'utilisation sont limités dans le temps
(autour de l'heure). Ainsi, l'entreprise peut augmenter ou réduire son infrastructure à
sa guise à moindre coût et dans un délai réduit. Rappelons que le cloud offre ainsi à
l'entreprise une possibilité d'accéder à une quantité de ressources dont elle ne
pourrait se l'offrir en interne. Elle peut dorénavant envisager des applications large
échelle sans se soucier de l'obtention des équipements.

5. Les défis du cloud

Le cloud a offert un certain nombre d’avantages aux utilisateurs et organisations qui l’ont
adopté, cependant, il y a encore un nombre de défis, qui sont actuellement relevés par les
chercheurs du domaine :
Performance : l’enjeu majeur de la performance arrive dans le cas de transactions et
applications gérant un volume de données important. Aussi, les utilisateurs qui se trouvent
géographiquement à une grande distance du fournisseur peuvent rencontrer des problèmes
de latence et de retard.
Sécurité et confidentialité : les entreprises sont toujours préoccupées par la sécurité de leurs
données quand elles utilisent le cloud computing. En effet, les utilisateurs sont inquiets face
aux attaques et vulnérabilités des systèmes quand leurs ressources et données critiques sont
à l’extérieur de leurs locaux.
Contrôle : certains départements informatiques sont préoccupés par le fait que le fournisseur
de service Cloud a le contrôle total des plates-formes et généralement ne conçoivent pas des
plates-formes spécifiques pour les entreprises et leurs pratiques commerciales.
Coût de la bande passante : avec le cloud, les entreprises économisent de l’argent et réduisent

Page 21 sur 82
les coûts sur l’infrastructure matérielle et logicielle mais peuvent rencontrer une
augmentation des frais de bande passante. Le coût de la bande passante peut être faible pour
les petites applications orientées web, qui ne nécessitent pas le traitement d’un volume
important de données, en revanche, il peut augmenter de manière significative quand le
volume de données à gérer devient important.

III) Les services du cloud computing et ses modèles de déploiement


1. Les différents services du cloud

Le cloud computing peut être décomposé en trois couches :


 Application (SaaS, Software as a Service)
 Platform (PaaS, Platform as a Service)
 Infrastructure (IaaS, Infrastructure as a Service)

L’infrastructure as a Service (Iaas), est plutôt gérée par les architectes réseaux, la couche PaaS
est destinée aux développeurs d’applications et finalement le logicielle comme un service
(SaaS) est le « produit final » pour les utilisateurs.

Figure 3: Les niveaux d'interaction entre utilisateur et le cloud

Page 22 sur 82
1.1. SAAS

L'acronyme « SAAS » est le plus connu dans le monde du cloud computing. Sa signification est
« Software as a Service », autrement dit, application en tant que service. C'est un modèle de
déploiement d'application dans lequel un fournisseur loue une application clé en main à ses
clients en tant que service à la demande au lieu de leur facturer des licences. De cette façon,
l'utilisateur final n'a plus besoin d'installer tous les logiciels existants sur sa machine de travail.
Cela réduit également la maintenance en supprimant le besoin de mettre à jour les
applications (tâche toujours ardue dans une entreprise).
Ce type de modèle transforme les budgets logiciels en dépenses variables et non plus fixes et
il n'est plus nécessaire d'acquérir une version du logiciel pour chaque personne au sein de
l'entreprise.

1.2. PAAS

Le PAAS (qui signifie « Platform as a Service ») est une excroissance du modèle de déploiement
Software as a Service. Une architecture PAAS est un modèle composé de tous les éléments
nécessaires pour soutenir la construction, la livraison, le déploiement et le cycle de vie
complet des applications et des services exclusivement disponibles à partir d'Internet. C'est
une architecture sans téléchargement ou installation de logiciels pour les développeurs,
responsables informatiques ou utilisateurs finaux. Elle est également connue sous le nom de
« cloudware ».

Le PAAS offre des facilités à gérer le workflow lors du design, du développement, du test, du
déploiement et de l'hébergement d'applications web à travers des outils et services tels que :
• La collaboration d'équipe (« team collaboration »).
• L'intégration des web services et bases de données.
• La gestion de la sécurité, de l'évolutivité, de la capacité, de la persistance des données, du
contrôle de version (« versioning »), etc.
Ces services sont fournis au travers d'une solution complète destinée aux développeurs et
disponible immédiatement via Internet.

1.3 IAAS

L’ « Infrastructure as a Service » permet de fournir des infrastructures informatiques


(typiquement une plateforme en environnement virtualisé) en tant que service. Ce terme était
originellement connu sous le nom de « Hardware as a Service ». Ces infrastructures virtuelles
composent un des domaines du « as a Service » en empruntant la même philosophie de
fonctionnement et de tarification que la plupart des services du cloud computing. Plutôt que
d'acheter des serveurs, des logiciels, de l'espace dans un centre de traitement de données
et/ou de l'équipement réseau, les clients n'ont plus qu'à louer ces ressources auprès de
prestataires de service complètement externalisés et directement compétents dans le
domaine. Le service est alors typiquement tarifé en fonction de l'utilisation et de la quantité
de ressources consommées. De ce fait, le coût reflète typiquement le niveau d'activité de
chaque client.

Page 23 sur 82
2. Les modèles de déploiement du cloud

On peut distinguer quatre types principaux de modèles de déploiement pour ces nuages :
le nuage privé, le nuage communautaire, le nuage public et le nuage hybride.

2.1. Cloud Privé

Appelé aussi Le déploiement de ressources sur site et ceci se fait à l'aide de la virtualisation et
d'outils de gestion des applications ».
Le déploiement sur site ne présente pas les avantages qu'offre le cloud computing, mais il est
parfois souhaité pour sa capacité à fournir des ressources dédiées. Dans la plupart des cas, ce
modèle de déploiement est identique à l'infrastructure informatique héritée et fait appel à la
gestion des applications et aux technologies de virtualisation pour tester et accroître
l'utilisation des ressources.

2.2. Le nuage communautaire

L’infrastructure d’un nuage communautaire est partagée par plusieurs organisations


indépendantes et est utilisée par une communauté qui est organisée au tour des mêmes
besoins, vis-à-vis de son utilisation. Par exemple, dans le projet Open Cirrus, le nuage
communautaire est partagé par plusieurs universités dans le cadre d’un projet scientifique
commun. Son infrastructure peut être gérée par les organisations de la communauté qui
l’utilise ou par un tiers et peut être située, soit au sein des dites organisations, soit chez un
prestataire de service.

2.3. Cloud Public

Une application basée sur le cloud est entièrement déployée dans le cloud. Tous ses
composants sont en outre exécutés dans le cloud. Les applications dans le cloud ont été créées
dans le cloud ou migrées à partir d'une infrastructure existante pour tirer parti des avantages
du cloud computing.
Les applications basées sur le cloud peuvent être créées sur des éléments d'infrastructure de
niveau inférieur ou utiliser des services de niveau supérieur qui fournissent une abstraction
des exigences en matière de gestion, d'architecture et de dimensionnement de l'infrastructure
de base.

2.4. Cloud Hybride

Un déploiement hybride permet de relier une infrastructure et des applications entre des
ressources basées sur le cloud et des ressources existantes qui ne se trouvent pas dans le
cloud. La méthode la plus courante de déploiement hybride consiste à associer cloud et
infrastructure existante sur site pour étendre et développer l'infrastructure d'une organisation
dans le cloud tout en connectant les ressources de cloud au système interne.

IV) Benchmark des fournisseurs du cloud


Trouver un fournisseur de services cloud est devenu un jugement complexe. De nos jours, la
question n'est pas de savoir avec quelle option nous devons travailler, mais plutôt de savoir
comment obtenir les bonnes performances et éliminer les risques entre plusieurs

Page 24 sur 82
fournisseurs, tout en optimisant les coûts.

Au vu des discussions ci-dessus, il peut être envisagé que chaque organisation finalise le
fournisseur de services cloud en fonction de ses capacités en IaaS, SaaS & PaaS. Si une
organisation recherche Iaas, elle devrait rechercher les fournisseurs de cloud qui ont un
avantage sur Iaas.

Il existe plusieurs fournisseurs de services de cloud computing disponible dans l'industrie.


Le dernier rapport Gartner (août 2020) évalue les fournisseurs sur l'infrastructure cloud et les
services de leur plateforme. Ce Magic Quadrant (figure ci-dessous) permet de comprendre le
marché du cloud IaaS et PaaS et de développer un point de vue qui peut être partagé par les
professionnels de l'informatique, les chefs d'entreprise et les développeurs, des startups
natives du cloud aux grandes entreprises. Gartner évalue les caractéristiques des fournisseurs
de cloud public avec des descriptions détaillées et actualisées.

1. Amazon Web Services, lancé en 2006


2. Microsoft Azure, lancé en 2010
3. Google Cloud Platform, lancé en 2008
4. Alibaba Cloud, lancé en 2009
5. Oracle Cloud, lancé en 2012
6. IBM Cloud, lancé en 2011

Figure 4: Gartner’s Magic Quadrant

Page 25 sur 82
Et selon les données publiées par Synergy Research Group en 2019, Amazon Web Services
détient 33% du marché des infrastructures cloud. La participation de Microsoft sur le marché
est passée de 10 % à 13 % un an auparavant. Google s'est amélioré de 5% à 6%.

Figure 5: Tendance des parts de marché 2019

 Amazon Web Services (AWS) comprend un mélange d'offres d'infrastructure en


tant que service (IaaS), de plateforme en tant que service (PaaS) et de logiciel en
tant que service (SaaS). Les services AWS proposent des outils tels que la puissance
de calcul, le stockage de bases de données et des services de livraison de contenu.
AWS a été l'une des premières entreprises à introduire un modèle d'informatique
cloud à la carte pour fournir aux utilisateurs le calcul, le stockage ou le débit dont ils
ont besoin.
 Microsoft (Azure) fournit une gamme de services cloud, notamment des services de
calcul, d'analyse, de stockage et de mise en réseau. Les utilisateurs peuvent
développer et mettre à l'échelle de nouvelles applications ou exécuter celles
existantes dans le cloud public. La plateforme Azure offre des outils qui soutiennent
de nombreux secteurs d'activité. Elle propose 4 formes différentes de cloud
computing : infrastructure as a service (IaaS), platform as a service (PaaS), software
as a service (SaaS) et serverless.
 Google Cloud (GCP) comprend une gamme de services hébergés pour le calcul, le
stockage et le développement d'applications, la mise en réseau, le big data, le
machine learning et l'Internet des objets (IoT), ainsi que des outils de gestion, de
sécurité et de développement du cloud. Google Cloud destine sa plateforme aux
développeurs de logiciels, aux administrateurs de cloud computing et à d'autres
professionnels IT via Internet ou une connexion réseau dédiée.

Page 26 sur 82
CSP Points forts Points faibles
• Position dominante sur le
marché

• Offres étendues et
AWS matures • La gestion des coûts

• Support pour les grandes • Options écrasantes


organisations

• Entraînement intensif

• Portée mondiale
Azure • Deuxième plus grand
fournisseur
• Problèmes avec la
• Intégration avec les outils documentation
et logiciels Microsoft
• Outils de gestion
• Vaste ensemble de incomplets
fonctionnalités

• Cloud hybride

• Prise en charge de l'open


source
Google cloud • Conçu pour les entreprises • Entrée tardive sur le
natives du cloud marché IaaS

• Engagement envers l'open • Moins de fonctionnalités


source et la portabilité et de services

• Remises importantes et • Historiquement pas aussi


contrats flexibles axé sur l'entreprise

• Expertise DevOps
Tableau 1 : Comparaison entre les différents fournisseur du cloud

Bien qu'AWS soit leader sur le marché du cloud public, il serait incorrect de prétendre qu'il
fournit les meilleures solutions. Microsoft Azure et Google Cloud Platform et d’autres
fournisseurs de service cloud ont certainement leurs avantages supplémentaires si vous
recherchez des solutions commerciales simples ou une sécurité à toute épreuve. L'idée est
qu'il n'y a pas de meilleur universel en matière de fournisseur de services cloud, tout dépend
de ce qui convient le mieux à vos besoins.

Page 27 sur 82
V) La sécurité du cloud au Maroc
D’après le mot du ministère de la DGSSI dans la 7° édition du séminaire sur la cybersécurité
"Externalisation des Systèmes d’Information et enjeux de la cybersécurité " à Rabat, 12
novembre 2019 :
« Devant les opportunités et avantages qui offrent le cloud, les responsables seraient
confortés dans leurs décisions de recours à l’externalisation de leurs SI. Cette optique
nécessite, toutefois, la prise en compte et la maîtrise de certains risques juridiques, techniques
et de sécurité que je survolerai brièvement :
D’abord et d’un point de vue juridique, se pose la question de la réglementation applicable
à l’externalisation des systèmes d’information. Il s’agit de mettre en place un cadre
réglementaire cohérent, qui garantit la confidentialité, la protection des données personnelles
ou sensibles et le respect de leur intégrité. Le contrat conclu dans le cadre du Cloud doit
contenir des clauses de responsabilité particulièrement en matière de respect de
confidentialité et de sécurité des données attendus par l’organisation tout au long de la durée
de vie du contrat. Sur ce plan, se pose également la question de la territorialité en ce qui
concerne la localisation des données. Ce principe de territorialité renvoie à la nécessité de
pouvoir constater à tout moment, la localisation des données externalisées. La localisation
des données pose aussi le problème de la compétence des juridictions et du droit applicable,
ce qui appelle une étude approfondie des conditions des offres d’hébergement des données,
en particulier le régime juridique auquel ces dernières sont soumises et les mesures mises en
œuvre pour en assurer la confidentialité.
Ensuite, sur le plan technico-opérationnel, les organisations se doivent d’œuvrer
constamment à maintenir un niveau de maîtrise adapté sur leurs système d’information. En
effet, le recours à l’externalisation sans mesures d’accompagnement appropriées pourrait,
dans certaines situations, impacter le contrôle de l’activité et éventuellement induire une
perte du savoir- faire en interne. En utilisant les services du Cloud, l’organisation pourrait
concéder au prestataire un contrôle total sur son SI. Ceci induirait une forme de dépendance
technologique vis-à-vis du prestataire.
Enfin, et s’agissant de la sécurité des systèmes d’information externalisés, une attention
particulière doit être accordée à la nature des données à externaliser. Afin d’éviter toute
éventuelle divulgation d’informations générée par une externalisation non maîtrisée, les
entités publiques ou privées doivent procéder à une classification de leurs données en
fonction de l’analyse des risques et ceci afin d’opter pour le mode le plus adapté. Elles doivent,
de même, veiller à la mise en place de mesures nécessaires pour éluder les risques induits par
la mutualisation des infrastructures ».
Alors avant de faire une migration il faut bien respecter ces réglementations sur les différents
niveaux (Juridique, technico-opérationnel, etc.).

VI) Les procédures de migration vers le cloud


Pour garantir une migration fluide et transparente vers le cloud, tenez compte des phases de
processus suivantes :

Etape 1 : définir l’objectif de la migration

La première étape essentielle d’un projet de migration vers le cloud consiste à définir l’objectif

Page 28 sur 82
du projet. S’agit-il de maîtriser les coûts de son système d’information, d’offrir à l’entreprise
une plus grande agilité dans le cadre de sa transformation numérique, d’augmenter la
sécurité, de répondre à un besoin métier, etc. ?
Les réponses apporteront une vision claire du projet et permettront de fédérer les équipes
impliquées.

Etape 2 : Cartographier le système d’information

Il est essentiel d’établir une vision complète de la composition du système d’information avant
de démarrer le projet : applications, éditeurs, prestataires, fonctionnement, coûts et
modalités de contrôle.
Grâce à cette cartographie, il est possible de déterminer les applications à migrer, et celles qui
doivent être abandonnées.

Etape 3 : définir la stratégie de migration

Le modèle d’infrastructure ayant été préalablement choisi, il s’agit dans cette étape de définir
la stratégie de migration des applications.
En matière d’application, il existe trois approches :
• Déployer les applications dans le cloud sans opérer de modifications puis tester les
performances pour adapter les configurations qui peuvent l’être. Dans ce cas, si les
applications ne sont pas compatibles avec une configuration cloud, il conviendra de se
questionner sur la seconde approche
• Optimiser les applications avant de les migrer dans le cloud. Celles qui ne peuvent être
optimisées devront s’inscrire dans la troisième et dernière approche
• Reconstruire les applications avant de les migrer dans le cloud
Par ailleurs, en choisissant la bonne approche de migration des applications, il est possible de
définir les modalités de migration des données qui y sont exploitées en tenant compte :
• Des quantités de données
• Des options de synchronisation
• Des besoins de mise en place d’un Data Recovery Plan

Enfin, la dernière brique de la stratégie consiste à choisir la solution de migration adéquate.


On parle principalement de deux solutions : la réplication et le streaming.

Réplication Streaming
Copie de l’intégralité des Copie des applications dans le
Fonctionnement applications et des données cloud puis chargement petit à petit
dans le cloud des données
Temps +++ +
Disponibilité des 100% à la mise en production D’abord les données actives, puis
données de l’infrastructure les archives
Coût ++ +
Risques - +
Tableau 2 : Solutions de migration

Page 29 sur 82
Etape 4 : tester

Lorsque la stratégie de migration a été définie, l’étape de test devient incontournable. Elle a
pour but :

• D’évaluer les performances des systèmes et applications dans le cloud


• D’ajuster les configurations avant la migration
• D’atténuer le risque de migration, car plus les tests sont poussés plus le scénario de
migration est consistant
• De définir le curseur performances-coûts
Lors de la phase de migration test, il faut analyser les principaux services tels que Bases de
données, réseau, Sauvegarde, sécurité, applications (fonctionnalités, performances)….

Etape 5 : migrer

Si la phase de test est concluante, l’étape de migration peut démarrer.


Il s’agit maintenant d’adopter une approche progressive qui consiste à planifier le transfert
des applications vers le cloud. En effet, en planifiant la migration, tous les systèmes et
applications peuvent de nouveau être repassés en revue et ajustés
. Pour limiter les risques de migration, il est conseillé :
• De s’assurer que l’intégralité des données a été copiée dans le cloud avant de leur
suppression
• De vérifier que la synchronisation des données est correcte, notamment en cas de volume
de données importants
• De disposer d’une solution de repli sur l’infrastructure existante en cas de
dysfonctionnement majeur

Etape 6 : maintenir et contrôler

À la suite de la phase de migration et de mise en production, il est essentiel de maintenir le


nouvel environnement en poursuivant les tests de performance. Cela permet de les optimiser
pour être au plus près des besoins. Enfin, pour s’assurer que le nouvel environnement répond
aux objectifs initiaux de la migration vers le cloud, il convient de contrôler la consommation
de ressources.

VII) Conclusion
Au niveau de ce chapitre, nous avons défini le cloud computing, ses défis, ses avantages ainsi
que la notion de sécurité du cloud au Maroc.
Puis on est arrivé à faire un Benchmarking entre les trois grands fournisseurs du service cloud.
Le prochain chapitre nous allons nous concentrer sur la plateforme AWS d’Amazon en citant
ses services et ses fonctionnalités.

Page 30 sur 82
C
h
a
Chapitre III :
p
i Etude des services et architectures
du Cloud AWS

t
r
e
Page 31 sur 82
I) Introduction
Amazon a été la première entreprise à faire comprendre que le Cloud Computing était une
solution d'infrastructure pour les entreprises. En 2006, elle a lancé Amazon Web Services ou
AWS, une plate-forme de Cloud Computing à la demande destinée aux particuliers ou aux
entreprises disposant d'un abonnement payant.
Dans ce chapitre nous allons définir qu’est-ce que AWS ainsi les fonctionnalités proposées par
cette plateforme et enfin on va détailler la tarification de quelques services.

II) AWS et ses catégories de services


1. Qu’est-ce qu’un service Web ?

Un service Web est un logiciel qui se rend disponible sur Internet et normalise sa
communication via le codage XML. Un client appelle un Web service en envoyant une requête
(généralement sous la forme d’un message XML, Json ou HTTP), et le service renvoie une
réponse sous forme XML, Json ou HTTP.

Figure 6 : Service web

2. C’est quoi AWS

Amazon Web Services (AWS) est la plateforme cloud la plus complète et la plus largement
adoptée au monde. Elle propose plus de 200 services complets issus de centres de données
du monde entier. Des millions de clients (dont certaines des startups les plus dynamiques au
monde, de très grandes entreprises et des agences fédérales de premier plan) utilisent AWS
pour réduire leurs coûts, gagner en agilité et innover plus rapidement.
AWS est la plateforme Cloud leader dans le monde grâce à :
 Ses diverses fonctionnalités.
 Sa plus grande communauté de clients et de partenaires.
 Son niveau de sécurité extrême.
 Son rythme d'innovation le plus soutenu.
 Son expertise opérationnelle la plus éprouvée.

Page 32 sur 82
3. l’interaction avec AWS

Pour accéder aux services, vous pouvez utiliser AWS Management Console ou l'interface de
ligne de commande ou encore pour les développeurs ils peuvent utiliser Software
Developement Kits (SDKs).
AWS Management Console : cette méthode est facile à utiliser, elle vous fournit une interface
utilisateur graphique simple et riche en utilisant un navigateur Web pour la majorité des
services et fonctionnalités de ces services.
L'interface ligne de commande AWS (CLI AWS) est un outil unifié permettant de gérer vos
services AWS. À partir d'un seul et même outil de téléchargement et configuration, vous
pouvez contrôler, par ligne de commande, divers services AWS et les automatiser à l'aide de
scripts.

4. Les catégories de services AWS

AWS dispose de plus de services et de fonctionnalités au sein de ces services que n'importe
quel autre fournisseur cloud, notamment le calcul, le stockage, les bases de données, la mise
en réseau, les lacs de données et l'analyse, le machine Learning et l'intelligence artificielle,
l'Internet des Objets, la sécurité, etc.
Ces services aident les organisations à travailler plus vite, à réduire leurs coûts informatiques
et à mettre à l'échelle leurs applications.

Figure 7: Les catégories de services AWS

Chaque catégorie de service possède un ou plusieurs services, prenons l’exemple suivant de


la catégorie « Calcul »

Page 33 sur 82
Figure 8 : les services de la catégorie calcul

III) Les services d’AWS


1. Amazon VPC
1.1. Définition

Amazon VPC est une section sécurisée, privée et isolée du cloud AWS où vous pouvez lancer
des ressources AWS dans une topologie de réseau virtuel que vous définissez. Lorsque vous
créez un VPC, vous fournissez l'ensemble d'adresses IP privées que vous souhaitez que les
instances de votre VPC utilisent. Vous spécifiez cet ensemble d'adresses sous la forme d'un
bloc de routage inter domaine sans classe (CIDR).

Dans Amazon VPC, chaque instance Amazon Elastic Compute Cloud (Amazon EC2) possède
une interface réseau par défaut à laquelle est attribuée une adresse IP privée principale sur
votre réseau Amazon VPC. Vous pouvez créer et attacher des interfaces réseau élastiques
(ENI) supplémentaires à n'importe quelle instance Amazon EC2 dans votre VPC. Chaque ENI a
sa propre adresse MAC. Il peut avoir plusieurs adresses IP privées, et il peut être attribué à un
groupe de sécurité spécifique. Le nombre total d'ENI et d'adresses IP privées prises en charge
par instance dépend du type d'instance.

1.1. Les sous réseaux VPC

Vous pouvez configurer vos sous-réseaux VPC comme publics, privés ou VPN uniquement.
Afin de configurer un sous-réseau public, vous devez configurer sa table de routage de sorte
que le trafic de ce sous-réseau vers Internet soit acheminé via une passerelle Internet associée
au VPC.
En attribuant des adresses EIP aux instances dans ce sous-réseau, vous pouvez également les
rendre accessibles depuis Internet. Il est recommandé de restreindre le trafic entrant et
sortant pour ces instances en tirant parti des règles de groupe de sécurité avec état pour vos
instances. Le filtrage réseau sans état peut également être appliqué à chaque sous-réseau en

Page 34 sur 82
configurant des listes de contrôle d'accès au réseau (ACL) pour le sous-réseau.

Figure 9 : Exemple de VPC avec un sous-réseau public

Pour les sous-réseaux privés, le trafic vers Internet peut être acheminé via une instance
spéciale de traduction d'adresses réseau (NAT) avec un EIP public, qui réside dans un sous-
réseau public. Cette configuration permet à vos ressources du sous-réseau privé de connecter
le trafic sortant à Internet sans allouer d'EIP ni accepter de connexions entrantes directes.
AWS fournit une image de serveur NAT préconfigurée ou vous pouvez utiliser un AMI
personnalisé qui prend en charge NAT. La figure 2 montre un exemple de VPC avec des sous-
réseaux publics et privés.

Figure 10 : Exemple de VPC avec des sous-réseaux publics et privés

En attachant une passerelle réseau privé virtuel à votre VPC, vous pouvez créer une connexion
VPN entre votre VPC et votre propre centre de données.
La connexion VPN utilise des tunnels IPsec standard pour authentifier mutuellement chaque
passerelle et pour se protéger contre les écoutes ou la falsification pendant que vos données

Page 35 sur 82
sont en transit. Pour la redondance, chaque connexion VPN dispose de deux tunnels, chaque
tunnel utilisant une adresse IP publique de passerelle privée virtuelle unique.

Figure 11 : Exemple de VPC isolé de l’internet

2. EC2

2.1. Que signifie ?

Lorsqu’on travaille avec AWS, les serveurs sont virtuels. Et le service qu’on utilise pour accéder
aux serveurs virtuels s'appelle EC2 (Elastic Compute Cloud).

Tout ce que vous avez à faire est de demander les instances EC2 souhaitées et elles se
lanceront et démarreront, prêtes à être utilisées en quelques minutes. Une fois que vous avez
terminé, vous pouvez facilement arrêter ou mettre fin aux instances EC2. Vous n'êtes pas
enfermé ou coincé avec des serveurs dont vous n'avez pas besoin ou dont vous n'avez pas
besoin. Votre utilisation des instances EC2 peut varier considérablement au fil du temps. Et
vous ne payez que ce que vous utilisez. Parce qu'avec EC2, vous ne payez que pour les
instances en cours d'exécution, pas pour les instances arrêtées ou terminées.

EC2 s'exécute sur des machines hôtes physiques gérées par AWS à l'aide de la technologie de
virtualisation. Lorsque vous lancez une instance EC2, vous ne prenez pas nécessairement un
hôte entier pour vous. Au lieu de cela, vous partagez l'hôte avec plusieurs autres instances ces
instances sans de différents types et de différents taille, également appelées machines
virtuelles. Et un hyperviseur s'exécutant sur la machine hôte est responsable du partage des
ressources physiques sous-jacentes entre les machines virtuelles. Cette idée de partage du
matériel sous-jacent est appelée architecture mutualisée. L'hyperviseur est responsable de la
coordination de cette architecture mutualisée et il est géré par AWS. L'hyperviseur est chargé
d'isoler les machines virtuelles les unes des autres lorsqu'elles partagent les ressources de
l'hôte. Cela signifie que les instances EC2 sont sécurisées. Même si elles peuvent partager des
ressources, une instance EC2 n'a connaissance d'aucune autre instance EC2 également sur cet
hôte. Ils sont sécurisés et séparés les uns des autres.

EC2 vous offre beaucoup de flexibilité et de contrôle. Non seulement vous pouvez créer de
nouveaux serveurs ou les mettre hors ligne à volonté, mais vous avez également la flexibilité
et le contrôle de la configuration de ces instances.

Page 36 sur 82
Lorsque vous provisionnez une instance EC2, vous pouvez choisir le système d'exploitation
basé sur Windows ou Linux. Vous pouvez provisionner des milliers d'instances EC2 à la
demande. Avec un mélange de systèmes d'exploitation et de configurations pour alimenter
les différentes applications de votre entreprise.
Vous pouvez agrandir ou réduire les instances chaque fois que vous en avez besoin. Vous
contrôlez également l'aspect réseau d'EC2. Vous décidez donc de savoir quel type de
demandes parvient à votre serveur et si elles sont accessibles publiquement ou en privé.

2.2. Les types d’instances EC2

Les types d'instances Amazon EC2 sont optimisés pour différentes tâches. Lors de la sélection
d'un type d'instance, tenez compte des besoins spécifiques de vos charges de travail et
applications. Cela peut inclure des exigences en matière de capacités de calcul, de mémoire
ou de stockage.

Les instances à usage général : fournissent un équilibre entre les ressources de calcul, de
mémoire et de mise en réseau. Vous pouvez les utiliser pour diverses charges de travail, telles
que :
 Serveurs d'applications
 Serveurs de jeux
 Bases de données petites et moyennes

Supposons que vous ayez une application dans laquelle les besoins en ressources pour le
calcul, la mémoire et la mise en réseau sont à peu près équivalents. Vous pouvez envisager de
l'exécuter sur une instance à usage général car l'application ne nécessite aucune optimisation
dans une seule zone de ressources.

Les instances optimisées pour le calcul : sont idéales pour les applications liées au calcul qui
bénéficient de processeurs hautes performances. À l'instar des instances à usage général, vous
pouvez utiliser des instances optimisées pour le calcul pour les charges de travail telles que
les serveurs Web, d'applications et de jeux.
Cependant, la différence est que les applications optimisées pour le calcul sont idéales pour
les serveurs Web hautes performances, les serveurs d'applications gourmandes en calcul et
les serveurs de jeux dédiés.

Les instances à mémoire optimisée : sont conçues pour offrir des performances rapides pour
les charges de travail qui traitent de grands ensembles de données en mémoire.
Les instances à mémoire optimisée vous permettent d'exécuter des charges de travail avec
des besoins de mémoire élevés et de bénéficier d'excellentes performances.

Les instances de calcul accéléré : utilisent des accélérateurs matériels, ou coprocesseurs, pour
exécuter certaines fonctions plus efficacement que ce n'est possible dans les logiciels exécutés
sur des processeurs. Les instances de calcul accéléré sont idéales pour les charges de travail
telles que les applications graphiques, le streaming de jeux et le streaming d'applications.

Les instances optimisées pour le stockage : sont conçues pour les charges de travail qui
permettent un accès séquentiel élevé en lecture et en écriture à de grands ensembles de
données sur le stockage local. Des exemples de charges de travail adaptées aux instances
optimisées pour le stockage comprennent les systèmes de fichiers distribués, les applications

Page 37 sur 82
d'entreposage de données.

2.3. EC2 Auto Scaling

La fonctionnalité Auto Scaling vous permet de garantir la disponibilité des applications et


d'augmenter ou de diminuer automatiquement votre capacité Amazon EC2 selon les
conditions que vous définissez. Grâce à elle, vous pouvez veiller à exécuter le nombre souhaité
d'instances Amazon EC2. Avec Auto Scaling, vous pouvez en outre accroître automatiquement
le nombre d'instances Amazon EC2 au cours des pics de demande, afin de maintenir les
performances, et diminuer la capacité lors des accalmies afin de réduire les coûts.

3. API Gateway

Amazon API Gateway est un service entièrement géré qui permet aux développeurs de
publier, maintenir, surveiller et sécuriser facilement les API à n'importe quelle échelle. En
quelques clics dans la console de gestion Amazon Web Services, vous pouvez créer une API
qui agit comme une « porte d'entrée » pour que les applications accèdent aux données, à la
logique métier ou aux fonctionnalités de vos services back-end, telles que les applications
s'exécutant sur Amazon Elastic. Compute Cloud (Amazon EC2), code exécuté sur Amazon
Lambda ou toute application Web. Amazon API Gateway gère toutes les tâches impliquées
dans l'acceptation et le traitement de centaines de milliers d'appels d'API simultanés, y
compris la gestion du trafic, le contrôle d'autorisation et d'accès, la surveillance et la gestion
des versions d'API. Amazon API Gateway n'a pas de frais minimum ni de frais de démarrage.
Vous ne payez que pour les appels API que vous recevez et la quantité de données transférées.

3.1. Les types d’API

Amazon API Gateway propose deux options pour créer des API RESTful, des API HTTP et des
API REST, ainsi qu'une option pour créer des API WebSocket.

API HTTP : les API HTTP sont le meilleur choix pour créer des API pour la majorité des cas
d'utilisation. Ils sont optimisés pour créer des API qui font office de proxy pour les fonctions
Amazon Lambda ou les backends HTTP, ce qui les rend idéaux pour les charges de travail sans
serveur. Ils n'offrent actuellement pas de fonctionnalité de gestion des API.

Vous pouvez utiliser des API HTTP pour envoyer des demandes aux fonctions Amazon Lambda
ou à tout point de terminaison HTTP routable.

Par exemple, vous pouvez créer une API HTTP qui s'intègre à une fonction Lambda sur le
backend. Lorsqu'un client appelle votre API, API Gateway envoie la demande à la fonction
Lambda et renvoie la réponse de la fonction au client.

API REST : les API REST offrent des fonctionnalités de proxy d'API et de gestion d'API dans une
solution unique. Les API REST offrent des fonctionnalités de gestion d'API telles que des plans
d'utilisation, des clés d'API, des API de publication et de monétisation.

Une API REST dans API Gateway est un ensemble de ressources et de méthodes intégrées aux
points de terminaison HTTP principaux, aux fonctions Lambda ou à d'autres services Amazon.

Page 38 sur 82
Vous pouvez utiliser les fonctionnalités d'API Gateway pour vous aider dans tous les aspects
du cycle de vie de l'API, de la création à la surveillance de vos API de production.

Les API REST d'API Gateway utilisent un modèle de demande/réponse dans lequel un client
envoie une demande à un service et le service répond de manière synchrone. Ce type de
modèle convient à de nombreux types d'applications différentes qui dépendent de la
communication synchrone.

API WebSocket : les API WebSocket maintiennent une connexion persistante entre les clients
connectés pour permettre la communication de messages en temps réel. Avec les API
WebSocket dans API Gateway, vous pouvez définir des intégrations backend avec des
fonctions Amazon Lambda, Amazon Kinesis ou tout autre point de terminaison HTTP à appeler
lorsque des messages sont reçus des clients connectés.

Une API WebSocket dans API Gateway est un ensemble de routes WebSocket intégrées aux
points de terminaison HTTP principaux, aux fonctions Lambda ou à d'autres services Amazon.
Vous pouvez utiliser les fonctionnalités d'API Gateway pour vous aider dans tous les aspects
du cycle de vie de l'API, de la création à la surveillance de vos API de production.

Les API Gateway WebSocket sont bidirectionnelles. Un client peut envoyer des messages à un
service, et les services peuvent envoyer indépendamment des messages aux clients. Ce
comportement bidirectionnel permet des interactions client/service plus riches, car les
services peuvent transmettre des données aux clients sans que les clients ne fassent de
demande explicite.

4. S3

4.1. Définition de S3

Amazon Simple Storage Service (Amazon S3) est une solution de stockage sur Internet. Vous
pouvez utiliser Amazon S3 pour stocker et récupérer n'importe quelle quantité de données,
n'importe quand et depuis n'importe quel emplacement sur le Web. Vous pouvez réaliser ces
opérations à l'aide de l'interface Web simple et intuitive d'AWS Management Console.

Grâce à ce service, vous pouvez facilement créer des applications utilisant le stockage cloud
natif. Étant donné qu'Amazon S3 est hautement scalable et que vous payez uniquement pour
ce que vous utilisez, vous pouvez démarrer modestement et développer votre application
comme vous le souhaitez, sans compromettre sa performance ou sa fiabilité.

4.2. Comment fonctionne S3 ?

Amazon S3 stocke les données en tant qu'objets dans des compartiments. Un objet est un
fichier et éventuellement les métadonnées qui le décrivent. Pour stocker un objet dans
Amazon S3, vous téléchargez le fichier que vous souhaitez stocker dans un compartiment.
Lorsque vous chargez un fichier, vous pouvez définir des autorisations pour l'objet et les
métadonnées.

Les compartiments sont des conteneurs destinés aux objets. Vous pouvez avoir un ou
plusieurs compartiments. Pour chaque compartiment, vous pouvez contrôler les accès (qui

Page 39 sur 82
peuvent créer, supprimer et consigner les objets du compartiment), consulter les journaux
d'accès au compartiment et à ses objets et choisir la région géographique où Amazon S3
stockera le compartiment et son contenu.

4.3. Classes de stockage Amazon S3

Amazon S3 offre un large éventail de classes de stockage conçues pour différents cas
d'utilisation. Celles-ci comprennent S3 Standard pour le stockage à usage général des données
à consultation fréquente. S3 Intelligent-Tiering pour les données avec des modèles d'accès
changeants ou inconnus. S3 standard – Accès peu fréquent et S3 unizone – Accès peu
fréquent pour les données à longue vie mais peu consultées. Ainsi qu'Amazon S3 Glacier (S3
Glacier) et Amazon S3 Glacier Deep Archive (S3 Glacier Deep Archive) pour les archives à long-
terme et la conservation de données. Si vous avez des exigences de résidence de données ne
pouvant pas être respectées par une région AWS existante, vous pouvez utiliser la classe de
stockage S3 Outposts pour stocker vos données S3 sur site. Amazon S3 propose également
des fonctionnalités pour gérer vos données tout au long de leur cycle de vie. Une fois qu'une
stratégie de Cycle de vie S3 est réglée, vos données se transféreront automatiquement à une
classe de stockage différente sans changements faits à votre application.

4.4. S3 Glacier

S3 Glacier est une classe de stockage sûre, robuste et à faible coût pour l'archivage de
données. Il vous offre un stockage fiable de n'importe quelle quantité de données à des tarifs
compétitifs par rapport aux solutions sur site, voire moins cher que ces dernières. Afin de
proposer des coûts bas tout en restant adapté à différents besoins, S3 Glacier offre trois
options pour l'accès aux archives, avec des délais allant de quelques minutes à plusieurs
heures.

5. Le service lambda

AWS Lambda est un service de calcul sans serveur qui vous permet d'exécuter du code sans
provisionner ou gérer des serveurs, créer une logique de dimensionnement de cluster prenant
en charge la charge de travail, maintenir les intégrations d'événements ou gérer les
environnements d'exécution. Avec Lambda, vous pouvez exécuter du code pour pratiquement
n'importe quel type d'application ou service backend, sans aucune tâche administrative. Il
suffit de télécharger votre code sous forme de fichier ZIP ou d'image de conteneur, et Lambda
alloue automatiquement et précisément la puissance d'exécution de calcul et exécute votre
code en fonction de la demande ou de l'événement entrant, pour n'importe quelle échelle de
trafic.

Le code que vous exécutez sur AWS Lambda s'appelle une « fonction Lambda ». Après la
création de votre fonction Lambda, elle est toujours prête à fonctionner dès que vous la
lancez, comme pour une formule de feuille de calcul. Chaque fonction inclut votre code ainsi
que certaines informations de configuration associées, notamment le nom de la fonction et
les exigences de ressource. Les fonctions Lambda sont « sans état », sans affinité avec
l'infrastructure sous-jacente, Lambda peut donc lancer rapidement autant de copies de la
fonction que nécessaire pour s'adapter au taux d'événements entrants.

Page 40 sur 82
AWS Lambda prend en charge le code issu de Java, Go, PowerShell, Node.js, C#, Python et
Ruby et fournit une API d'environnement d'exécution qui permet le client d'utiliser n'importe
quels langages de programmation supplémentaires pour éditer ses fonctions

Figure 12 : AWS Lambda

Les avantages d’AWS Lambda

Aucun serveur à gérer : AWS Lambda exécute automatiquement votre code, sans que vous
ayez à mettre en service ou à gérer des serveurs. Il suffit d'écrire le code et de le télécharger
sur Lambda sous forme de fichier ZIP ou d'image de conteneur.
Dimensionnement continu : AWS Lambda dimensionne automatiquement votre application
en exécutant le code en réponse à chaque déclencheur. Votre code s'exécute en parallèle et
traite chaque déclencheur indépendamment. La charge de travail est ainsi mise à l'échelle de
façon précise.
Optimisation des coûts grâce au comptage en millisecondes : Avec AWS Lambda, vous ne
payez que pour le temps de calcul que vous consommez, vous ne payez donc jamais pour une
infrastructure sur-provisionnée. Avec AWS Lambda, les frais s'appliquent à chaque 100 ms
d'exécution de votre code et selon le nombre de fois où il est déclenché. Avec Compute
Savings Plan, vous pouvez économiser jusqu'à 17%.
Performances constantes à n'importe quelle échelle : Avec AWS Lambda, vous pouvez
optimiser le temps d'exécution de votre code en choisissant la bonne taille de mémoire pour
votre fonction. Vous pouvez également activer la simultanéité allouée pour que vos fonctions
restent initialisées et hyper prêtes à réagir en millisecondes à deux chiffres.

6. Les services de base de données dans le cloud AWS

AWS propose une large gamme de services de base de données entièrement gérés, conçus
pour chaque cas d'utilisation majeur, elle comprend des bases de données relationnelles, clé-
valeur (non relationnelle), de documents, en mémoire, orientées graphe, chronologiques, à
larges colonnes et de registre. Le portefeuille de bases de données spécifiques d'AWS prend
en charge divers modèles de données et permet de créer des applications basées sur des cas
d'utilisation, distribuées et hautement évolutives.

Page 41 sur 82
Figure 13 : Les différents types de base de données

Amazon RDS

Amazon Relational Database Service (Amazon RDS) vous permet d'installer, de gérer et de
mettre à l'échelle facilement une base de données relationnelle dans le cloud. Ce service offre
une capacité économique et ajustable ainsi qu'une automatisation des tâches administratives
chronophages, telles que l'allocation de matériel, le paramétrage de bases de données,
l'application de correctifs et les sauvegardes.
Amazon RDS est disponible sur plusieurs types d'instances de base de données, optimisées
pour la mémoire, les performances ou les I/O.

Amazon RDS gère le travail qu'implique la configuration d'une base de données relationnelle,
de la mise en service de la capacité d'infrastructure souhaitée à l'installation du logiciel de
base de données. Une fois que votre base de données est opérationnelle, Amazon RDS
automatise les tâches administratives courantes, comme les sauvegardes et le correctif du
logiciel qui fait fonctionner votre base de données.

Étant donné qu'Amazon RDS fournit un accès natif aux bases de données, vous interagissez
avec le logiciel de la base de données relationnelle comme d'habitude. Cela signifie que vous
êtes toujours responsable de la gestion des paramètres de la base de données spécifiques à
votre application. Vous devrez concevoir le schéma relationnel qui convient le mieux à votre
cas d'application et vous serez responsable de tout réglage de performance visant à optimiser
votre base de données pour le flux de travail de votre application.

Amazon DynamoDB

Amazon DynamoDB est une base de données de clé-valeur (Non relationnelle), offrant des
performances de latence de l'ordre de quelques millisecondes, quelle que soit l'échelle. Il
s'agit d'une base de données multi-région, multi-active et durable entièrement gérée, avec

Page 42 sur 82
des systèmes intégrés de sécurité, de sauvegarde, de restauration et de mise en cache en
mémoire pour les applications à l'échelle d'Internet. DynamoDB peut traiter plus de 10 mille
milliards de demandes par jour et supporte des pics de 20 millions de demandes par seconde.

Grâce à DynamoDB, les clients n'ont plus à gérer l’un des problèmes majeurs liés à la mise à
l'échelle des bases de données, à savoir la gestion des logiciels de bases de données et le
provisionnement en matériel nécessaire pour les faire fonctionner. Une base de données non
relationnelle peut désormais être déployée en quelques minutes. DynamoDB met
automatiquement la capacité de débit à l'échelle pour répondre aux exigences de la charge
de travail ; il partitionne et repartitionne vos données au fur et à mesure que la taille de votre
table augmente. De plus, DynamoDB réplique les données de manière synchronisée sur trois
installations au sein d'une région AWS, vous permettant ainsi de bénéficier d'une haute
disponibilité et d'optimiser la durabilité des données.

7. Amazon SNS

Amazon Simple Notification Service (Amazon SNS) est un service de messagerie entièrement
géré pour la communication d'application à application (A2A) et d'application à personne
(A2P), il facilite la configuration, l'exploitation et l'envoi de notifications depuis le cloud. Il
fournit aux développeurs une capacité hautement évolutive, flexible et économique pour
publier des messages depuis une application et immédiatement les envoyer aux abonnés ou
à d'autres applications. Destiné aux développeurs, il est conçu pour faciliter l'accès aux
ressources informatiques à l'échelle du Web. Amazon SNS suit le paradigme de
messagerie « publication-souscription » , avec l'envoi de notifications aux clients à l'aide d'un
mécanisme « Push » qui élimine le besoin de rechercher périodiquement des nouvelles
informations et mises à jour ou de les « interroger ». Avec des API simples ne nécessitant qu'un
effort de développement initial minimal, aucun frais de maintenance ou de gestion et des
tarifs à l'utilisation, Amazon SNS offre aux développeurs un mécanisme simple permettant
d'incorporer un système de notification puissant à leurs applications.

Amazon SNS offre plusieurs avantages qui en font une solution polyvalente pour développer
et intégrer des applications distribuées et faiblement associées :

 Livraison instantanée, basée sur la technologie Push (sans interrogation)


 Des API simples et une intégration facile avec les applications
 Livraison de message flexible sur plusieurs protocoles de transport
 Un modèle économique, sans abonnement ni coût initial
 AWS Management Console, basée sur le Web, offre la simplicité d'une interface
pointer-cliquer

Le service Amazon SNS peut prendre en charge un large éventail de besoins, y compris la
notification d'événements, la surveillance des applications, les systèmes de flux de travail, les
mises à jour d'informations prioritaires et toute autre application qui génère ou consomme
des notifications. Par exemple, Amazon SNS peut être utilisé dans des systèmes de flux de
travail pour transmettre des évènements dans des applications informatiques distribuées,
déplacer des données entre des banques de données ou mettre à jour des systèmes

Page 43 sur 82
commerciaux. Les mises à jour et notifications d'évènement concernant la validation,
l'approbation, les changements d'inventaire et le statut d'expédition sont immédiatement
envoyées aux éléments pertinents du système, ainsi qu'aux utilisateurs finaux. Il est d'usage
d'utiliser SNS pour publier des messages sur les files d'attente de messages Amazon SQS pour
envoyer de manière fiable des messages vers un ou plusieurs composants système de manière
asynchrone. Un autre exemple d'utilisation pour Amazon SNS est de transmettre des
évènements critiques aux applications et périphériques mobiles. Etant donné qu'Amazon SNS
est extrêmement fiable et évolutif, il fournit des avantages considérables aux développeurs
qui construisent des applications qui dépendent des évènements en temps réel.

8. Amazon route 53

Amazon Route 53 fournit des systèmes de noms de domaine hautement fiables et disponibles,
un enregistrement de noms de domaine et des services Web de vérifications de l'état. Il est
conçu pour donner aux développeurs et aux entreprises un moyen extrêmement fiable et
rentable d'acheminer les utilisateurs finaux vers des applications Internet en traduisant des
noms comme example.com par des adresses IP du type 192.0.2.1, que les ordinateurs utilisent
pour se connecter l'un à l'autre. Vous pouvez combiner votre DNS à des services de vérification
de l'état pour acheminer le trafic vers des points de terminaison sains ou surveiller et/ou
prévenir de manière indépendante les points de terminaison. Vous pouvez également acheter
et gérer les noms de domaine tels que example.com et configurer automatiquement les
paramètres DNS pour vos domaines. Route 53 connecte efficacement les requêtes des
utilisateurs à l'infrastructure s'exécutant dans AWS et, notamment, aux instances
Amazon EC2, aux programmes d'équilibrage de charge Elastic Load Balancing ou aux
compartiments Amazon S3. Ce service permet aussi d'acheminer les utilisateurs vers une
infrastructure extérieure à AWS.

Avec Amazon Route 53, vous pouvez créer et gérer vos enregistrements DNS publics. Comme
un annuaire téléphonique, Route 53 vous laisse gérer les adresses IP énumérées pour vos
noms de domaines dans l'annuaire téléphonique DNS. Route 53 répond également aux
demandes de traduction de noms de domaine spécifiques en adresses IP correspondantes
telles que 192.0.2.1. Vous pouvez utiliser Route 53 pour créer les enregistrements DNS pour
un nouveau domaine ou pour transférer les enregistrements DNS pour un domaine existant.
L'API REST pour Route 53 est une API simple et standard qui vous permet de créer, de mettre
à jour et de gérer facilement les enregistrements DNS. Route 53 propose également des
vérifications de l'état pour surveiller l'état et les performances de votre application ainsi que
vos serveurs Web et d'autres ressources. Vous pouvez également enregistrer des nouveaux
noms ou transférer des noms de domaine existants pour qu'ils puissent être gérés par
Route 53.

Route 53 est conçu sur l'infrastructure hautement fiable et disponible d'AWS. La


caractéristique de répartition mondiale de nos serveurs DNS assure une capacité cohérente
pour acheminer les utilisateurs finaux vers votre application en contournant tout problème lié
au réseau ou à Internet. Route 53 est conçu pour fournir le niveau de sécurité de
fonctionnement requis par les applications majeures. En utilisant un réseau anycast global de
serveurs DNS dans le monde, Route 53 est conçu pour répondre automatiquement aux
requêtes à partir de l'emplacement optimal selon les conditions du réseau. En conséquence,
le service offre à vos utilisateurs finaux une latence de requête basse.

Page 44 sur 82
9. Amazon IAM

AWS Identity and Access Management (IAM), permet de contrôler de façon sécurisée l'accès
aux ressources AWS pour vos utilisateurs et groupes d'utilisateurs. On peut créer et gérer des
identités d'utilisateurs (« utilisateurs IAM ») et leur accorder des autorisations d'accès à nos
ressources. On peut également octroyer des autorisations à des utilisateurs en dehors d'AWS
(utilisateurs fédérés).

IAM permet de fournir plus facilement à plusieurs utilisateurs un accès sécurisé à vos
ressources AWS. IAM vous permet de :

 Gérer les utilisateurs IAM et leur accès : Vous pouvez créer des utilisateurs dans le système
de gestion des identités, attribuer aux utilisateurs des informations d'identification de
sécurité individuelles (c'est-à-dire, les clés d'accès, le mot de passe, les dispositifs
d'authentification multi-facteurs) ou demander des informations d'identification de sécurité
temporaires pour leur fournir l'accès aux services et ressources AWS. Vous pouvez spécifier
les autorisations pour contrôler quelles opérations un utilisateur peut effectuer.
 Gérer les accès pour les utilisateurs fédérés : Vous pouvez demander des informations
d'identification de sécurité avec des expirations configurables pour les utilisateurs que vous
gérez dans votre répertoire général, ce qui vous permet de fournir à vos employés et à vos
applications un accès sécurisé dans votre compte AWS, sans leur créer un compte utilisateur
IAM. Vous indiquez les autorisations pour ces informations d'identification de sécurité pour
contrôler quelles opérations un utilisateur peut effectuer.

9.1. Rôle IAM

Un rôle est une entité IAM qui définit un ensemble d'autorisations permettant de demander
des services AWS. Les rôles IAM ne sont associés à aucun groupe ou utilisateur spécifique. Ces
rôles sont endossés par des entités de confiance, telles que des utilisateurs IAM, des
applications ou des services AWS tels qu'EC2.
La différence entre un rôle IAM et un utilisateur IAM c’est que le premier dispose
d'informations d'identification à long terme et peut interagir directement avec les services
AWS, Mais le rôle IAM ne dispose pas d'informations d'identification et ne peut pas envoyer
directement de requêtes aux services AWS.

IV) Modalités de facturation par fonctionnalité


AWS utilise le principe du paiement à l'utilisation pour la tarification des services de cloud.
C’est-à-dire que vous ne payez que pour les services dont vous avez besoin, tant que vous
continuez à les utiliser et ce, sans contrat à long terme ou gestion de licence complexe.
La tarification d'AWS est similaire à celle de services comme l'eau courante et l'électricité.
Vous ne payez que les services que vous utilisez, et si vous cessez de vous en servir, aucun
coût additionnel ou frais de résiliation ne vous sera facturé.

1. Comment payer pour AWS ?

En général on peut choisi entre 3 modèles de facturation selon nos besoins, à savoir :

Page 45 sur 82
Le modèle paiement à l'utilisation : Avec AWS, vous ne payez que pour ce que vous utilisez,
ce qui aide votre organisation à rester agile, réactive et toujours capable de répondre aux
demandes d'échelle.
La tarification à l'utilisation vous permet de gagner en réactivité et de vous adapter facilement
à l'évolution de vos besoins, sans dépassement de budget. Avec un modèle de paiement à
l'utilisation, vous pouvez adapter votre activité en fonction de vos besoins, sans avoir à vous
reposer sur des prévisions. Ainsi, vous limitez les risques de sur- ou de sous-capacité. En ne
payant que pour les services que vous utilisez, vous simplifiez les procédures
d'approvisionnement, vous permettez à votre entreprise de devenir parfaitement élastique et
vous êtes libre de vous concentrer sur les innovations et les inventions.

Réserver pour économiser : Les Savings Plans sont des modèles de tarification flexibles qui
permettent d'économiser sur l'utilisation d'AWS. Ce modèle de tarification vous offre des
tarifs avantageux sur AWS Compute, AWS Machine Learning et les services de base de
données AWS. Savings Plans propose des économies par rapport aux plans à la demande en
échange d'un engagement à utiliser une quantité spécifique (mesurée en dollar par heure)
d’un service ou d’une catégorie de services AWS pendant une période d'un ou de trois ans.

Tarifs dégressifs selon l'utilisation : Avec AWS, vous pouvez profiter de remises sur le volume
et réaliser des économies importantes à mesure que votre consommation augmente. La
tarification est progressive pour les services comme S3 et les transferts de données depuis
EC2. Cela signifie que plus vous utilisez ces services, moins vous payez au Go. De plus, les
transferts de données vers AWS sont toujours gratuits. Par conséquent, quand vos besoins sur
AWS augmentent, vous bénéficiez des économies d'échelle vous permettant d'intensifier
votre utilisation tout en contrôlant vos coûts.

2. Exemple de facturation pour le service EC2

Avec AWS pricing calculator, on peut faire une estimation de coût pour chaque service d’AWS,
la figure suivante montre l’estimation de facturation de service EC2 mais pour une
configuration bien précise :
 Système d'exploitation : Linux
 Quantité : 1
 Modèle de tarification : Saving plans
 Type d’instance : t4g.xlarge
 etc

Alors l’estimation se diffère selon le besoin et la configuration de chacun.

Page 46 sur 82
Figure 14 : Facturation d’EC2

3. Exemple de facturation pour le service Amazon Aurora

Amazon Aurora est une base de données relationnelle compatible avec MySQL et PostgreSQL
créée pour le cloud, qui associe les performances et la disponibilité des bases de données
d'entreprises traditionnelles à la simplicité et à la rentabilité des bases de données à source
libre.

La figure suivante nous donne le coût par mois pour une configuration par défaut, et si une
modification sur la mémoire de cette base de données, son modèle de tarification, etc.
l’estimation sera différente.

Figure 15 : Facturation du service Aurora

V) Les services AWS nécessaires pour la mise en place d’un serveur Exchange sur le
cloud AWS

Le serveur Exchange est un produit de la gamme des serveurs Microsoft, conçu pour la
messagerie électronique, mais aussi pour la gestion d'agenda, de contacts et de tâches, qui
assure le stockage des informations et permet des accès à partir de clients mobiles et de
clients web.

Le serveur Exchange peut se déployer sur AWS avec des services bien spécifiques, et le bon
déploiement de ce serveur permet de profiter du dimensionnement en fonction de
demande ainsi que de la flexibilité et la sécurité d’AWS.

Le schéma suivant présente les services nécessaires pour mettre en place le serveur Exchange
sur le cloud AWS :

Page 47 sur 82
Figure 16 : Architecture du serveur Exchange sur le cloud AWS

 Un VPC configuré avec des sous-réseaux publics et privés sur deux zones de disponibilité
par défaut. Cela fournit l'infrastructure réseau nécessaire pour votre déploiement.

Dans les sous-réseaux publics :


 Des adresses IP élastiques associées à la passerelle NAT et aux instances RD Gateway.
 Des instances RD Gateway basées sur Windows Server et des passerelles de traduction
d'adresses réseau (NAT) pour un accès Internet sortant.

Dans les sous-réseaux privés :


 Des contrôleurs de domaine Microsoft Active Directory.
 Des instances basées sur Windows Server comme nœuds Exchange.
 Exchange Server Enterprise sur chaque nœud. Cette architecture fournit une redondance
et un serveur témoin pour garantir qu'un quorum peut être établi. L'architecture par
défaut reflète l'architecture sur site de deux instances Exchange Server couvrant deux
sous-réseaux dans deux zones de disponibilité.

 Des groupes de sécurité : pour permettre un flux de trafic sécurisé entre les instances
déployées dans le VPC.

 Amazon S3 : pour stocker et récupérer les données.


 AWS Secrets Manager : pour chiffrer, stocker et extraire de façon sécurisée des
informations d'identification pour vos bases de données et autres services.

Page 48 sur 82
 Une Ressource Parameter Store : pour fournir un stockage hiérarchique de la gestion des
données de configuration et de la gestion des secrets. On peut stocker des données telles
que des mots de passe, des chaînes de base de données et des codes de licence en tant
que valeurs de paramètre.
 AWS Certificate Manager : pour allouer, gérer et déployer des certificats Secure Sockets
Layer/Transport Layer Security (SSL/TLS) sur les ressources gérées AWS afin de les utiliser
avec les services AWS et les ressources internes connectées

VI) Conclusion
Au terme de notre étude, nous conclurons qu’AWS est très riche en termes de services et
fonctionnalités qui nécessitent les bien comprendre. La deuxième partie était réservée pour
détailler la facturation de quelques services AWS et de donner l’architecture de déploiement
du serveur Exchange.
Le chapitre suivant portera sur le déploiement d’une application web en utilisant les services
AWS.

Ch
ap Page 49 sur 82
Chapitre IV :

Déploiement d’une application web


sans serveur sur le cloud AWS

Page 50 sur 82
I) Introduction
Lors de ce chapitre nous allons présenter une architecture d’une application sans serveur en
utilisant quelques services AWS, ainsi que les différents tests qu’on a effectués.

II) Déployer une application web sans serveur sur le cloud AWS
1. Présentation

Les applications sans serveur éliminent la nécessité de mettre en service, déployer ou gérer
des serveurs ou d'autres infrastructures. Elles sont équipées d'une haute disponibilité et se
mettent automatiquement et continuellement à l'échelle. On peut utiliser l'un des nombreux
services AWS entièrement gérés pour créer et exécuter des applications sans serveur,
notamment AWS Lambda pour les calculs, Amazon API Gateway pour les API et
Amazon DynamoDB pour les bases de données.

Notre application présentera aux utilisateurs une interface utilisateur HTML permettant de
saisir un mail d’un employé qui va être pris en charge et interagira sur le backend avec un
service web REST pour soumettre la demande et envoyer quelques informations de cet
employé (le nom et prénom).

Afin de réaliser cette application on a besoin :

 Compte Aws afin de s’interagir avec la plateforme Aws.


 Postman qui est un client API qui permet aux développeurs de créer, partager, tester
et documenter facilement des API. Ceci est fait en permettant aux utilisateurs de créer
et d'enregistrer des requêtes HTTP/s simples et complexes, ainsi que de lire leurs
réponses. Le résultat - un travail plus efficace et moins fastidieux.

2. Architecture de l’application

Figure 17 : L’architecture de l’application à déployer

Page 51 sur 82
Alors on va essayer de déployer cette petite architecture qui se compose des services AWS
suivantes :

AWS S3 : dans ce service on va stocker notre fichier HTML qui permet d’afficher une interface
à l’utilisateur pour envoyer sa demande.
AWS API Gateway : exposer le service REST au monde extérieur, il n'aura pas de logique
métier
AWS Lambda : est la fonction de service réelle qui va exécuter notre logique métier et qui se
connecte à la base de données DynamoDB, lambda nécessite un déclencheur pour qu’elle soit
exécuté et ce déclencheur c’est API Gateway
AWS DynamoDB : c’est une base de données non relationnelle dans laquelle on va créer et
stocker les données, et ces données seront récupérer sur une page web à l’aide du Get API
Gateway.

3. Connexion à la console Management AWS

Afin de se connecter à la console Aws, c’est obligatoirement d’avoir un compte Aws

Figure 18 : AWS Console Managment

Alors, on se connecte à la console en saisissant une adresse mail et un mot de passe.

On se trouve après avec tous les services Aws qu’on peut déployer.

Page 52 sur 82
Figure 19 : les services AWS

A ce stade, on peut facilement choisi le service dont on a besoin et commencer le travail.

3. Création de GET API Gateway

La première étape c’est de créer une API plus précisément une GET API Gateway et le tester
par la suite. Il suffit de taper « API Gateway » dans la barre de la recherche des services Aws
pour commencer à créer l’API.
Ensuite, il y a le choix du type d’API

Figure 20 : Types d'APIs

On choisit API REST comme type et clique sur création.

Pour créer une API, il est demandé de leur donner un nom et une description, cette dernière
n’est pas nécessaire.

Page 53 sur 82
Figure 21 : Création de l'API

On clique sur « Créer une API », la fenêtre ci-dessous s’affiche et la chose à faire maintenant
c’est de créer une ressource de données. Pour se faire, on clique sur « Actions » et on choisit
« Créer une ressource »

Figure 22: Création d'une ressource d'API

Après, on donne un nom a cette ressource et le chemin de celle-ci est créer automatiquement
comme c’est montré ci-dessous :

On active le CORS Gateway et on clique sur « Créer une ressource ».

CORS (Cross-origin resource sharing) est une fonctionnalité de sécurité du navigateur qui
restreint les requêtes HTTP lancées à partir de scripts exécutés dans le navigateur.

Page 54 sur 82
Si notre API est dans un domaine et on veut se connecter à cette API d’un autre domaine
différent, il faut activer cette fonctionnalité.

A l’intérieur de cette ressource, on va créer une méthode, pour se faire, sur « Actions » nous
choisissons « Créer une méthode ».
Toutes les méthodes s’affichent et on choisit la méthode « GET »

Figure 23: Création d'une méthode

Pour le point d’intégration de cette méthode, normalement notre but est d’intégrer notre API
GET à travers la fonction Lambda, mais pour le moment on va retourner une réponse « Mock »
afin de tester notre API GET.

Figure 24: le point d'intégration de la méthode

L'intégration par « Mock » permet d'utiliser des modèles de mappage pour générer la sortie
de notre méthode API sans avoir à communiquer avec un backend.
On clique sur « Enregistrer » et on obtient la fenêtre suivante :

Page 55 sur 82
Figure 25: Exécution de la méthode

Alors puisque on a demandé une intégration par Mock, on a besoin maintenant d’avoir une
réponse à cette demande pour ceci, on clique sur « Réponse d’intégration » et on se trouve
devant la fenêtre suivante ou on va générer un modèle de mappage pour tester notre API.

Figure 26: Générer un modèle de mappage

Le modèle de mappage doit s’écrit en Json, et faut enregistrer ce modèle de mappage.

Figure 27: modèle de mappage

Page 56 sur 82
Après l’enregistrement de ce modèle, il faut déployer notre API parce que si on veut tester
cette dernière il nous faut avoir un URL, et il faut noter qu’après chaque changement au niveau
de l’API c’est nécessaire de la redéployer.
Sur « Actions », on choisit « Déployer API »

Figure 28: Déploiement de l'API

Une fenêtre s’affiche pour déployer l’API dans une étape bien spécifique, si possible de créer
plusieurs étapes selon l’application, alors on choisit une nouvelle étape pour le déploiement
et on lui affecte un nom puis on clique sur « Déployer ».

Figure 29: Etape de déploiement de l'API

Ensuite, un URL s’affiche automatiquement qui va nous permet d’accéder à notre API.

Page 57 sur 82
Figure 30: URL de l'API

Remarque : l’URL obtenu est un URL root, si on veut accéder à cet URL on ne va rien obtenir
car il se peut que l’API contienne des méthodes sensibles par exemple.
Pour montrer ceci, on va copier l’URL et le copier sur postman :

Figure 31: Premier test Postman

Alors comme c’est montré ci-dessus, on obtient un message « Jeton d'authentification


manquant », pour résoudre ce problème il faut spécifier dans l’URL le nom de la méthode
qu’on a déjà créé, l’URL devient : https://cikrbeouqa.execute-api.us-east-
1.amazonaws.com/App/getinformationbyemail

Page 58 sur 82
Figure 32: Deuxième test Postman

Alors on a obtenu la réponse qu’on a déjà écrite dans le modèle de mappage, cela signifie que
notre API est fonctionnelle ce qui nous permet de passer à la deuxième étape.

4. Création de la fonction lambda

Dans cette étape on va connecter notre API Get avec la fonction lambda. Pour ce faire, sur la
barre de recherche des services Aws, on tape AWS lambda afin de créer la fonction lambda.

Figure 33: AWS Lambda

On clique sur « Créer une fonction », la fenêtre suivante s’affiche ou il faut donner un nom
pour la fonction lambda et de choisir le langage pour créer cette fonction.

Figure 34: Fonction lambda

Page 59 sur 82
Aussi, dans la même fenêtre on trouve l’option d’autorisations cela signifie les niveaux
d'autorisations qu’on veut donner à notre fonction lambda, donc on va créer un rôle qui va
définir les autorisations pour cette fonction.

Figure 35: Autorisation de la fonction lambda

La création du rôle se fait par le service IAM (Identity and Access Management).

Création du rôle par IAM

Au niveau de l’interface Aws console management, on cherche le service IAM, une fenêtre
s’affiche, pour créer un rôle on clique : Gestion des accèsRôlesCréer un rôle.

Figure 36: Création du rôle IAM

Ensuite, il faut sélectionner le service dans lequel on va appliquer le rôle IAM, pour nous on
sélectionne lambda, et on clique sur « Suivant : Autorisations ».

Page 60 sur 82
Figure 37: Cas d'utilisation du rôle IAM

Une nouvelle fenêtre s’affiche qui contient toutes les autorisations existantes, les
autorisations ça dépend des besoins et les conditions de chaque application, pour notre cas
on va choisi deux autorisations :

 AWSLambda_FullAccess.
 AmazonDynamoDBReadOnlyAccess

Page 61 sur 82
Figure 38: Le choix d'autorisations pour la fonction lambda

On laisse tous les étapes par défaut, et dans la dernière partie de vérification il faut donner un
nom pour ce rôle IAM comme c’est illustré dans la figure suivante.

Page 62 sur 82
Figure 39: Vérification de rôle IAM

Donc, on revient vers la fonction lambda pour ajouter ce rôle IAM

Figure 40: L'ajout du rôle a la fonction lambda

Après on clique sur « Créer une fonction ».

Test de la fonction lambda

Afin de tester cette fonction, on copier le même Json déjà créer dans le modèle de mappage
pour la réponse de l’intégration Mock et on exécute le code.

Page 63 sur 82
Figure 41: Code Json sous la fonction lambda

Après l’exécution, on obtient la réponse et ça montre que notre fonction lambda est
fonctionnelle.

Figure 42 : Exécution du code

5. Connexion de la fonction lambda à l’API

Avant de connecter l’API à la fonction lambda, il faut supprimer le modèle de mappage qu’on
a déjà créé pour une réponse Mock.

Page 64 sur 82
Figure 43: Suppression de modèle de mappage

Et maintenant, on va changer la demande d’intégration par la fonction lambda comme


suivant :

Figure 44 : Demande d'intégration par la fonction lambda

On sélectionne « Fonction Lambda », et on spécifie la région et automatiquement notre


fonction lambda créée dans cette région va s’afficher.

On clique sur enregistrer, et surtout ne pas oublier de d’éployer l’API avant de passer à la
phase de test.

Phase test :
Pour tester si on peut obtenir des réponses depuis la fonction lambda, pour cela on va faire
un petit changement dans le code de la fonction lambda pour différencier le résultat de celle
de résultat de Mock.

Page 65 sur 82
Alors voici le code de test.

Figure 45: Code de test

D’après Postman, on copie l’URL de notre API en ajoutant la méthode à l’URL bien sûr notre
méthode comme suit :

Alors, on a pu retourner les données de la fonction lambda d’après l’API Get avec succès.

La chose à faire après c’est de connecter DynamoDB depuis la fonction lambda, afin de pouvoir
retourner les données depuis la table de la base de données DynamoDB

6. Le service AWS DynamoDB

Alors d’après les services Aws, on choisit le service DynamoDB, la fenêtre suivante s’affiche et
on clique sur « Créer une table »

Page 66 sur 82
Figure 46 :Amazon DynamoDB

Ensuite, il faut donner un nom pour notre table et son clé primaire.

Figure 47 : Création de la table DynamoDB

Après, on clique sur « Créer une table ».

On va ajouter maintenant les données dans la table pour se faire on procède comme suit :
Nom de tableElémentsCréer un élément

Figure 48: Création des éléments de la table

Une fenêtre s’affiche qui nous permet d’ajouter les données à ajouter.

Page 67 sur 82
Figure 49 : L'ajout des données

On clique sur « Enregistrer » et on constate que les éléments se figurent dans notre table
DynamoDB.

Figure 50 : Table DynamoDB

Dès que notre table a été bien crée, on va passer pour retourner ces données d’après la
fonction lambda.

7. Obtention les données de la table DynamoDB par la fonction lambda

Afin que la fonction lambda connecte au DynamoDB, il faut créer le code suivant :

Page 68 sur 82
Figure 51: code de la connexion avec DynamoDB

Ensuite, on exécute le code en configurant l’événement de test.

Figure 52: Evénement de test

Après l’enregistrement de l’évènement, on exécute le code et on obtient les informations


depuis la table DynamoDB qui correspond à l’évènement.

Page 69 sur 82
Figure 53: Résultat du test (Data depuis DynamoDB)

Un autre test :

Si par exemple, dans l’événement nous saisissons une valeur qui n’existe pas dans notre
table, qu’elle sera le résultat ?
Alors voici l’évènement cette fois ci, on clique sur « Enregistrer »

Figure 54: Test avec un autre évènement

Lorsqu’on exécute le code on reçoit une réponse vide, car la table DynamoDB ne contient
des informations qui correspondent à l’évènement qu’on a créé.

Page 70 sur 82
Figure 55 : Résultat du test

Alors ces tests montrent que la fonction lambda est connectée au DynamoDB.
Maintenant, on va passer pour tester la fonction lambda depuis API.

8. Test de la fonction lambda depuis API

Puisque notre fonction lambda est connectée au DynamoDB il faut qu’on ajoute des
paramètres au niveau de l’API.
Donc on va ajouter le paramètre de l’« EmailID » qui représente la clé primaire de notre
table DynamoDB, alors si un utilisateur veut accéder à cette API sans ce paramètre, l’API ne
va rien retourner.

Figure 56: Ajout de paramètre pour l'API

Pour que l’utilisateur puisse entrer le paramètre demandé, on écrit un petit code Json dans
le modèle de mappage de demande d’intégration : GETDemande d’intégration Modèles
de mappages

Page 71 sur 82
Figure 57: Code Json pour l'ajout du paramètre

Après cette étape il faut déployer l’API avant de faire les tests. Une fois le déploiement est fait
on passe pour tester notre API à l’aide du Postman.

De même, on donne l’URL et on clique sur « Send», et c’est clair qu’on n’obtient pas les
données depuis notre fonction lambda à cause de manque de paramètre.

Figure 58: Test postman sans paramètre

Page 72 sur 82
Toujours sur Postman dans l’onglet « Params », on pose notre clé primaire qui est lui-même
le paramètre nécessaire ainsi que sa valeur et on envoie la demande.

Figure 59: Test postman avec paramètre

D’après ce test on peut conclure que les trois Aws services qu’on a déployés sont fonctionnelle
et chaque service est connecté à l’autre et on peut obtenir nos informations crées sur la table
DynamoDB depuis API en utilisant la demande d’intégration par la fonction lambda.

Et maintenant, il nous reste de déployer le dernier composant de notre architecture qui est
l'interface graphique basé HTML, c’est une page web statique avec laquelle l’utilisateur va
demander les informations.

Pour la page web statique ou bien l’interface utilisateur, nous avons la réaliser à l’aide d’un
code HTML et on a obtient le résultat suivant :

Page 73 sur 82
Figure 60: Page web statique

Notre page possède un champ pour saisir l’email à chercher, est un bouton
« GetEmployeeInfo » qui permet de récupérer le nom et le prénom.
Ces informations on doit les récupérer normalement depuis DynamoDB.

9. Création du compartiment S3

Au niveau d’AWS console management on cherche le service S3, la fenêtre suivante s’affiche
ou on va créer un compartiment.

Figure 61: Création du compartiment S3

Lorsque on clique sur « Créer un compartiment » une nouvelle fenêtre s’affiche pour donner
un nom à notre compartiment et de sélectionner la région.

Page 74 sur 82
Figure 62: Configuration du compartiment

Après cette configuration, notre compartiment est bien créé.

Figure 63: compartiment crée

Il faut maintenant activer l’hébergement de site web statique, au niveau de notre


compartiment il a l’option « Hébergement de site web », on clique sur « Modifier »

Page 75 sur 82
Figure 64: Activation d'hébergement de site web statique

Un lien URL s’affiche automatiquement et ce le même qu’on va utiliser pour accéder à note
site web.

Figure 65: URL de site statique hébergé

Jusqu’au moment notre compartiment est toujours vide, maintenant il faut charger nos
fichiers.

On passe à l’onglet « objets » de notre compartiment et on clique sur « charger ».

Page 76 sur 82
Figure 66: chargement des fichiers dans le compartiment S3

Ensuite, on sélectionne les fichiers nécessaires et on les charger dans notre compartiment.

Figure 67: chargement des fichiers avec succès

10. Test d’hébergement de site statique

Pour ce test, on va copier l’URL obtenu après l’hébergement dans un navigateur et on se


trouve avec la page suivante :

Figure 68: Test d’hébergement de site statique

Alors l’accès au site n’est pas autorisé, c’est seulement parce que Par défaut, les
compartiments et tous les objets qui s'y trouvent sont privés.

Page 77 sur 82
Autorisation de l’accès public :

Tout d’abord on désactive tous les ACLs de notre compartiment

Figure 69: Désactivation de tous les ACLs

Après, il faut modifier la stratégie de compartiment comme suit :

Page 78 sur 82
Figure 70: Stratégie de compartiment

Après ces modifications notre compartiment sera accessible publiquement

Figure 71: Compartiment accessible publiquement

Alors, maintenant l’utilisateur peut accéder au site et saisir l’email à chercher afin qu’il obtient le nom
et le prénom correspond à cet email.

10. Test de fonctionnement de l’application

Page 79 sur 82
Figure 72: Test de fonctionnement de l'application

Alors on a réussi à déployer une application sans serveur qui nous permet d’obtenir des données d’après
DynamoDB sur un site web hébergé dans le compartiment S3.

III. Conclusion
De cette manière, nous aurions terminé la partie de l’application sans serveur qui nous permet de
récupérer les données sur un site web statique.

Page 80 sur 82
Conclusion générale

Dans le cadre de notre projet de fin d’études, nous avons fait tout d’abord une étude
sur le cloud computing et par la suite, on a passé à l’étude des services de la plateforme AWS
qui représente la plateforme de services cloud développée par le géant Amazon.

Le déploiement de notre simple application sans serveur en utilisant les services AWS nous a
permet de comprendre comment les services AWS se connecte entre eux, même si
l’application a besoin encore de se développer.

Le présent rapport détaille toutes les étapes par lesquelles nous sommes passés pour
arriver au résultat obtenu. Nous avons commencé par comprendre le contexte général du
projet après on a passé pour réaliser des tutoriels qui sont disponible sur la plateforme AWS
pour qu’on puisse familiariser avec cette nouvelle environnement.

Finalement, nous souhaitons très fortement qu’il gagne la satisfaction des membres de jury.

Page 81 sur 82
Webographie
1) https://aws.amazon.com/fr/what-is-aws/?nc1=f_cc
2) https://www.delltechnologies.com/fr-ma/learn/cloud/cloud-architecture.htm
3) https://www.datamation.com/cloud/aws-vs-azure-vs-google-cloud/
4) https://www.gartner.com/reviews/market/public-cloud-iaas
5) https://blogs.oracle.com/oracle-france/quel-est-le-meilleur-cloud
6) https://www.config.ma/actualite-letat-de-la-securite-du-cloud-2020/
7) http://www.nicolasgrevet.com/files/mr09_ngrevet_cloudcom.pdf
8) https://www.kaspersky.fr/resource-center/definitions/what-is-cloud-security
9) https://www.redhat.com/fr/topics/cloud-computing/what-is-iaas
10) https://vixra.org/pdf/1605.0018v1.pdf

Page 82 sur 82

Vous aimerez peut-être aussi