Déploiement multirégional sur Compute Engine

Last reviewed 2024-02-20 UTC

Ce document fournit une architecture de référence pour une application à plusieurs niveaux qui s'exécute sur des VM Compute Engine dans plusieurs régions Google Cloud. Il fournit également des conseils pour vous aider à créer une architecture utilisant d'autres services d'infrastructure Google Cloud. Il décrit les facteurs de conception à prendre en compte lors de la création d'une architecture multirégionale pour vos applications cloud. Ce document s'adresse aux architectes cloud.

Architecture

La Figure 1 présente une architecture pour une application qui s'exécute en mode actif-actif dans des piles isolées déployées dans deux régions Google Cloud. Dans chaque région, l'application s'exécute indépendamment dans trois zones. L'architecture est conforme à l'archétype de déploiement multirégional, ce qui garantit que votre topologie Google Cloud résiste aux pannes zonales et régionales, et qu'elle offre une latence faible aux utilisateurs de l'application.

Architecture multirégionale utilisant un équilibreur de charge global

Figure 1 : Un équilibreur de charge global achemine les requêtes des utilisateurs vers des piles d'applications isolées au niveau régional.

L'architecture est basée sur le modèle cloud IaaS (Infrastructure as a Service). Vous provisionnez les ressources d'infrastructure requises (calcul, mise en réseau et stockage) dans Google Cloud, et vous conservez un contrôle total sur le système d'exploitation, le middleware et les couches supérieures de la pile d'applications. Pour en savoir plus sur le modèle IaaS et d'autres modèles cloud, consultez l'article En quoi les types de cloud PaaS, IaaS, SaaS et CaaS sont-ils différents ?

Le schéma précédent comprend les composants suivants :

Composant Purpose
Équilibreur de charge externe global

L'équilibreur de charge externe global reçoit et distribue les requêtes des utilisateurs à l'application. L'équilibreur de charge externe global annonce une seule adresse IP Anycast, mais il est mis en œuvre sous la forme d'un grand nombre de proxys sur Google Front End (GFE). Les requêtes des clients sont dirigées vers le GFE le plus proche du client.

Selon vos besoins, vous pouvez utiliser un équilibreur de charge d'application externe global ou un équilibreur de charge réseau proxy externe global. Pour en savoir plus, consultez la page Choisir un équilibreur de charge.

Groupes d'instances gérés (MIG) régionaux pour le niveau Web

Le niveau Web de l'application est déployé sur des VM Compute Engine faisant partie de MIG régionaux. Ces MIG sont les backends de l'équilibreur de charge global.

Chaque MIG contient des VM Compute Engine réparties dans trois zones différentes. Chacune de ces VM héberge une instance indépendante du niveau Web de l'application.

Équilibreurs de charge internes régionaux

L'équilibreur de charge interne de chaque région répartit le trafic des VM de niveau Web vers les VM de niveau Application de cette région.

Selon vos besoins, vous pouvez utiliser un équilibreur de charge d'application interne régional ou un équilibreur de charge réseau interne régional. Pour en savoir plus, consultez la page Choisir un équilibreur de charge.

MIG régionaux pour le niveau application

Le niveau Application est déployé sur des VM Compute Engine faisant partie de MIG régionaux. Le MIG de chaque région est le backend de l'équilibreur de charge interne de cette région.

Chaque MIG contient des VM Compute Engine réparties dans trois zones différentes. Chaque VM héberge une instance indépendante du niveau Application.

Base de données tierce déployée sur des VM Compute Engine

Une base de données tierce (telle que PostgreSQL) est déployée sur des VM Compute Engine dans les deux régions. Vous pouvez configurer la réplication interrégionale des bases de données et configurer la base de données dans chaque région pour qu'elle bascule vers la base de données de l'autre région. Les fonctionnalités de réplication et de basculement dépendent de la base de données que vous utilisez.

L'installation et la gestion d'une base de données tierce impliquent des efforts et des coûts opérationnels supplémentaires pour la réplication, l'application des mises à jour, la surveillance et la garantie de la disponibilité. Vous pouvez éviter le surcoût lié à l'installation et à la gestion d'une base de données tierce, et profiter des fonctionnalités de haute disponibilité intégrées en utilisant une base de données entièrement gérée, comme une instance Spanner multirégionale.

Réseau cloud privé virtuel et sous-réseaux Toutes les ressources Google Cloud de l'architecture utilisent un unique réseau VPC comportant des sous-réseaux dans deux régions différentes.
Buckets Cloud Storage birégionaux Les sauvegardes des données de l'application sont stockées dans des buckets Cloud Storage birégionaux. Vous pouvez également utiliser le service de sauvegarde et de reprise après sinistre pour créer, stocker et gérer les sauvegardes de la base de données.

Cas d'utilisation

Cette section décrit les cas d'utilisation pour lesquels un déploiement multirégional sur Compute Engine constitue un choix approprié.

Migration efficace des applications sur site

Vous pouvez utiliser cette architecture de référence pour créer une topologie Google Cloud afin de réhéberger (migration Lift and Shift) dans le cloud des applications sur site, avec un minimum de modifications. Dans cette architecture de référence, tous les niveaux de l'application sont hébergés sur des VM Compute Engine. Cette approche vous permet de migrer efficacement des applications sur site vers le cloud et de bénéficier des avantages en termes de coûts, de fiabilité, de performances et de simplicité opérationnelle offerts par Google Cloud.

Haute disponibilité pour les utilisateurs géographiquement dispersés

Nous recommandons le déploiement multirégional pour les applications critiques et pour lesquelles la haute disponibilité et la robustesse face aux pannes régionales sont essentielles. Si une région devient indisponible pour une raison quelconque (y compris une perturbation à grande échelle provoquée par une catastrophe naturelle), les utilisateurs de l'application ne remarquent aucun temps d'arrêt. Le trafic est acheminé vers l'application dans les autres régions disponibles. Si les données sont répliquées de manière synchrone, l'objectif de temps de récupération (RTO) est proche de zéro.

Faible latence pour les utilisateurs de l'application

Si vos utilisateurs se trouvent dans une zone géographique spécifique, par exemple un continent, vous pouvez utiliser un déploiement multirégional pour obtenir un équilibre optimal entre la disponibilité et les performances. Si l'une des régions subit une panne, l'équilibreur de charge global envoie les requêtes provenant de cette région à une autre région. Les utilisateurs ne perçoivent pas d'impact significatif sur les performances, car les régions se trouvent dans la même zone géographique.

Alternative de conception

Une architecture qui utilise un équilibreur de charge global (Figure 1) est compatible avec certaines fonctionnalités qui vous aident à améliorer la fiabilité de vos déploiements, comme la mise en cache périphérique à l'aide de Cloud CDN. Cette section présente une architecture alternative qui utilise des équilibreurs de charge régionaux et Cloud DNS, comme illustré dans la Figure 2. Cette architecture alternative prend en charge les fonctionnalités supplémentaires suivantes :

  • Terminaison TLS (Transport Layer Security) dans les régions spécifiées.
  • Possibilité de diffuser du contenu depuis la région spécifiée Cependant, cette région peut ne pas être la région la plus performante à un moment donné.
  • Une gamme plus large de protocoles de connexion si vous utilisez un équilibreur de charge réseau passthrough.

Pour en savoir plus sur les différences entre les équilibreurs de charge régionaux et mondiaux, consultez la documentation suivante :

Architecture multirégionale avec équilibreurs de charge régionaux et DNS

Figure 2. Cloud DNS achemine les requêtes des utilisateurs vers les équilibreurs de charge régionaux.

Comme l'architecture de la Figure 1, l'architecture de la Figure 2 résiste aux défaillances zonales et régionales. Une zone publique Cloud DNS achemine les requêtes des utilisateurs vers la région appropriée. Les équilibreurs de charge externes régionaux reçoivent les requêtes des utilisateurs et les répartissent sur les instances du niveau Web de l'application dans chaque région. Les autres composants de cette architecture sont identiques à ceux de l'architecture basée sur l'équilibreur de charge global.

Pour en savoir plus sur la création d'une architecture multirégionale utilisant plusieurs équilibreurs de charge régionaux et Cloud DNS, consultez la page Architectures d'équilibrage de charge global utilisant des règles de routage DNS.

Considérations de conception

Cette section fournit des conseils pour vous aider à utiliser cette architecture de référence afin de développer une architecture répondant à vos exigences spécifiques en termes de conception, de sécurité et de conformité du système, de fiabilité, d'efficacité opérationnelle, de coût et de performances.

Conception du système

Cette section vous aide à choisir des régions Google Cloud pour votre déploiement multirégional et à sélectionner les services Google Cloud appropriés.

Sélection de la région

Lorsque vous choisissez les régions Google Cloud dans lesquelles vos applications doivent être déployées, tenez compte des facteurs et exigences suivants :

  • Disponibilité des services Google Cloud dans chaque région. Pour en savoir plus, consultez la page Produits disponibles par emplacement.
  • Disponibilité des types de machines Compute Engine dans chaque région. Pour en savoir plus, consultez la page Régions et zones.
  • Exigences relatives à la latence de l'utilisateur final.
  • Coût des ressources Google Cloud.
  • Coûts des transferts de données interrégionaux.
  • Exigences réglementaires.

Certains de ces facteurs et exigences peuvent impliquer des compromis. Par exemple, la région la plus rentable en termes de coûts peut ne pas avoir l'empreinte carbone la plus basse. Pour en savoir plus, consultez la page Choisir des zones géographiques et des régions dans le framework d'architecture Google Cloud.

Services de calcul

L'architecture de référence décrite dans ce document utilise des VM Compute Engine pour tous les niveaux de l'application. Selon les exigences de votre application, vous pouvez choisir parmi d'autres services de calcul Google Cloud :

  • Vous pouvez exécuter des applications conteneurisées dans des clusters Google Kubernetes Engine (GKE). GKE est un moteur d'orchestration de conteneurs qui automatise le déploiement, le scaling et la gestion des applications conteneurisées.
  • Si vous préférez concentrer vos efforts informatiques sur vos données et vos applications plutôt que sur la configuration et l'exploitation des ressources d'infrastructure, vous pouvez utiliser des services sans serveur tels que Cloud Run et Cloud Functions.

La décision d'utiliser des VM, des conteneurs ou des services sans serveur implique un compromis entre la flexibilité de la configuration et les efforts de gestion. Les VM et les conteneurs offrent davantage de flexibilité de configuration, mais vous êtes responsable de la gestion des ressources. Dans une architecture sans serveur, vous déployez des charges de travail sur une plate-forme préconfigurée qui nécessite un effort de gestion minimal. Pour en savoir plus sur le choix des services de calcul appropriés pour vos charges de travail dans Google Cloud, consultez la page Choisir et gérer les ressources de calcul dans le framework d'architecture Google Cloud.

Services de stockage

Les architectures présentées dans ce document utilisent des volumes de disques persistants régionaux pour tous les niveaux. Les disques persistants fournissent une réplication synchrone des données sur deux zones d'une même région.

Les autres options de stockage pour les déploiements multirégionaux incluent des buckets Cloud Storage birégionaux ou multirégionaux. Les objets stockés dans un bucket birégional ou un multirégional sont stockés de manière redondante dans au moins deux zones géographiques distinctes. Les métadonnées sont écrites de manière synchrone entre les régions, et les données sont répliquées de manière asynchrone. Pour les buckets birégionaux, vous pouvez utiliser la réplication turbo, qui garantit que les objets sont répliqués entre des paires de régions, avec un objectif de point de récupération (RPO) de 15 minutes. Pour en savoir plus, consultez la section Disponibilité et durabilité des données.

Pour stocker des données partagées sur plusieurs VM d'une région, par exemple l'ensemble des VM du niveau Web ou du niveau Application, vous pouvez utiliser une instance Filestore Enterprise. Les données que vous stockez dans une instance Filestore Enterprise sont répliquées de manière synchrone sur trois zones de la région. Cette réplication garantit la haute disponibilité et la robustesse en cas de pannes zonales. Vous pouvez stocker sur l'instance Filestore des fichiers de configuration partagés, des outils et utilitaires courants, ainsi que des journaux centralisés, et installer l'instance sur plusieurs VM.

Si votre base de données est Microsoft SQL Server, vous pouvez déployer une instance de cluster de basculement (FCI) et utiliser l'outil Google Cloud NetApp Volumes entièrement géré afin de fournir un stockage SMB à disponibilité continue pour la base de données.

Lorsque vous concevez le stockage pour vos charges de travail multirégionales, tenez compte des caractéristiques fonctionnelles des charges de travail, des exigences de résilience, des attentes en termes de performances et des objectifs de coûts. Pour en savoir plus, consultez la section Concevoir une stratégie de stockage optimale pour votre charge de travail cloud.

Services de base de données

L'architecture de référence de ce document utilise une base de données tierce, telle que PostgreSQL, déployée sur des VM Compute Engine. L'installation et la gestion d'une base de données tierce impliquent des efforts et des coûts pour les opérations telles que l'application de mises à jour, la surveillance et la garantie de disponibilité, l'exécution de sauvegardes et la récupération en cas de défaillance.

Vous pouvez vous épargner les efforts et les coûts liés à l'installation et à la gestion d'une base de données tierce en utilisant un service de base de données entièrement géré tel que Cloud SQL, AlloyDB pour PostgreSQL, Bigtable, Spanner ou Firestore. Ces services de base de données Google Cloud offrent des contrats de niveau de service (SLA) de disponibilité, et incluent des fonctionnalités par défaut pour l'évolutivité et l'observabilité. Si vos charges de travail nécessitent une base de données Oracle, vous pouvez utiliser la solution Bare Metal fournie par Google Cloud. Pour obtenir une présentation des cas d'utilisation auxquels chaque service de base de données Google Cloud convient, consultez la section Bases de données Google Cloud.

Lorsque vous choisissez et configurez la base de données pour un déploiement multirégional, tenez compte des exigences de votre application en matière de cohérence des données entre régions et soyez attentif aux compromis en termes de performances et de coûts.

  • Si l'application nécessite une cohérence forte (tous les utilisateurs doivent lire les mêmes données à tout moment), celles-ci doivent être répliquées de manière synchrone sur toutes les régions de l'architecture. Cependant, la réplication synchrone peut entraîner une augmentation des coûts et une baisse des performances, car toutes les données écrites doivent être répliquées en temps réel dans les régions avant que les données ne soient disponibles pour les opérations de lecture.
  • Si votre application peut tolérer une cohérence à terme, vous pouvez répliquer les données de manière asynchrone. Cela peut améliorer les performances, car les données n'ont pas besoin d'être répliquées de manière synchrone entre les régions. Toutefois, cela peut amener des utilisateurs de différentes régions à lire des données différentes, car celles-ci n'ont peut-être pas été entièrement répliquées au moment de la requête.

Sécurité et conformité

Cette section décrit les facteurs à prendre en compte lorsque vous utilisez cette architecture de référence pour concevoir et créer une topologie multirégionale dans Google Cloud qui répond aux exigences de sécurité et de conformité de vos charges de travail.

Protection contre les menaces

Pour protéger votre application contre les menaces telles que les attaques par déni de service distribué (DDoS) et les scripts intersites (XSS), vous pouvez utiliser les stratégies de sécurité Google Cloud Armor. Chaque stratégie est un ensemble de règles qui spécifient certaines conditions devant être évaluées et les mesures à prendre lorsque ces conditions sont remplies. Par exemple, une règle peut spécifier que si l'adresse IP source du trafic entrant correspond à une adresse IP ou à une plage CIDR spécifique, le trafic doit être refusé. En outre, vous pouvez appliquer des règles de pare-feu d'application Web (WAF) préconfigurées. Pour en savoir plus, consultez la section Présentation des stratégies de sécurité.

Accès externe pour les VM

Dans l'architecture de référence décrite dans ce document, les VM hébergeant le niveau Application, le niveau Web et les bases de données n'ont pas besoin d'un accès entrant depuis Internet. N'attribuez pas d'adresses IP externes à ces VM. Les ressources Google Cloud ne disposant que d'une adresse IP interne privée peuvent toujours accéder à certains services et API Google à l'aide de Private Service Connect ou de l'accès privé à Google. Pour en savoir plus, consultez la section Options d'accès privé pour les services.

Pour activer les connexions sortantes sécurisées en provenance des ressources Google Cloud qui ne possèdent que des adresses IP privées, comme les VM Compute Engine de cette architecture de référence, vous pouvez utiliser Cloud NAT.

Sécurité des images de VM

Pour vous assurer que vos VM n'utilisent que des images approuvées (c'est-à-dire, des images comportant des logiciels conformes à vos règles ou à vos exigences de sécurité), vous pouvez définir une règle d'administration limitant l'utilisation d'images dans des projets d'images publiques spécifiques. Pour en savoir plus, consultez la page Configurer des règlements relatifs aux images de confiance.

Droits des comptes de service

Dans les projets Google Cloud pour lesquels l'API Compute Engine est activée, un compte de service par défaut est créé automatiquement. Ce compte de service par défaut se voit attribuer le rôle IAM Éditeur (roles/editor), sauf si ce comportement est désactivé. Par défaut, le compte de service par défaut est associé à toutes les VM que vous créez à l'aide de Google Cloud CLI ou de la console Google Cloud. Le rôle Éditeur inclut un large éventail d'autorisations. L'association du compte de service par défaut aux VM crée donc un risque de sécurité. Pour éviter ce risque, vous pouvez créer et utiliser des comptes de service dédiés pour chaque application. Pour spécifier les ressources auxquelles le compte de service peut accéder, utilisez des stratégies précises. Pour en savoir plus, consultez la page Limiter les droits des comptes de service dans la section "Bonnes pratiques d'utilisation des comptes de service".

Points à prendre en compte concernant la résidence des données

Vous pouvez utiliser des équilibreurs de charge régionaux pour créer une architecture multirégionale qui répond à vos exigences de résidence des données. Par exemple, un pays situé en Europe peut exiger que toutes les données utilisateur soient stockées et consultées dans des centres de données situés physiquement en Europe. Pour répondre à cette exigence, vous pouvez utiliser l'architecture basée sur l'équilibreur de charge régional illustrée dans la Figure 2. Dans cette architecture, l'application s'exécute dans les régions Google Cloud en Europe et vous utilisez Cloud DNS avec une règle de routage avec géorepérage pour acheminer le trafic via des équilibreurs de charge régionaux Afin de répondre aux exigences de résidence des données pour le niveau Base de données, utilisez une architecture segmentée plutôt que la réplication entre les régions. Avec cette approche, les données de chaque région sont isolées, mais vous ne pouvez pas mettre en œuvre la haute disponibilité et le basculement interrégionaux pour la base de données.

Autres considérations sur la sécurité

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations de sécurité au niveau de la plate-forme, fournies dans le plan de base de sécurité.

Fiabilité

Cette section décrit les facteurs de conception à prendre en compte lorsque vous utilisez cette architecture de référence afin de créer et d'exploiter une infrastructure fiable pour vos déploiements multirégionaux dans Google Cloud.

Autoscaling des MIG

Lorsque vous exécutez votre application sur plusieurs MIG régionaux, celle-ci reste disponible en cas de panne d'une zone isolée ou de panne régionale. La fonctionnalité d'autoscaling des MIG sans état vous permet de maintenir à des niveaux prévisibles la disponibilité et les performances de l'application. Pour contrôler le comportement d'autoscaling de vos MIG sans état, vous pouvez spécifier des métriques d'utilisation cibles, telles que l'utilisation moyenne du CPU. Vous pouvez également configurer l'autoscaling basé sur la planification pour les MIG sans état. Les MIG avec état ne peuvent pas faire l'objet d'un autoscaling. Pour en savoir plus, consultez la page Effectuer l'autoscaling des groupes d'instances.

Autoréparation de VM

Parfois, les VM qui hébergent votre application sont en cours d'exécution et disponibles, mais vous pouvez rencontrer des problèmes avec l'application proprement dite. Elle peut se figer, planter ou manquer de mémoire. Pour vérifier si une application répond comme prévu, vous pouvez configurer des vérifications d'état basées sur l'application dans le cadre de la règle d'autoréparation de vos MIG. Si l'application sur une VM particulière ne répond pas, le MIG répare automatiquement la VM. Pour en savoir plus sur la configuration de l'autoréparation, consultez la page Configurer une vérification de l'état et une autoréparation des applications.

Emplacement de la VM

Dans l'architecture décrite dans ce document, le niveau Application et le niveau Web s'exécutent sur des VM Compute Engine réparties sur plusieurs zones. Cette répartition garantit que votre application résiste aux pannes zonales. Pour améliorer davantage sa robustesse, vous pouvez créer une stratégie d'emplacement par répartition et l'appliquer au modèle de MIG. Lorsque le MIG crée des VM, il les place alors dans chaque zone sur des serveurs physiques distincts (appelés hôtes) afin qu'elles résistent aux défaillances des hôtes individuels. Pour en savoir plus, consultez la page Appliquer des stratégies d'emplacement de répartition aux VM.

Planification de la capacité des VM

Pour vous assurer que la capacité des VM Compute Engine est disponible en cas de besoin, vous pouvez créer des réservations. Une réservation garantit la capacité dans une zone spécifique pour un nombre spécifié de VM d'un type de machine que vous choisissez. Une réservation peut être spécifique à un projet ou partagée entre plusieurs projets. Pour en savoir plus sur les réservations, y compris la facturation, consultez la section Réservations de ressources zonales Compute Engine.

État du disque persistant

Une bonne pratique de conception d'application consiste à éviter d'avoir à utiliser des disques locaux avec état. Toutefois, si l'exigence existe, vous pouvez configurer vos disques persistants pour qu'ils soient à état afin de vous assurer que les données sont conservées lors de la réparation ou de la recréation des VM. Cependant, nous vous recommandons de garder les disques de démarrage sans état, afin de pouvoir les mettre à jour facilement vers les dernières images comportant les nouvelles versions et les correctifs de sécurité. Pour en savoir plus, consultez la page Configurer des disques persistants avec état dans les groupes d'instances gérés.

Durabilité des données

Vous pouvez utiliser l'outil de sauvegarde et reprise après sinistre pour créer, stocker et gérer des sauvegardes des VM Compute Engine. L'outil de sauvegarde et reprise après sinistre stocke les données de la sauvegarde dans leur format d'origine lisible par l'application. Si nécessaire, vous pouvez restaurer vos charges de travail en production en utilisant directement les données d'un stockage de sauvegarde à long terme sans perdre du temps à déplacer les données ni à les préparer.

Pour stocker des sauvegardes des bases de données et des journaux de transactions, vous pouvez utiliser des buckets Cloud Storage régionaux, qui offrent le stockage de sauvegarde le moins coûteux, tout en étant redondant dans plusieurs zones.

Compute Engine offre les options suivantes pour vous aider à garantir la durabilité des données stockées dans les volumes de disques persistants :

  • Vous pouvez utiliser des instantanés standards pour capturer l'état des volumes de disques persistants à un moment précis. Les instantanés sont stockés de manière redondante dans plusieurs régions, avec des sommes de contrôle automatiques permettant de garantir l'intégrité des données. Les instantanés sont incrémentiels par défaut. Ils utilisent donc moins d'espace de stockage et vous réalisez des économies. Les instantanés sont stockés dans un emplacement Cloud Storage que vous pouvez configurer. Pour obtenir d'autres recommandations sur l'utilisation et la gestion des instantanés, consultez la page bonnes pratiques relatives aux instantanés de disques Compute Engine.
  • Les volumes de disques persistants régionaux vous permettent d'exécuter des applications à disponibilité élevée, qui ne sont pas affectées en cas de défaillances des disques persistants. Lorsque vous créez un volume de disque persistant régional, Compute Engine gère une instance répliquée du disque dans une autre zone de la même région. Les données sont répliquées de manière synchrone sur les disques des deux zones. En cas de panne dans l'une des deux zones, les données restent disponibles.

Disponibilité des bases de données

Pour mettre en œuvre le basculement interzone pour la base de données dans chaque région, vous avez besoin d'un mécanisme permettant d'identifier les défaillances de la base de données principale et d'un processus permettant de basculer vers la base de données de secours. Les détails spécifiques du mécanisme de basculement dépendent de la base de données que vous utilisez. Vous pouvez configurer une instance observatrice pour détecter les défaillances de la base de données principale et orchestrer le basculement. Vous devez configurer les règles de basculement de manière appropriée pour éviter une situation de split-brain et éviter tout basculement inutile. Pour obtenir des exemples d'architectures que vous pouvez utiliser afin d'implémenter le basculement pour des bases de données PostgreSQL, consultez la page Architectures haute disponibilité pour les clusters PostgreSQL sur Compute Engine.

Autres considérations sur la fiabilité

Lorsque vous créez l'architecture cloud pour votre charge de travail, passez en revue les bonnes pratiques et les recommandations liées à la fiabilité fournies dans la documentation suivante :

Optimisation des coûts

Cette section fournit des conseils pour optimiser les coûts de configuration et d'exploitation d'une topologie Google Cloud multirégionale que vous créez à l'aide de cette architecture de référence.

Types de machine des VM

Pour vous aider à optimiser l'utilisation des ressources de vos instances de VM, Compute Engine propose des recommandations de types de machines. Utilisez les recommandations pour choisir les types de machines qui correspondent aux exigences de calcul de votre charge de travail. Pour les charges de travail ayant des besoins en ressources prévisibles, vous pouvez personnaliser le type de machine en fonction de vos besoins et réaliser des économies en utilisant des types de machines personnalisés.

Modèle de provisionnement de VM

Si votre application est tolérante aux pannes, les VM Spot peuvent vous aider à réduire les coûts Compute Engine pour les VM des niveaux Web et Application. Le coût des VM Spot est nettement inférieur à celui des VM standards. Toutefois, Compute Engine peut arrêter ou supprimer les VM Spot de manière préemptive pour récupérer de la capacité. Les VM Spot conviennent aux tâches par lots pouvant tolérer la préemption et ne nécessitant pas de haute disponibilité. Les VM Spot offrent les mêmes types de machines, options et performances que les VM standards. Toutefois, lorsque la capacité des ressources d'une zone est limitée, les MIG risquent de ne pas pouvoir mener un scaling horizontal (c'est-à-dire créer des VM) jusqu'à la taille cible spécifiée tant que la capacité requise n'est pas disponible.

Utilisation des ressources

La fonctionnalité d'autoscaling des MIG sans état permet à votre application de gérer sans heurt les hausses de trafic et de réduire les coûts lorsque les besoins en ressources sont faibles. Les MIG avec état ne peuvent pas faire l'objet d'un autoscaling.

Licences tierces

Lorsque vous migrez des charges de travail tierces vers Google Cloud, vous pouvez peut-être réduire les coûts en utilisant vos propres licences (BYOL). Par exemple, pour déployer des VM Microsoft Windows Server, vous pouvez créer et utiliser une image BYOL Windows personnalisée plutôt que d'utiliser une image payante qui entraîne des coûts supplémentaires pour la licence tierce. Vous ne payez alors que pour l'infrastructure de VM que vous utilisez sur Google Cloud. Cette stratégie vous permet de continuer à tirer profit de vos investissements existants en licences tierces. Si vous décidez d'utiliser l'approche BYOL, nous vous recommandons d'effectuer les opérations suivantes :

  • Provisionnez le nombre de cœurs de CPU requis indépendamment de la mémoire, en utilisant les types de machines personnalisés. Cela permet de limiter le coût des licences tierces au nombre de cœurs de CPU dont vous avez besoin.
  • Réduisez le nombre de vCPU par cœur de 2 à 1 en désactivant le multithreading simultané (SMT) pour réduire vos coûts de licence de 50 %.

Autres considérations sur les coûts

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales fournies dans la section Framework d'architecture Google Cloud : optimisation des coûts.

Efficacité opérationnelle

Cette section décrit les facteurs à prendre en compte lorsque vous utilisez cette architecture de référence pour concevoir et créer dans Google Cloud une topologie multirégionale que vous pouvez exploiter efficacement.

Mises à jour de la configuration des VM

Pour mettre à jour la configuration des VM d'un MIG (par exemple, le type de machine ou l'image du disque de démarrage), vous devez créer un modèle d'instance avec la configuration requise, puis appliquer le nouveau modèle au MIG. Le MIG met à jour les VM à l'aide de la méthode de mise à jour que vous choisissez : automatique ou sélective. Choisissez une méthode appropriée en fonction de vos exigences en termes de disponibilité et d'efficacité opérationnelle. Pour en savoir plus sur ces méthodes de mise à jour de MIG, consultez la section Appliquer de nouvelles configurations de VM dans un MIG.

Images de VM

Pour vos modèles d'instances de MIG, au lieu d'utiliser des images publiques fournies par Google, nous vous recommandons de créer et d'utiliser des images personnalisées contenant les configurations et logiciels requis par vos applications. Vous pouvez regrouper vos images personnalisées dans une famille d'images personnalisées. Une famille d'images pointe toujours vers la plus récente des images qu'elle contient, ce qui permet aux modèles d'instance et aux scripts d'utiliser cette image sans qu'il soit nécessaire de mettre à jour les références pour désigner une version spécifique de l'image.

Modèles d'instances déterministes

Si les modèles d'instance que vous utilisez pour vos MIG incluent des scripts de démarrage permettant d'installer des logiciels tiers, assurez-vous qu'ils spécifient explicitement les paramètres d'installation des logiciels, tels que la version. Dans le cas contraire, lorsque le MIG crée les VM, le logiciel installé sur les VM peut ne pas être cohérent. Par exemple, si votre modèle d'instance inclut un script de démarrage qui installe Apache HTTP Server 2.0 (le package apache2), assurez-vous que le script spécifie exactement la version de apache2 qui doit être installée, par exemple la version 2.4.53. Pour en savoir plus, consultez la page Modèles d'instances déterministes.

Autres considérations opérationnelles

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales pour l'efficacité opérationnelle décrites dans la section Framework d'architecture Google Cloud : excellence opérationnelle.

Optimisation des performances

Cette section décrit les facteurs à prendre en compte lorsque vous utilisez cette architecture de référence pour concevoir et créer dans Google Cloud une topologie multirégionale qui répond aux exigences de performances de vos charges de travail.

Emplacement de la VM

Pour les charges de travail nécessitant une faible latence réseau entre VM, vous pouvez créer une stratégie d'emplacement compact et l'appliquer au modèle de MIG. Lorsque le MIG crée des VM, il les place alors sur des serveurs physiques proches les uns des autres. Pour en savoir plus, consultez la section Réduire la latence à l'aide de stratégies de concentration.

Types de machine des VM

Compute Engine propose un large éventail de types de machines prédéfinis et personnalisables, que vous pouvez choisir sur la base de vos exigences en matière de coûts et de performances. Les types de machines sont regroupés en séries et familles de machines. Le tableau suivant récapitule les familles et séries de machines recommandées pour différents types de charges de travail :

Exigence Famille de machines recommandée Exemples de séries de machines
Le meilleur rapport prix/performances pour des charges de travail diverses Famille de machines à usage général C3, C3D, E2, N2, N2D, Tau T2D, Tau T2A
Performances les plus élevées par cœur, optimisées pour les charges de travail intensives en calcul Famille de machines optimisées pour le calcul C2, C2D, H3
Ratio mémoire/vCPU élevé pour les charges de travail exigeantes en mémoire Famille de machines à mémoire optimisée M3, M2, M1
GPU pour des charges de travail massivement parallélisées Famille de machines optimisée pour les accélérateurs A2, G2

Pour en savoir plus, consultez le Guide des ressources de familles de machines et guide comparatif.

Multithreading de VM

Chaque processeur virtuel que vous allouez à une VM Compute Engine est mis en œuvre sous la forme d'un multithread matériel unique. Par défaut, deux processeurs virtuels partagent un cœur physique de processeur. Pour les charges de travail hautement parallèles ou qui effectuent des calculs à virgule flottante (tels que l'analyse de séquences génétiques et la modélisation des risques financiers), vous pouvez améliorer les performances en réduisant le nombre de threads s'exécutant sur chaque cœur de processeur physique. Pour en savoir plus, consultez la section Définir le nombre de threads par cœur.

Niveaux de service réseau

Les niveaux de service réseau vous permettent d'optimiser le coût et les performances réseau de vos charges de travail. Vous pouvez choisir parmi les niveaux suivants :

  • Le niveau Premium utilise le réseau backbone mondial extrêmement fiable de Google pour vous aider à réduire au minimum la perte de paquets et la latence. Le trafic entre et sort du réseau de Google au niveau du POP (point of presence) périphérique le plus proche du FAI de votre utilisateur final. Nous vous recommandons d'utiliser le niveau Premium comme niveau par défaut pour des performances optimales. Le niveau Premium est compatible avec les adresses IP externes régionales et les adresses IP externes globales pour les VM et les équilibreurs de charge.
  • Le niveau Standard n'est disponible que pour les ressources utilisant des adresses IP externes régionales. Le trafic entre et sort du réseau de Google au niveau du POP périphérique le plus proche de la région dans laquelle s'exécute votre charge de travail Google Cloud. Le prix du niveau Standard est inférieur à celui du niveau Premium. Le niveau Standard convient au trafic non sensible à la perte de paquets et qui ne présente pas d'exigences de faible latence.

Mise en cache

Si votre application diffuse des éléments statiques de site Web et que votre architecture inclut un équilibreur de charge d'application externe global (comme illustré dans la Figure 1), vous pouvez utiliser Cloud CDN pour mettre en cache à proximité de vos utilisateurs les éléments statiques consultés régulièrement. Cloud CDN peut vous aider à améliorer les performances pour vos utilisateurs, à réduire l'utilisation des ressources d'infrastructure dans le backend et à réduire vos coûts de diffusion réseau. Pour en savoir plus, consultez la page Performances Web plus rapides et protection Web améliorée pour l'équilibrage de charge.

Autres considérations sur les performances

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales fournies dans la section Framework d'architecture Google Cloud : optimisation des performances.

Étapes suivantes

Contributeurs

Auteur : Kumar Dhanagopal | Cross-product solution developer

Autres contributeurs :