AlloyDB pour PostgreSQL est un service de base de données entièrement géré compatible avec PostgreSQL. Il est conçu pour les charges de travail les plus exigeantes, y compris le traitement transactionnel et analytique hybride. AlloyDB associe un moteur de base de données Google et une architecture cloud multinœud pour offrir des performances, une fiabilité et une disponibilité professionnelles.
Fonctionnement d'AlloyDB
Une application se connecte aux instances AlloyDB à l'aide de protocoles et de techniques PostgreSQL standards. L'application utilise ensuite la syntaxe de requête PostgreSQL pour travailler avec la base de données.
Sous la surface, AlloyDB utilise une hiérarchie cloud de composants et de fonctionnalités conçue pour maximiser la disponibilité de vos données et optimiser les performances et le débit des requêtes.Les outils d'administration Google Cloudvous permettent de surveiller l'état de votre déploiement AlloyDB, en ajustant son échelle et sa taille pour qu'elle corresponde au mieux aux demandes changeantes de votre charge de travail.
Clusters
Un seul déploiement AlloyDB dans une région donnée Google Cloudorganise toutes ses ressources dans un seul cluster. Cela inclut toutes vos bases de données, vos journaux et vos autres métadonnées. AlloyDB déploie toutes les ressources d'un cluster dans un seul cloud privé virtuel (VPC) et utilise un système de fichiers cloud conçu par Google et optimisé pour AlloyDB.
Nœuds et instances
Un cluster contient plusieurs nodes, qui sont des instances de machine virtuelle dédiées à l'exécution du moteur de base de données compatible avec PostgreSQL que les applications utilisent pour interroger les données de votre cluster. AlloyDB organise les nœuds en instances, chacune disposant d'une adresse IP privée et statique dans votre VPC. En pratique, vos applications se connectent aux instances à ces adresses IP à l'aide de protocoles PostgreSQL. Les instances transmettent ensuite les requêtes SQL à leurs nœuds.
AlloyDB propose deux types d'instances:
Instance principale:chaque cluster dispose d'une instance principale, qui fournit un point d'accès en lecture ou en écriture à vos données. Une instance principale peut être disponibilité élevée (HA) ou de base.
Instance principale HA:une instance principale HA comporte deux nœuds: un nœud actif et un nœud de secours. AlloyDB surveille la disponibilité du nœud actif et le convertit automatiquement en nœud actif si nécessaire.
Instance de base:les environnements hors production qui ne nécessitent pas une haute disponibilité peuvent utiliser des instances de base. Une instance de base ne comporte qu'un seul nœud, sans nœud de secours. Pour en savoir plus, consultez Réduire les coûts à l'aide d'instances de base.
Instance de pool de lecture:votre cluster peut comporter une ou plusieurs instances de pool de lecture, chacune contenant un ou plusieurs nœuds en lecture seule, jusqu'à un maximum de 20 dans l'ensemble du cluster. AlloyDB équilibre automatiquement toutes les requêtes envoyées à une instance de pool de lecture, en les acheminant vers les nœuds de l'instance.
Pour des cas d'utilisation plus simples, un cluster ne peut comporter que l'instance principale, sans pool de lecture, et les applications utilisent l'instance principale pour toutes les requêtes. Pour des tâches plus exigeantes, vous pouvez ajouter des instances de pool de lecture au cluster. Vous configurez ensuite vos applications de reporting ou d'analyse pour leur envoyer des requêtes de lecture. Cette technique réduit la charge sur votre instance principale et améliore la scalabilité en répartissant la charge sur plusieurs nœuds.
Vous pouvez ajouter, supprimer ou ajuster le nombre de nœuds d'une instance de pool de lecture à tout moment, à mesure que les besoins de votre application évoluent. Vous pouvez également redimensionner la mémoire et le nombre de processeurs virtuels des nœuds constituant une instance à tout moment, avec un temps d'arrêt minimal. L'ajustement de vos instances ne présente aucun risque de perte de données, car AlloyDB stocke vos données dans la couche de stockage flexible du cluster, et non dans les instances.
Ce diagramme illustre un exemple de cluster évolutif conçu pour gérer des charges de travail exigeantes, avec l'inclusion de plusieurs instances en lecture seule d'équilibrage de charge:
Principales fonctionnalités
AlloyDB se distingue d'une installation PostgreSQL standard de plusieurs manières, en plus des avantages de mise à l'échelle verticale et horizontale inhérents à l'architecture multinœud décrite précédemment. Les sections suivantes examinent plus en détail les principales fonctionnalités d'AlloyDB.
Fonctionnalités de base de données automatiques et adaptatives
Le moteur de base de données entièrement compatible avec PostgreSQL qui alimente chaque nœud AlloyDB dispose de plusieurs fonctionnalités qui analysent en continu la structure et la fréquence des requêtes gérées par vos instances. Ces informations permettent de suggérer des améliorations de schéma ou d'appliquer automatiquement des optimisations:
Un conseiller d'index vous aide à identifier des opportunités d'optimisation de votre schéma de base de données à l'aide de nouveaux index en fonction de vos habitudes d'utilisation.
Un moteur de données en colonnes peut accélérer les performances des requêtes analytiques en stockant les données en mémoire à l'aide d'un format en colonnes. Cela permet à AlloyDB d'utiliser des techniques de traitement avancées pour analyser efficacement une grande quantité de données de table si nécessaire.
Une variation adaptative de la fonctionnalité d'autovacuum des données obsolètes de PostgreSQL ajuste automatiquement les paramètres liés à l'aspiration pour s'adapter au mieux à la forme de votre charge de travail.
Les systèmes de gestion automatique de la mémoire et du stockage tirent parti de l'environnement cloud conçu par Google sur lequel AlloyDB s'exécute. Ils allouent et libèrent en continu de la mémoire et de l'espace de stockage en fonction des besoins pour maintenir votre cluster en fonctionnement avec des performances et une efficacité optimales en termes de ressources.
Haute disponibilité
Par défaut, un cluster AlloyDB offre une disponibilité (HA) via les nœuds redondants de son instance principale, situés dans deux zones différentes, avec basculement automatique.
Les clusters fonctionnant dans des environnements hors production qui ne nécessitent pas de haute disponibilité peuvent utiliser des instances principales de base à zone unique à la place.
L'ajout d'instances de pool de lecture contenant au moins deux nœuds crée d'autres points d'accès à vos données multizones, à haute disponibilité et équilibrés en charge. Toutes les instances de pool de lecture s'exécutent indépendamment de l'instance principale.
Pour en savoir plus sur les considérations spécifiques à chaque région, consultez la section Zones géographiques et régions.
Sauvegarde des données et reprise sur sinistre
AlloyDB dispose d'un système de sauvegarde et de récupération continue qui vous permet de créer un cluster à partir de n'importe quel point dans le temps, pendant une période de conservation ajustable. Vous pouvez ainsi récupérer rapidement les données en cas d'accident.
De plus, AlloyDB peut créer et stocker des sauvegardes complètes des données de votre cluster, à la demande ou selon un calendrier régulier. Vous pouvez à tout moment restaurer à partir d'une sauvegarde vers un nouveau cluster AlloyDB contenant toutes les données du cluster d'origine au moment de la création de la sauvegarde.
Pour en savoir plus, consultez la section À propos des sauvegardes.
Pour une autre méthode de reprise après sinistre, vous pouvez effectuer une réplication interrégionale en créant des clusters secondaires dans des régions Google Clouddistinctes. AlloyDB lit de manière asynchrone les données d'un cluster principal désigné vers chacun de ses clusters secondaires. Si nécessaire, vous pouvez promouvoir un cluster secondaire en cluster AlloyDB complet avec des instances de pool de lecture et principales.
Pour en savoir plus, consultez la page À propos de la réplication interrégionale.
Sécurité et contrôle d'accès
Vous pouvez configurer un cluster pour qu'il nécessite une connexion avec le proxy d'authentification AlloyDB sécurisé, qui utilise Google Cloud Identity Access and Management (IAM) pour le contrôle des accès. Pour en savoir plus, consultez la section Autorisation.
AlloyDB utilise le système de rôles utilisateur PostgreSQL standard pour l'authentification, en introduisant quelques rôles supplémentaires spécifiques à AlloyDB. Pour en savoir plus, consultez Gérer les rôles utilisateur AlloyDB.
Chiffrement
Par défaut, AlloyDB protège toutes les données au repos à l'aide des méthodes de chiffrement de Google. Si vous devez chiffrer vos données à l'aide d'une clé que vous fournissez, vous pouvez spécifier une clé de chiffrement gérée par le client (CMEK) lors de la création d'un cluster. AlloyDB utilise ensuite la clé CMEK pour chiffrer toutes les données écrites sur ce cluster.
Les clés de chiffrement gérées par le client s'appliquent également aux sauvegardes. Vous pouvez spécifier une clé CMEK lorsque vous créez une sauvegarde à la demande, configurez un calendrier de sauvegarde ou effectuez une restauration à partir d'une sauvegarde.
Pour en savoir plus, consultez la page À propos de CMEK.
Maintenance non perturbatrice
Les opérations de maintenance AlloyDB sont conçues pour minimiser les perturbations de votre base de données. Le temps d'arrêt des instances principales et secondaires est inférieur à une seconde, tandis que les pools de lecture restent disponibles en continu, sans temps d'arrêt. Pour ce faire, préparez des serveurs de remplacement et remplacez-les rapidement par les serveurs actifs lorsque vous êtes prêt. Au cours de ce processus, toutes les connexions actives à la base de données sont momentanément interrompues. Vous pouvez continuer à utiliser votre base de données normalement tout au long de ce processus.
Bien que ce processus de remplacement assure un temps d'arrêt minimal, l'opération globale peut prendre plusieurs minutes, comme indiqué dans la console Google Cloud et la Google Cloud CLI.
Ces opérations de maintenance incluent des tâches de maintenance périodiques exécutées par Google et des tâches que vous effectuez manuellement, telles que la configuration des indicateurs et la redimensionnement des instances. Si vous souhaitez appliquer une mise à jour immédiatement, même si cela entraîne un temps d'arrêt plus long, utilisez l'option de base de données FORCE_APPLY
.
Compatibilité avec les extensions
AlloyDB est compatible avec un certain nombre d'extensions PostgreSQL populaires. Pour obtenir la liste complète, consultez Extensions de base de données compatibles.
Une alternative auto-hébergée: AlloyDB Omni
Au lieu d'exécuter AlloyDB dans Google Cloud, Google propose AlloyDB Omni. Cette édition téléchargeable et simplifiée d'AlloyDB vous permet d'exécuter son puissant moteur de base de données sur votre propre environnement IT basé sur Linux, où que vous soyez.
Pour en savoir plus, consultez la page À propos d'AlloyDB Omni.