Comment configurer un déploiement AWS RDS Multi-AZ pour une haute disponibilité

Configurez AWS RDS Multi-AZ pour un basculement automatique, une maintenance plus sûre et une meilleure disponibilité de la base de données en production.

Comment configurer un déploiement AWS RDS Multi-AZ pour une haute disponibilité

La disponibilité de la base de données est cruciale lorsque votre application dépend d'un seul point de terminaison RDS. AWS RDS Multi-AZ réduit le risque de défaillance d'une instance ou d'une zone de disponibilité en maintenant une instance de secours dans une autre AZ et en basculant automatiquement lorsque l'instance principale ne peut pas servir le trafic.

Ce guide montre comment configurer un déploiement AWS RDS Multi-AZ pour une nouvelle instance de base de données ou une instance existante, ce qu'il faut surveiller après le changement et à quels compromis s'attendre.

Qu'est-ce qu'AWS RDS Multi-AZ ?

Un déploiement AWS RDS Multi-AZ (Multiple Availability Zone) crée une réplique exacte de votre instance de base de données dans une zone de disponibilité (AZ) différente, physiquement isolée, au sein de la même région AWS. Cette instance de secours fonctionne dans une configuration "hot standby", ce qui signifie qu'elle est continuellement mise à jour avec les modifications de l'instance principale à l'aide d'une réplication synchrone.

Comment cela fonctionne :

  1. Instance principale : Votre application se connecte à l'instance de base de données principale et y écrit des données.
  2. Réplication synchrone : Toutes les écritures de données sur l'instance principale sont répliquées de manière synchrone sur l'instance de secours. Cela garantit que l'instance de secours est toujours à jour avec l'instance principale, minimisant ainsi la perte de données lors d'un basculement.
  3. Basculement automatique : En cas de défaillance de l'infrastructure affectant l'instance principale (par exemple, une panne d'AZ, une défaillance matérielle de l'instance, un problème réseau ou un crash du moteur de base de données), AWS RDS bascule automatiquement vers la réplique de secours. La durée du basculement varie selon le moteur, la charge de travail et le comportement de mise en cache DNS, votre application doit donc utiliser une logique de reconnexion. Le point de terminaison de la base de données reste le même, vos applications n'ont donc pas besoin d'une nouvelle chaîne de connexion.
  4. Point de terminaison unique : Les instances principale et de secours partagent un seul point de terminaison DNS. Vos applications se connectent à ce point de terminaison, et AWS gère la redirection vers l'instance principale actuellement active.

Avantages des déploiements Multi-AZ

La configuration de RDS avec Multi-AZ offre plusieurs avantages cruciaux pour les charges de travail de production :

  • Haute disponibilité : Le basculement automatisé vers une réplique de secours dans une AZ différente garantit que votre base de données reste opérationnelle même si l'AZ principale subit une panne. Cela réduit considérablement les temps d'arrêt.
  • Durabilité des données : La réplication synchrone garantit que toutes les transactions validées sont présentes à la fois sur l'instance principale et sur l'instance de secours. Cela minimise le risque de perte de données lors d'un basculement.
  • Reprise après sinistre : En s'étendant sur plusieurs zones de disponibilité, votre base de données est protégée contre les pannes au niveau de l'AZ, constituant un élément essentiel de votre stratégie de reprise après sinistre.
  • Opérations simplifiées : AWS gère automatiquement la surveillance, la réplication et le processus de basculement. Vous n'avez pas besoin de configurer la réplication basée sur l'hôte, de gérer les instances de secours ou d'orchestrer les basculements manuellement.
  • Fenêtres de maintenance : Lors de la maintenance planifiée (par exemple, correction du système d'exploitation ou mise à niveau du moteur de base de données), AWS bascule automatiquement vers l'instance de secours, effectue la maintenance sur l'ancienne instance principale, puis rebascule. Cela minimise les temps d'arrêt de l'application.
  • Performances (latence d'écriture) : Bien que la réplication synchrone introduise intrinsèquement une légère augmentation de la latence d'écriture par rapport à un déploiement mono-AZ (en raison de la confirmation des écritures sur deux emplacements), cela est souvent négligeable pour la plupart des applications et constitue un compromis acceptable pour une disponibilité améliorée.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un compte AWS avec les autorisations appropriées pour créer et gérer des instances RDS.
  • Une compréhension de base des régions AWS, des zones de disponibilité et des clouds privés virtuels (VPC).

Guide de configuration étape par étape

Option 1 : Création d'une nouvelle instance RDS avec Multi-AZ

Il s'agit de l'approche recommandée pour les nouveaux déploiements, garantissant une haute disponibilité dès le premier jour.

  1. Accédez à la console RDS : Connectez-vous à la console de gestion AWS et ouvrez la console Amazon RDS.
  2. Créez une base de données : Dans le volet de navigation, choisissez Bases de données, puis cliquez sur Créer une base de données.
  3. Choisissez la méthode de création de base de données : Sélectionnez Création standard.
  4. Choisissez les options du moteur :
    • Type de moteur : Sélectionnez le moteur de base de données souhaité (par exemple, MySQL, PostgreSQL, SQL Server, Oracle).
    • Version du moteur : Choisissez la version spécifique.
  5. Modèles : Choisissez le modèle approprié. Pour la production, utilisez un modèle orienté production et vérifiez toujours le paramètre Multi-AZ avant de créer la base de données.
  6. Paramètres :
    • Identifiant de l'instance de base de données : Fournissez un nom unique pour votre instance de base de données.
    • Nom d'utilisateur principal et Mot de passe principal : Définissez les informations d'identification pour l'utilisateur principal de la base de données.
  7. Taille de l'instance de base de données : Sélectionnez la classe d'instance qui répond à vos exigences de performance.
  8. Stockage : Configurez le type de stockage et le stockage alloué.
  9. Disponibilité et durabilité : Il s'agit de l'étape cruciale pour Multi-AZ :
    • Sous Déploiement Multi-AZ, sélectionnez Oui (Créer une instance de secours).
    • (Facultatif) Si vous avez sélectionné le modèle "Production" plus tôt, cette option sera présélectionnée.
  10. Connectivité :
    • VPC : Sélectionnez le VPC où résidera votre base de données.
    • Groupe de sous-réseaux : Assurez-vous de disposer d'un groupe de sous-réseaux de base de données qui couvre plusieurs zones de disponibilité. RDS l'utilisera pour placer les instances principale et de secours dans différentes AZ.
    • Accès public : Choisissez Non pour les environnements de production pour des raisons de sécurité.
    • Groupes de sécurité VPC : Attachez un groupe de sécurité approprié qui autorise le trafic entrant vers le port de votre base de données depuis vos serveurs d'application.
  11. Authentification de la base de données : Choisissez votre méthode d'authentification préférée.
  12. Surveillance, Performance Insights, exportations de journaux, maintenance : Configurez-les selon vos besoins opérationnels.
  13. Créez la base de données : Vérifiez tous vos paramètres et cliquez sur Créer une base de données.

AWS provisionnera votre instance principale, puis créera et synchronisera la réplique de secours dans une zone de disponibilité différente. Ce processus peut prendre un certain temps, selon la taille de l'instance.

Option 2 : Modification d'une instance RDS existante pour Multi-AZ

Vous pouvez activer Multi-AZ pour une instance RDS mono-AZ existante sans temps d'arrêt.

  1. Accédez à la console RDS : Connectez-vous à la console de gestion AWS et ouvrez la console Amazon RDS.
  2. Sélectionnez la base de données : Dans le volet de navigation, choisissez Bases de données, puis sélectionnez l'instance RDS que vous souhaitez modifier.
  3. Modifiez l'instance : Cliquez sur le bouton Modifier.
  4. Disponibilité et durabilité : Faites défiler jusqu'à la section Disponibilité et durabilité.
    • Sous Déploiement Multi-AZ, sélectionnez Oui (Créer une instance de secours).
  5. Continuez : Vérifiez les autres paramètres (classe d'instance, stockage, etc.) et apportez toute autre modification nécessaire, puis cliquez sur Continuer.
  6. Planification des modifications :
    • Appliquer immédiatement : Choisir cette option démarre le changement immédiatement. RDS crée l'instance de secours en arrière-plan tandis que l'instance principale reste disponible, bien que vous puissiez observer une latence d'E/S plus élevée pendant la synchronisation. AWS ne nécessite généralement pas de temps d'arrêt planifié uniquement pour activer Multi-AZ, mais les basculements ou événements de maintenance ultérieurs peuvent toujours interrompre les connexions.
    • Appliquer lors de la prochaine fenêtre de maintenance planifiée : Cette option appliquera les modifications pendant votre fenêtre de maintenance définie, minimisant ainsi les perturbations pendant les heures de pointe.
  7. Modifiez l'instance de base de données : Cliquez sur Modifier l'instance de base de données.

AWS commencera le processus de création de la réplique de secours et de synchronisation avec votre instance principale. Pendant ce temps, votre base de données restera en ligne, mais vous pourriez observer un bref événement de basculement lorsque la configuration Multi-AZ est finalisée.

Surveillance de votre déploiement Multi-AZ

Après avoir configuré Multi-AZ, il est essentiel de surveiller son état :

  1. Console RDS : Accédez à la console RDS et sélectionnez votre instance de base de données.
  2. Onglet Détails : Sous la section Connectivité et sécurité, vous verrez Multi-AZ indiqué comme Oui. Sous Disponibilité et durabilité, il devrait indiquer que votre instance est dans un déploiement Multi-AZ.
  3. Événements : Consultez l'onglet Journaux et événements pour les événements liés aux basculements, à la création d'instances ou aux activités de maintenance. AWS enregistrera les événements pour les basculements (par exemple, RDS-EVENT-0026 - L'instance de base de données XXX a basculé).

Test du basculement (facultatif mais recommandé)

Bien qu'AWS gère les basculements automatiquement, il est de bonne pratique de comprendre et de tester occasionnellement le mécanisme de basculement dans un environnement non productif.

Déclenchement d'un basculement :

  1. Redémarrage avec basculement : Sélectionnez votre instance Multi-AZ dans la console RDS. Dans le menu Actions, choisissez Redémarrer. Assurez-vous de sélectionner l'option "Redémarrer avec basculement ?".
    • Cette action force RDS à basculer l'instance principale vers la réplique de secours, simulant une panne imprévue. Votre application doit s'attendre à une brève déconnexion pendant que le point de terminaison commence à résoudre vers la nouvelle instance principale.
  2. Observez les événements : Après avoir initié un basculement, surveillez l'onglet Journaux et événements de votre instance. Vous devriez voir des événements indiquant qu'un basculement a eu lieu et que la nouvelle instance principale est active.

Considérations et meilleures pratiques

  • Coût : Les déploiements Multi-AZ entraînent des coûts plus élevés que les déploiements mono-AZ car vous exécutez effectivement deux instances de base de données (principale et de secours), même si une seule sert activement le trafic à un moment donné.
  • Réplicas de lecture vs. Multi-AZ : Comprenez la différence. Multi-AZ est destiné à la haute disponibilité et à la durabilité (écritures). Les réplicas de lecture sont destinés à la mise à l'échelle des lectures et à l'amélioration des performances de lecture. Ils peuvent être utilisés ensemble ; vous pouvez créer une instance principale Multi-AZ, puis avoir des réplicas de lecture pour mettre à l'échelle les applications à forte lecture.
  • Impact sur les performances : Bien que Multi-AZ améliore la disponibilité, la réplication synchrone peut introduire une légère augmentation de la latence d'écriture par rapport à une configuration mono-AZ. Pour la plupart des applications, cette surcharge est minime.
  • Groupes de sous-réseaux : Assurez-vous que votre groupe de sous-réseaux de base de données inclut des sous-réseaux dans au moins deux zones de disponibilité différentes. Cela permet à RDS de placer vos instances principale et de secours dans des AZ séparées.
  • Groupes de sécurité : Configurez correctement vos groupes de sécurité VPC pour autoriser le trafic de vos serveurs d'application vers le point de terminaison RDS.
  • Prise en charge du moteur de base de données : Multi-AZ est pris en charge par la plupart des moteurs de base de données populaires, notamment MySQL, PostgreSQL, SQL Server, Oracle et MariaDB.

À retenir

Utilisez AWS RDS Multi-AZ pour les bases de données de production où le basculement automatique est plus important que le coût supplémentaire et la surcharge potentielle de latence d'écriture. Après l'avoir activé, confirmez que votre groupe de sous-réseaux de base de données couvre au moins deux AZ, testez le comportement de reconnexion de l'application dans un environnement non productif et surveillez les événements RDS afin que les basculements ne surprennent pas votre équipe.