07 - AWS

Haut de page

Introduction

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.

Infonuagique

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.

IaaS (Infrastructure as a Service)

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.

PaaS (Platform as a Service)

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.

SaaS (Software as a Service)

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…

Autre formes

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

Cloud privé, cloud publique

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…

Historique

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.

La sécurité

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

Problèmes légaux

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?

Les fournisseurs

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

Création d’instances

Après Authentification, on choisit EC2: Electronic Cloud Computing.

HTTP

Il est possible de choisir où seront stockées les machines virtuelles.

HTTP

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.

HTTP

Pour lancer un Centos, on choisira AWS Marketplace.

HTTP

Puis en descendant, vous trouverez “Operating systems”.

HTTP

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

HTTP

Regardez les prix. T2 Large est une machine à 8Go de RAM et coute environ $ 0.12 / h.

HTTP

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.

HTTP

Parcourez la page pour voir les actions possibles.

HTTP

Avant de lancer la VM, il faut modifier la description du groupe de sécurité car elle contient des caractères invalides.

HTTP

Modifiez le commentaire du groupe de sécurité.

HTTP

Vérifiez que vous avez bien une instance de type t2.micro.

HTTP

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.

HTTP

Puis visualisez votre instance.

HTTP

En faisant un click droit sur l’instance, choisissez “Connexion” pour afficher les instructions vous permettant de vous connecter à l’instance.

HTTP

Formatif 1

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?

Gestion des instances

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)

HTTP

Les groupes de sécurité

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é”.

HTTP

Puis on choisit de créer un groupe de sécurité.

HTTP

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.

HTTP

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.

HTTP

Sélectionnez les groupes de sécurité à attribuer à l’instance. La modification est prise en compte immédiatement.

HTTP

Formatif 2

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.

Les volumes

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

HTTP

Entrez une taille puis clickez sur “Créer un volume”.

HTTP

À ce moment là, notez l’id car ce sera la façon de le retrouver.

Une fois créé, vous pourrez lui donner un nom.

HTTP

Pour attacher le volume à une instance, faire un click droit sur le volume:

HTTP

Ensuite il reste à choisir l’instance à laquelle attacher le volume.

Seules les instances démarrées seront affichées.

HTTP

Formatif 3

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.

Les IP élastiques

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:

HTTP

Clickez sur “Allouer” et vous obtiendrez une adresse IP fixe.

HTTP

Vous devez ensuite associer votre adresse IP à une instance. Faites un click droit sur l’adresse IP et choisissez “Associer l’adresse”.

HTTP

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.

HTTP

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.

Formatif 4

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://.4c4.org

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.

La création d’images

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

HTTP

Donnez un nom et une description à votre image. Notez qu’il est possible d’ajouter des volumes avant de prendre l’image.

HTTP

Une fois l’image créée, elle apparaît à deux endroits:

  • Les AMI

  • Les instantanés

HTTP

Création d’images à partir d’une image

Pour utiliser l’image que vous avez créée pour lancer des instances, vous passerez par le menu AMI.

HTTP

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.

Formatif 5

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.

L’automatisation

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

HTTP

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

HTTP

Il faut ensuite ajouter un utilisateur à ce groupe.

HTTP

Donnez lui un nom et un type d’accès:

HTTP

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.

HTTP

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:

HTTP

Même chose pour les groupes de sécurité:

HTTP

Formatif 7

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é).

Références

Toute la documentation sur Amazon EC2:

http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/concepts.html