Académique Documents
Professionnel Documents
Culture Documents
Présenté le 05/07/2021
o BALBOUL Younes
o MAHFOUDI Mohammed
o EL GHAZI Mohammed
o FATTAH Mohammed
Page 1 sur 82
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.
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.
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.
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.
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.
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
C P
D R
E S
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 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.
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
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 :
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.
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
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
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.
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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%.
Page 26 sur 82
CSP Points forts Points faibles
• Position dominante sur le
marché
• Offres étendues et
AWS matures • La gestion des coûts
• 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
• 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.).
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.
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.
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
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 :
Etape 5 : migrer
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.
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.
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.
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.
Page 33 sur 82
Figure 8 : les services de la catégorie calcul
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.
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.
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.
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.
2. EC2
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é.
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.
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.
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é.
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.
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
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.
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 :
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.
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.
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.
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.
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
Page 46 sur 82
Figure 14 : Facturation d’EC2
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.
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.
Des groupes de sécurité : pour permettre un flux de trafic sécurisé entre les instances
déployées dans le VPC.
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 :
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).
2. Architecture de l’application
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.
On se trouve après avec tous les services Aws qu’on peut déployer.
Page 52 sur 82
Figure 19 : les services AWS
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
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 »
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 :
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 »
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.
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.
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 »
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 ».
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 :
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.
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.
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.
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.
La création du rôle se fait par le service IAM (Identity and Access Management).
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èsRôlesCréer un rôle.
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
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.
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
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.
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
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.
On va ajouter maintenant les données dans la table pour se faire on procède comme suit :
Nom de tableElémentsCréer un élément
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.
Dès que notre table a été bien crée, on va passer pour retourner ces données d’après 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
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 »
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.
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.
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 : GETDemande 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.
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.
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.
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
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.
Jusqu’au moment notre compartiment est toujours vide, maintenant il faut charger nos
fichiers.
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.
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 :
Page 78 sur 82
Figure 70: Stratégie de compartiment
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.
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