L’infonuagique est un terme regroupant de nombreux concepts:
PaaS: Plateforme as a Service
IaaS: Infrastructure as a Service
SaaS: Software as a Service
…
Il existe aussi des solutions privées et des solutions publiques.
Enfin nous étudierons une solution publique AWS (Amazon Web Services).
Il faut noter que l’infonuagique n’a pu apparaitre que grâce à la virtualisation, les deux sont inséparables.
L’infonuagique est un terme générique qui recouvre plusieurs concepts bien différents.
Une définition générale serait: un ensemble de matériel, réseau et logiciel fournissant un service pouvant être utilisé à volonté et facturé en fonction de l’utilisation.
Plutôt que chaque entreprise ou utilisateur acquiert de la puissance de calcul, de réseau, ou des applications dont les licences sont très couteuses, ce sont des fournisseurs de services qui seront chargés de s’équiper et leur ressources seront mises à disposition et utilisables depuis n’importe où dans le monde.
D’autres propriétés caractérisent l’infonuagique:
L’élasticité du service: l’utilisateur peut augmenter ou diminuer la quantité de ressources dont il dispose.
Libre service: l’utilisateur effectue la majorité des manipulations lui-même.
La mutualisation: les utilisateurs partagent les ressources même si elles sont compartimentées.
L’infonuagique telle qu’on la conçoit généralement est l’une des trois solutions IaaS, PaaS, SaaS.
Il s’agit de l’infonuagique de plus bas niveau. Le service fourni consiste simplement en machine virtuelle.
C’est l’utilisateur qui installe son système d’exploitation et ses applications.
Les utilisateurs de IaaS n’ont ainsi pas besoin d’acheter du matériel et peuvent faire face à des variations de besoin dans leur puissance de calcul en créant ou en supprimant des machines virtuelles.
Le réseau sur lequel repose les machines virtuelles est bien sûr fourni avec les machines virtuelles ainsi que le stockage.
Ce n’est pas la solution la plus utilisée.
Il s’agit du niveau juste au dessus de IaaS.
Une machine virtuelle et son système d’exploitation sont fournis.
L’utilisateur peut installer ses propres outils.
Cette solution permettra une plus grande réactivité en cas de croissance car l’installation de l’OS est déjà faite.
Des images de machines virtuelles avec les différents systèmes sont déjà prêtes, il ne reste à l’utilisateur qu’à lancer des machines basées sur ces images.
Dans cette solution aussi, le réseau et le stockage sont à la charge du fournisseur.
Dans ce cas, une application est le service qui sera fourni.
L’utilisateur n’aura pas besoin de gérer les nouvelles versions ou les mises à jour de sécurité.
L’application est louée par l’utilisateur.
Elle pourra être utilisée depuis plusieurs plateforme et n’est pas nécessairement liée à un ordinateur.
Exemple: Office 365, Gmail…
Et il existe aussi d’autres formes:
DaaS (Desktop as a Service): un environnement de bureau est loué à l’utilisateur.
STaaS (Storage as a Service): de l’espace disque est le service.
BaaS (Backup as a Service): des applications de sauvegarde et le stockage des données.
NaaS (Network as a Service): le réseau est mis à disposition des utilisateurs
…
La différence réside dans la clientèle à laquelle s’adresse le nuage.
Un cloud publique fournit un service s’adressant à tous: entreprises, individus…
Un cloud privé fournira le service à une clientèle beaucoup plus restreinte, souvent la clientèle est interne à l’entreprise propriétaire du l’infrastructure.
Dans ce cas le rôle sera souvent de fournir les ressources informatiques aux autres services qui pourront créer des serveurs à la demande et seront facturés en fonction de leur utilisation.
L’avantage est de simplifier grandement les procédures de création de serveurs puisque chaque service crée lui-même ses serveurs lorsqu’il en a besoin.
Les client sont aussi responsabilisés car ils sont facturés en fonction de leur utilisation et essayeront donc d’utiliser uniquement les ressources dont ils ont besoin.
Il existe d’autres modèles comme des clouds hybrides, des clouds de communauté ou des multiclouds…
Dans les années 1950, les main frame ressemblait (de loin) à du cloud, la puissance de calcul était centralisée et les utilisateurs s’en servaient lorsqu’ils en avaient besoin.
Ensuite, sont apparus les hébergeurs web et les hébergeurs de serveurs (années 2000). Ce sont eux qui mettaient une infrastructure, avec ou sans application, à la disposition de leur client.
Mais c’est avec la généralisation des connexions internet haut débit et l’apparition de la virtualisation que le cloud comme nous l’entendons aujourd’hui a pu apparaitre.
Plusieurs enjeux sont à prendre en compte lors de l’utilisation d’une solution d’infonuagique.
Le fait que les ressources soient mutualisées signifie que vos données sont stockées au même endroit que les données des autres clients et que le fournisseur a accès à vos données.
Le fournisseur doit s’assurer que les données sont compartimentées et qu’elles ne sont accessibles que par son propriétaire légitime.
De plus, les données sont-elles stockées de façon cryptées?
Comme l’utilisation de l’infonuagique nécessite une connexion Internet, les données vont devoir être échangées. La façon dont elles le seront doit aussi être pris en compte pour garantir leur sécurité.
Avant d’utiliser des services d’infonuagique, une entreprise devra réfléchir à de nombreux points:
Confidentialité des données
Disponibilité. Que se passe-t-il si le service n’est plus disponible? Quelles sont les pénalités? Quel est le taux de disponibilité garanti par le fournisseur?…
Débit réseau. Le débit garanti chez le fournisseur est-il suffisant pour le service demandé? Sa disponibilité est-elle garanti par le fournisseur ou un sous-traitant?
Lieu d’hébergement: au Canada, les données sujettes au droits d’auteurs n’ont pas le droit d’être hébergée en dehors du pays.
Réversibilité. Pourrez-vous changer d’avis et quitter le service d’infonuagique ou serez-vous prisonniers pour toujours?
Selon le type d’infonuagique, il existe plusieurs fournisseurs.
SaaS:
Microsoft avec Office 365 est sans doute le plus connu.
ServiceNow, un CRM (Customer Relation Management) ou SalesForce.
IaaS:
Microsoft Azure
OVH
PaaS:
Microsoft Azure
Amazon EC2
Google App Engine
Après Authentification, on choisit EC2: Electronic Cloud Computing.
Il est possible de choisir où seront stockées les machines virtuelles.
Ensuite, en cliquant sur “Lancer une instance” vous arrivez sur une page vous proposant les systèmes les plus courants. Vous remarquerez que Centos n’est pas présent.
Pour lancer un Centos, on choisira AWS Marketplace.
Puis en descendant, vous trouverez “Operating systems”.
Vous pouvez choisir la première ou la deuxième image (notez le “Admissible à l’offre” signalant que les VM micro – 1Go de RAM – sont gratuites pour une utilisation cumulée de 750h par mois).
Regardez les prix. T2 Large est une machine à 8Go de RAM et coute environ $ 0.12 / h.
C’est sur cette page que vous choisissez la taille de l’instance: nombre de CPU, quantité de RAM, bande passante. ATTENTION de bien sélectionner l’offre gratuite.
Parcourez la page pour voir les actions possibles.
Avant de lancer la VM, il faut modifier la description du groupe de sécurité car elle contient des caractères invalides.
Modifiez le commentaire du groupe de sécurité.
Vérifiez que vous avez bien une instance de type t2.micro.
Le première fois, vous devez créer une paire de clés (vous utiliserez les mêmes pour les machines suivantes). Elles vous permettront de vous connecter aux VMs.
Puis visualisez votre instance.
En faisant un click droit sur l’instance, choisissez “Connexion” pour afficher les instructions vous permettant de vous connecter à l’instance.
Créez deux instances Centos (utilisez le même groupe de sécurité pour les deux instances).
Quelle est leur adresse IP privée?
Quelle est leur adresse IP publique?
Connectez-vous à une des deux instances puis essayez de faire ssh vers l’autre instance.
Le pouvez-vous en utilisant l’adresse IP publique de l’autre instance?
Et son adresse IP privée?
Modifiez le mot de passe de l’utilisateur centos.
Modifiez le mot de passe de l’utilisateur root.
Pouvez-vous faire un ping d’une instance à l’autre?
Sur la page des instances, vous pouvez faire un click droit sur vos instances ou les sélectionner et utiliser le menu “Actions” pour:
Démarrer une instance
Arrêter une instance
Résilier une instance (la supprimer)
Les groupes de sécurité représentent les règles de pare-feu qui protègent votre instance.
Par défaut, la règle créée pour une instance Linux autorise ssh (port TCP 22) en entrée depuis n’importe où dans le monde. C’est le seul port ouvert en entrée.
C’est la raison pour laquelle vous ne pouvez pas utiliser ping.
Une règle de pare-feu fonctionne toujours de la même façon:
Service | IP src | Port src | IP dest | Port dest | Protocole | Action |
---|---|---|---|---|---|---|
DNS | * | * | a.b.c.d | 53 | UDP | Accept |
Il est possible de créer ou modifier des groupes de sécurité et de les appliquer ensuite à une ou plusieurs instances.
Un groupe de sécurité peut contenir une ou plusieurs règles de sécurité.
Pour créer un groupe de sécurité, on sélectionne le menu “Groupes de sécurité”.
Puis on choisit de créer un groupe de sécurité.
En cliquant sur ajouter une règle, vous pouvez créer des règles de firewall standards.
De la même façon, on peut modifier les règles existantes.
Si vous disposez de plusieurs groupes de sécurité (un groupe standard pour toutes les machines et un groupe pour les serveurs web par exemple), vous devrez attribuer plusieurs groupes à une instance.
Pour ceci, on sélectionne une instance.
Sélectionnez les groupes de sécurité à attribuer à l’instance. La modification est prise en compte immédiatement.
Reprenez vos deux instances et modifiez le groupe de sécurité existant pour que les deux machines puissent communiquer par ping.
ATTENTION: seule vos machines virtuelles peuvent communiquer entre elles à l’aide du ping.
Le groupe de sécurité existant accepte les connexions ssh depuis la planète entière, limitez l’accès ssh à votre adresse IP.
ATTENTION: réfléchissez bien et contactez l’enseignant pour valider votre adresse IP avant de créer la règle.
Par défaut, vos machines Linux ont un volume de 8 Go.
Il est possible d’augmenter la taille du volume ou d’ajouter des volumes.
Attention: si vous augmentez la taille du volume au niveau du système. Dans Linux, il faudra que le volume soit en LVM.
ATTENTION: l’ajout de volume de stockage est payant. Pensez à supprimer le volume à la fin du cours.
Pour créer un volume, choisissez le menu “Volumes” puis clickez sur “Créer un volume”.
Entrez une taille puis clickez sur “Créer un volume”.
À ce moment là, notez l’id car ce sera la façon de le retrouver.
Une fois créé, vous pourrez lui donner un nom.
Pour attacher le volume à une instance, faire un click droit sur le volume:
Ensuite il reste à choisir l’instance à laquelle attacher le volume.
Seules les instances démarrées seront affichées.
Ajoutez un volume de 2 Go à une de vos instances.
Formatez le et montez le dans le répertoire /mnt
.
Testez que le volume est monté (df -h
) et que vous pouvez écrire dessus.
Supprimez le volume après le formatif.
Chacune de vos instances se voit attribuer une adresse IP publique en NAT.
Par défaut, ces adresses IP sont temporaires. Si vous arrêtez les VM puis les redémarrez, elles auront une autre adresse IP.
Il est possible d’obtenir une adresse IP fixe pour vos VM et de l’enregistrer éventuellement sur un serveur DNS.
Attention: une adresse IP élastique est gratuite tant qu’elle est associée à une instance en fonctionnement sinon elle vous sera facturée.
Pour obtenir une adresse IP fixe:
Clickez sur “Allouer” et vous obtiendrez une adresse IP fixe.
Vous devez ensuite associer votre adresse IP à une instance. Faites un click droit sur l’adresse IP et choisissez “Associer l’adresse”.
Choisissez l’instance et l’adresse IP privée qui sera NATée sur cette IP publique.
Attention: vous perdrez l’adresse IP publique que vous aviez et donc votre connexion ssh.
Vous pourrez aussi libérer cette association et attribuer l’adresse à une autre instance.
Vous pouvez enregistrer cette adresse dans le serveur DNS autoritaire pour votre domaine.
Pour attribuer cette adresse à une autre instance, vous devrez la dissocier puis l’associer à nouveau.
Pour pouvoir la libérer définitivement, vous devrez d’abord la dissocier.
Installez Apache sur une de vos instances.
Attribuez une adresse IP élastique à votre instance et communiquez la à l’enseignant.
Configurez votre serveur poste pour que le serveur DNS utilisé soit l’adresse fournie par l’enseignant.
À l’aide de votre navigateur, accédez à: http://
N’oubliez pas de libérer l’adresse IP élastique une fois que tout fonctionne.
Vous devrez ouvrir les ports web pour pouvoir accéder à votre site web.
Lorsqu’une instance est configurée, il est possible de prendre une image pour pouvoir la cloner ou la sauvegarder. Pour ceci, dans le menu instances, faire un click droit sur l’instance pour laquelle vous désirez une image puis choisir “Image” et “Créer l’image”.
Donnez un nom et une description à votre image. Notez qu’il est possible d’ajouter des volumes avant de prendre l’image.
Une fois l’image créée, elle apparaît à deux endroits:
Les AMI
Les instantanés
Pour utiliser l’image que vous avez créée pour lancer des instances, vous passerez par le menu AMI.
Vous arrivez ensuite sur les menus de lancement d’une instance:
Choix du type de l’instance
Choix des groupes de sécurité
…
Les opérations sont les mêmes que celles vues pour lancer une instance mais la différence est que le résultat sera un serveur identique à celui qui a servi à prendre l’image.
Créez une image de votre serveur web.
Lancez une nouvelle instance à partir de votre image.
ATTENTION: assurez-vous de choisir le type t2.micro qui est gratuit.
AWS fournit un langage de script qui permet de simplifier certaines tâches comme créer plusieurs machines virtuelles similaires.
Il faudra d’abord installer “aws cli” qui est l’outil de ligne de commande pour aws.
Cet outil existe pour (presque) tous les systèmes d’exploitation:http://docs.aws.amazon.com/fr_fr/cli/latest/userguide/installing.html
Pour installer aws cli:
$ dnf install -y awscli
Il faut ensuite configurer aws.
Pour ceci vous devrez avoir rassemblé certaines informations.
Paramètre | Valeur |
---|---|
AWS Access Key ID | Voir ci-dessous |
AWS Secret Access Key | Voir ci-dessous |
Default Region Name | ca-central-1 (voir dans l’URL) |
Default output format | none |
Pour obtenir les clés, il faut d’abord créer un groupe en se connectant sur la console AMI:
https://console.aws.amazon.com/iam/home?#/home
Donnez un nom au groupe puis cliquez sur “Étape Suivante”. Sélectionnez la stratégie de sécurité puis cliquez sur “Étape Suivante” puis sur “Créer un groupe”.
Il faut ensuite ajouter un utilisateur à ce groupe.
Donnez lui un nom et un type d’accès:
Cliquez sur Suivant puis sélectionnez le groupe que vous venez de créer, vérifiez l’utilisateur et créez le. Les deux clés d’accès seront alors visibles, vous pouvez les copier/coller dans la configuration de aws cli.
Paramètre | Valeur |
---|---|
AWS Access Key ID | AKIAI42OUDFWXPGL6CSQ |
AWS Secret Access Key | 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 |
Default Region Name | ca-central-1 (voir dans l’URL) |
Default output format | none |
Pour configurer awscli:
$ aws configure
Vous pouvez maintenant utiliser les commandes aws
.
Pour avoir de l’aide:
$ aws ec2 help
Pour avoir de l’aide sur le lancement d’insatnces:
$ aws ec2 run-instances help
La commande suivante lance 25 instances d’une machine basée sur l’image ami-7ad55e1a, les instances sont de type t2.large (1 CPU, 8 Go de RAM) et deux groupes de sécurité lui sont affectés :
$ aws ec2 run-instances --image-id ami-7ad55e1a --instance-type t2.large --security-group-ids "sg-f0c4d388" "sg-c76b63bf" --count 25
Pour pouvoir lancer une instance de cette façon, vous devez déjà disposer d’une image.
Une fois l’image créée, vous pouvez obtenir son id:
Même chose pour les groupes de sécurité:
Créez un serveur Centos.
Installez et configurez Wordpress dessus (voir procédure à part).
Configurez le groupe de sécurité pour que Wordpress soit joignable depuis l’extérieur.
Faites une image de votre machine.
Installez la ligne de commande et configurez la.
Déployez 5 serveurs Wordpress identiques grâce à la ligne de commande (même image et même groupe de sécurité).
Toute la documentation sur Amazon EC2:
http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/concepts.html