• 20 hours
  • Medium

Free online content available in this course.

course.header.alt.is_certifying

Got it!

Last updated on 7/5/24

Assurez le stockage dans une base de données

Intéressons-nous ici au stockage des commentaires des articles du site web, que les lecteurs peuvent consulter ou écrire via notre serveur d’API. Deux types de bases de données sont envisageables : relationnelles ou non relationnelles.

Au-delà du texte, ces bases de données peuvent stocker plusieurs types de données (String, Bit, Char, Integer…). Voyons ce que nous propose AWS.

Stockez les données dans une base de donnée relationnelle

Amazon RDS

Les bases de données relationnelles stockent les données suivant un schéma de table prédéfini. Vous avez découvert Amazon RDS, lors du cours Découvrez le cloud avec AWS, le service managé de bases de données relationnelles, qui offre plusieurs moteurs à connaître pour la certification. Par défaut, AWS gère la maintenance et vous n’y avez aucun accès SSH. Avec RDS Custom, vous pouvez désormais vous connecter en SSH et faire des configurations personnalisées uniquement pour les moteurs Oracle et Microsoft SQL Server.

Étudions les fonctionnalités importantes de RDS à connaître.

Storage Auto-Scaling permet la scalabilité verticale automatique lorsque votre base est en manque d’espace disque pour l’écriture de données.

Schéma de la scalabilité verticale. Les lecteurs sont reliés par une flèche avec “application”. Une flèche marquée “écriture” va de l’application vers storage auto-scaling, et la flèche “lecture” retourne vers “application”.
Principe de la scalabilité verticale. Storage Auto-Scaling augmente l’espace disque
  • Réplicas en lecture (read replicas) permet la scalabilité horizontale en ajoutant manuellement jusqu’à 5 réplicas de l’instance primaire de votre base de données. Cela permet de ne pas affecter les temps de réponse et d’affecter les requêtes en lecture et en écriture vers les instances appropriées.

Schéma de la scalabilité verticale. Les lecteurs sont reliés par une flèche avec “application”. Une flèche marquée “écriture” va de l’application vers “primaire”, et la flèche “lecture” retourne vers “application”. Des flèch
Principe de la scalabilité horizontale grâce aux réplicas en lecture

A - Les communications peuvent être chiffrées par chiffrement asymétrique TLS en utilisant des certifications fournies par AWS TLS.

B - Les données peuvent être chiffrées par du chiffrement symétrique avec une clé AWS KMS. Si l’instance primaire n’est pas chiffrée, alors les réplicas non plus.

C - Mettez à jour l’application avec les adresses des réplicas en lecture pour la connexion.

D - Jusqu’à 5 réplicas répartis dans la même AZ, ou d’autres AZ de la même région ou d’une autre (cross-region).

E - Lecture éventuellement consistante : ce que vous lisez est ce que vous venez d'écrire.

  • Multi-AZ : garantit la haute disponibilité (high availability) de la base grâce à une instance de secours (standby), installée dans une autre AZ, qui reprend automatiquement le rôle de l’instance primaire en cas de panne de cette dernière. On parle de reprise après sinistre (disaster recovery) réalisée de façon transparente pour les lecteurs de The Green Earth Post.

Schéma de la haute disponibilité. Les lecteurs sont reliés par une flèche avec “application”. Une flèche marquée “écriture” va de l’application vers “nom de domaine DNS”, et la flèche “lecture” retourne vers “application”. So
Principe de la haute disponibilité

A - Un DNS bascule automatiquement les requêtes vers l’instance primaire, si fonctionnelle ; sinon, l’instance de secours.

B - Une instance de secours (standby) est une réplique synchronisée de l’instance primaire. Elle reste inactive tant que le maître est actif. En cas de panne du maître, elle devient maître (basculement en 60s) !

C - Les instances primaire et secours sont obligatoirement dans des AZ différentes.

Passer de Mono-AZ (single-AZ), sans instance de secours, à Multi-AZ se fait sans délai par un clic bouton !🙂 

Des réplicas en lecture peuvent être configurés comme des instances de secours avec l’option Multi-AZ. De plus, les trafics réseaux entre AZ sont généralement payants chez AWS mais cela est gratuit entre instances dans RDS.

  • RDS Proxy : si on permet d’autres connexions de différentes applications sur notre base pour alimenter d’autres sites web, cela dégrade les performances de la base, voire cause des pannes (imaginez un restaurant sans serveurs ! 😉 ). RDS Proxy s’interpose entre les clients et notre base pour partager la connexion, améliorant la sécurité et les performances. Il est uniquement disponible pour les moteurs MySQL, PostgreSQL, MariaDB et Aurora.

    Un sous-réseau privé comporte RDS Proxy et Amazon RDS reliés par une flèche en double sens. Une flèche va de RDS Proxy vers Applications.

    Fonctionnement de la fonctionnalité RDS Proxy

A - RDS Proxy n’est jamais accessible publiquement ! RDS Proxy et la base RDS doivent être dans un sous-réseau privé (que nous étudierons plus tard).
B - La sécurité est renforcée car les clients doivent disposer d’une autorisation IAM pour accéder au RDS Proxy.
C - RDS Proxy est un service sans serveur, multi-AZ et autoscalable.

  • Restauration : restaurez votre base à un instant précis du passé (35 derniers jours) grâce à des instantanés créés automatiquement toutes les 5 minutes à partir des journaux de transaction (transaction logs).

    • RDS MySQL peut être restauré depuis des instantanés de bases on-premises stockées dans S3.

Amazon RDS non chiffré relie par une flèche un instantané non chiffré. C’est l’étape 1 : créer un instantané.  Puis une flèche, étape 2, création d’une copie chiffrée avec une clé KMS, relie l’instantané chiffré.  Enfin, une flèche,
Restaurer une base de données RDS en activante le chiffrement
  • Authentification : remplacez l’authentification nom/mot de passe par des rôles IAM.

Aurora

Ce moteur dans RDS, compatible avec MySQL et PostgreSQL, est une solution propriétaire contrairement aux autres. Des sites comme Netflix l’utilisent, car il garantit des performances très supérieures (mais chères !). Décortiquons ses caractéristiques pour la certification :

  • Scalabilité et Multi-AZ

    • L’instance primaire réplique les données sur un espace disque distribué sur les AZ, qui peut s’étendre automatiquement jusqu’à 128 TB

    • Les instances réplicas partagent cet espace et accèdent plus rapidement à la donnée. Ils peuvent s’étendre automatiquement jusqu’à 15 instances et être des instances de secours

    • Des points de terminaison en lecture et écriture balancent  automatiquement les requêtes de l’application.

Schéma de fonctionnement de la scalabilité et Mutli-AZ avec le service Aurora. Les lecteurs sont reliés par des flèches avec “application”(C). Une flèche marquée “écriture” va de l’application vers “point de terminaison du cluster” (A
Principe de fonctionnement de la scalabilité et Mutli-AZ avec le service Aurora

A - L’application passe par le point de terminaison du cluster pour les requêtes en écriture.

B - L’instance primaire réplique la donnée sur un volume partagé en lecture avec les réplicas. La réplication entre régions (cross-region) est possible.

C - Contrairement à RDS, l’application n’a pas besoin de connaître les URL des instances, mais des points de terminaison.

D - Pour des requêtes en lecture, l’application se connecte au point de terminaison du lecteur. Celui-ci effectue automatiquement l'équilibrage de charge entre tous les réplicas.

E - L’Auto Scaling Aurora ajuste automatiquement le nombre de réplicas, jusqu’à 15, de manière à conserver la métrique sélectionnée le plus proche possible de la valeur que vous avez spécifiée.

Exemples de métrique : utilisation moyenne CPU, utilisation moyenne mémoire, nombre moyen de connexions actives.

  • Aurora Multi-Master : est une option qui améliore la haute disponibilité car elle vous permet de créer plusieurs instances en lecture/écriture sur plusieurs AZ (30 secondes).

  • Point de terminaison personnalisé : sert un sous groupe d’instances pour exécuter des requêtes spécifiques, par exemple des requêtes gourmandes en ressources.

Schéma identique à celui de fonctionnement de la scalabilité et Mutli-AZ avec le service Aurora, mais avec un nouveau bloc : “point de terminaison personnalisé”, dont une flèche “lecture” va vers “application”. Une autre flèche “lectur
Fonctionnement d’un point de terminaison personnalisé avec le service Aurora

A - Ce réplica constitue un sous-groupe car son type d’instance db.r6g.4xlarge offre plus de CPU et de mémoire. Ce sous-groupe sert le point de terminaison personnalisé pour des requêtes d’analyses gourmandes en ressources.

  • Sauvegarde et restauration

    • Aurora sauvegarde automatiquement des instantanés et peut restaurer la base avec une rétention de 1 à 35 jours, votre base peut être restaurée à n’importe quel instant précis du passé.

      • Aurora MySQL autorise des restaurations depuis des sauvegardes de bases on-premises stockées dans S3.

    • Aurora Database Cloning : clone votre base dans la même région plus rapidement qu’une sauvegarde et une restauration.

    • Aurora Global : réplique vos données entre régions en moins d’une seconde.

  • Aurora Machine learning (ML) :  ajoutez des prédictions basées sur le ML à votre site via des requêtes SQL.

    Un chemin avec 3 étapes : Application, Amazon Aurora et Services ML. Application fait une requête SQL, Amazon Aurora envoie une requête et le data vers Services ML qui lui renvoient les résultats. Amazon Aurora envoie les résultats vers l’applicati
    Principe de fonctionnement d’Aurora Machine learning. * - Par exemple, prédire une empreinte carbone.
  • Aurora Serverless : est une configuration permettant l’automatisation de l’instanciation et la scalabilité de la base en fonction de l'utilisation réelle. Idéal pour les charges de travail très variables et imprévisibles.

À vous de jouer !

Maintenant il est temps d’installer une base de données RDS pour stocker les commentaires des lecteurs des articles du site web The Green Earth Post. Pour faire cela :

  • Créez un groupe de sécurité qui accepte le trafic entrant sur le port 3306 pour le groupe de sécurité du serveur d’API.

  • Créez une base de données avec le service Amazon RDS, avec les caractéristiques suivantes : 

    • VPC par défaut

    • Groupe de sécurité créé 

    • Méthode de création : Standard

    • Moteur SQL : MySQL

    • Modèle : Offre gratuite

    • Identifiant d'instance : thegreenearthpost

    • Identifiant principal : admin (vous pouvez mettre autre chose)

    • Mot de passe : password (vous pouvez mettre autre chose)

    • Réseau : 
      - VPC par défaut
      - Groupe de sécurité créé

    • Authentification par mot de passe

    • Création d’une base de données nommé thegreenearthpost 

Prêts ? Vous pouvez vérifier si vous l’avez bien fait ici :

En résumé :

  • Le service Amazon RDS permet de créer des bases de données relationnelles.

  • Les réplicas en lecture permettent la scalabilité horizontale.

  • Les instances de secours permettent la haute disponibilité.

  • Aurora est la solution propriétaire d’AWS comme base de données relationnelle.

Maintenant, étudions les alternatives non relationnelles !

Example of certificate of achievement
Example of certificate of achievement