Amazon RDS - Les Bases de Données Relationnelles dans AWS
Photo de Vincent Guth sur Unsplash

Il existe 2 grandes offres de Bases de Données Relationnelles dans AWS : RDS et Aurora. Nous allons voir dans cet article les caractéristiques du premier type de BDD, Amazon RDS.



Amazon RDS

Amazon Relational Database Service (Amazon RDS) est un service Web qui facilite la configuration, l’exploitation et la mise à l’échelle de bases de données relationnelles SQL dans le Cloud AWS (BDD managée).

Il prend en charge différents moteurs de base de données :

  • MySQL
  • MariaDB
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server

Que l’on peut exécuter sur différents types d’instances appelées DB Instance :

  • Classes d’instances disponibles : Standard, Memory Optimized or Burstable
  • Types de Storage RDS : General Purpose SSD, Provisioned IOPS, Magnetic

Opérations managées

Les opérations à la charge de AWS et proposées dans Amazon RDS sont :

  • La maintenance de l’instance (OS + Moteur de BDD) sur des plages programmables,
  • Des sauvegardes automatiques Ă  intervalle de temps et une restauration possible de ces sauvegardes
  • Un tableau de bord de monitoring
  • La crĂ©ation de Read Replicas pour accĂ©ler l’accès aux donnĂ©es (5 au maximum)
  • La configuration en Multi-AZ pour la gestion du failover
  • La mise Ă  l’échelle verticale et horizontale des DB Instances et du volume de stockage (Storage Auto Scaling)

En contre-partie, il n’est pas possible d’accèder à ces instances en SSH.


Sauvegardes

  • Automatiques :
    • Full Backup quotidien pendant la pĂ©riode de maintenance (que l’on a dĂ©finie)
    • Backup des Log de transaction toutes les 5 minutes (restauration assurĂ©e du m-5)
    • RĂ©tention possible de 0 (pas de rĂ©tention !) Ă  35 jours
  • A la demande :
    • Sous forme de DB Snapshots
    • RĂ©tention aussi longtemps que souhaitĂ©

Replica

Read Replica

Exemple de RĂ©plicas en Lecture
Exemple de RĂ©plicas en Lecture
  • La rĂ©plication est ASYNCHRONE, les donnĂ©es ne sont pas consistentes : les rĂ©picas sont accessibles uniquement en lecture
  • Il est possible de crĂ©er jusqu’à 5 rĂ©plicas au maximum
  • Ils peuvent ĂŞtre dans la mĂŞme AZ, dans diffĂ©rentes AZ ou bien entre diffĂ©rentes Regions (sauf pour Microsoft SQL Server)

Remarques:

  • Una application doit mettre Ă  jour sa chaine de connexion pour profiter des Reads Replicas.
  • Un Replica peut ĂŞtre promu, Ă  nouveau, en une Base de DonnĂ©es ce qui permet par exemple de procĂ©der Ă  des traitements d’analyse inenvisageables sur une BDD en Production.
  • Le transfert de donnĂ©es entre AZ ou Regions est payant sur AWS. En ce qui concerne les RDS Reads Replicas, seuls les transferts entre Regions sont payants, ceux entre AZs sont compris dans le coĂ»t du service.

Replicas multi-AZ et Disaster Recovery

Exemple d'architecture d'un Disaster Recovery avec des RDS Replicas multi-AZ
Exemple d'architecture d'un Disaster Recovery avec des RDS Replicas multi-AZ
  • La crĂ©ation de Replicas entre AZ (multi-AZ) ou entre Regions (cross-Region) permet de mettre en place un plan de reprise après sinistre (Disaster Recovery) dans le cas d’une dĂ©faillance rĂ©seau, d’une instance RDS, d’une AZ ou mĂŞme d’une Region.
  • L’architecture applicative est alors diffĂ©rente du Read Replica : la rĂ©plication est SYNCHRONE et les Replicas ne sont pas accessibles en lecture.
  • On peut passer d’une simple-AZ Ă  une multi-AZ par un Snapshot et sans indisponibilitĂ© de la base de donnĂ©es.

Sécurité

Chiffrement des données au repos

  • Il est possible de chiffrer les donnĂ©es d’une instance Amazon RDS : cela inclut le volume de stockage des DB Instances, les Backups, les Replicas et les Snapshots
  • Ce chiffrement se configure Ă  la crĂ©ation de la BDD :
    • Une instance chiffrĂ©e produit un Repica chiffrĂ©
    • Une instance non-chiffrĂ©e produit un Replica non-chiffrĂ©
    • Mais un Snapshot est toujours non chiffrĂ©
  • Le chiffrement utilise une clĂ© de chiffrement AES-256 standard gĂ©rĂ©e par AWS Key Management Service (AWS KMS).
  • Oracle et Microsoft SQL Server peuvent aussi utiliser un chiffrement TDE (Transparent Data Encryption).

Chiffrement des données en transit

  • Il s’effectue Ă  l’aide de certificats SSL/TLS ayant pour certificat racine celui de votre Region AWS
  • Chaque moteur de BDD a sa propre configuration pour prendre en charge le chiffrement Ă  la volĂ©e et peut aussi dĂ©pendre de la version utilisĂ©e (se rĂ©fĂ©rer Ă  la documentation https://docs.aws.amazon.com/fr_fr/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
    • Par exemple pour MySQL 5.7 et ultĂ©rieure : ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

RĂ©seau

  • Un Amazon RDS est toujours dĂ©ployĂ© dans un sous-rĂ©seau privĂ©
  • L’accès Ă  une instance RDS se fait donc Ă  l’aide d’un Security Group

IAM

  • La connexion Ă  la BDD d’une instance RDS se fait habituellement avec un login/password.
  • Les Policies IAM permettent de donner, Ă  un User IAM, des droits d’accès Ă  une instance RDS.
  • Dans le cas de MySQL et PostgreSQL, un User IAM peut aussi se connecter Ă  une BDD RDS.

Il y a toutefois des limitations (token valide 15min, pas plus de 256 connexions par seconde)

Identification dans Amazon RDS Ă  l'aide de IAM Authentication
Identification dans Amazon RDS Ă  l'aide de IAM Authentication
Jean-Jerome Levy

Ecrit par

Jean-JĂ©rĂ´me LĂ©vy

Consultant DevOps

Professionnel chevronné dans le domaine de l’informatique, cumulant plus de 20 années d’expérience au sein de DSI de grandes entreprises, mon expertise diversifiée m’a permis de jouer un rôle clé dans de nombreux projets, caractérisés par la mise en place de pratiques DevOps innovantes.