Cette page explique comment configurer un déploiement multirégional à disponibilité élevée avec des équilibreurs de charge d'application externes régionaux. Pour obtenir une haute disponibilité, déployez plusieurs équilibreurs de charge d'application externes régionaux individuels dans les régions qui prennent le mieux en charge le trafic de votre application. Cela fonctionne, car les équilibreurs de charge d'application externes régionaux de différentes régions ne sont pas seulement isolés les uns des autres, mais sont également isolés de tout équilibreur de charge d'application externe global ou de toute infrastructure d'équilibreur de charge d'application classique s'exécutant dans la même région.
Stratégies de haute disponibilité
Vous pouvez mettre en œuvre la résilience interrégionale pour les équilibreurs de charge d'application externes régionaux en utilisant l'une des stratégies suivantes :
Actif/passif (basculement de région) : déployez un équilibreur de charge d'application externe régional principal dans votre région principale et un ou plusieurs équilibreurs de charge d'application externes régionaux de secours dans des régions secondaires. En régime permanent, Cloud DNS achemine tout le trafic vers l'équilibreur de charge principal. Si l'équilibreur de charge principal échoue aux vérifications d'état, Cloud DNS utilise une règle de routage de basculement pour acheminer le trafic vers les équilibreurs de charge régionaux de secours.
Voici un exemple de configuration actif-passif qui montre deux équilibreurs de charge d'application externes régionaux dans deux régions différentes.
Actif-actif (routage de proximité) : déployez plusieurs équilibreurs de charge d'application externes régionaux dans différentes régions qui diffusent le trafic simultanément. Utilisez une règle de routage avec géolocalisation Cloud DNS pour diriger les clients vers la région opérationnelle la plus proche. Si un équilibreur de charge d'une région subit une panne, Cloud DNS achemine automatiquement le trafic de la région non opérationnelle vers des équilibreurs de charge opérationnels d'autres régions.
Voici un exemple de configuration active-active qui montre deux équilibreurs de charge d'application externes régionaux dans deux régions différentes.
Haute disponibilité avec deux équilibreurs de charge d'application externes régionaux (cliquez pour agrandir)
Les sections suivantes décrivent le fonctionnement de la vérification de l'état et de l'orientation du trafic entre les régions dans un workflow standard :
Utiliser des vérifications d'état pour détecter les défaillances régionales
Google Cloud utilise des vérifications d'état pour détecter si vos équilibreurs de charge régionaux sont opérationnels. Vous configurez ces vérifications d'état pour envoyer des vérifications à partir de trois régions sources. Ces trois régions sources doivent être représentatives des régions à partir desquelles vos clients accèdent aux équilibreurs de charge. Par exemple, si vous disposez d'un équilibreur de charge d'application externe régional dont la majorité du trafic client provient d'Amérique du Nord et d'Europe, vous pouvez avoir des vérifications provenant de deux régions ou plus en Amérique du Nord et des vérifications provenant de deux régions ou plus en Europe.
Remarques supplémentaires :
- Vous devez spécifier exactement trois régions sources lorsque vous créez la vérification d'état. Seules les vérifications d'état globales peuvent spécifier des régions sources.
- Les vérifications d'état HTTP, HTTPS et TCP sont prise en charge.
- Les vérifications d'état proviennent d'un point of presence (PoP) sur Internet, à une courte distance de la région source Google Cloudconfigurée.
Acheminer le trafic en fonction de règles de routage
- Actif/Passif : Cloud DNS utilise une règle de routage avec basculement pour orienter 100 % du trafic client vers l'équilibreur de charge régional principal en régime permanent. Lorsque l'équilibreur de charge régional principal échoue aux vérifications d'état, Cloud DNS dirige le trafic vers les équilibreurs de charge régionaux de secours.
- Actif-actif : Cloud DNS utilise une règle de routage de géolocalisation pour orienter le trafic vers les équilibreurs de charge. Lorsque tous les équilibreurs de charge sont opérationnels, Cloud DNS achemine le trafic vers l'équilibreur de charge le plus proche géographiquement du client. Lorsqu'un équilibreur de charge d'une région commence à échouer aux vérifications d'état, le trafic est automatiquement redirigé vers les équilibreurs de charge disponibles et opérationnels dans d'autres régions.
Retour arrière vers l'équilibreur de charge principal
Le failback est automatique lorsque les vérifications d'état redeviennent positives. Le trafic est restauré sans temps d'arrêt, car les équilibreurs de charge diffusent le trafic.
Configurer l'équilibrage de charge multirégional
Pour configurer un déploiement multirégional facilitant la haute disponibilité, procédez comme suit :
- Créez des équilibreurs de charge d'application externes régionaux dans les régions qui, selon vous, prennent le mieux en charge le trafic de votre application. Chacun de ces équilibreurs de charge doit avoir les mêmes configurations de gestion du trafic et de sécurité.
- Créez des vérifications d'état pour surveiller les adresses IP des règles de transfert de vos équilibreurs de charge régionaux.
- Configurez votre règle de routage DNS dans Cloud DNS :
- Pour les déploiements actif-passif, créez une règle de routage avec basculement.
- Pour les déploiements actif-actif, créez une règle de routage par géolocalisation.
Créer des équilibreurs de charge dans plusieurs régions
Tenez compte des points suivants lorsque vous configurez vos équilibreurs de charge redondants supplémentaires :
Configurez tous les équilibreurs de charge d'application externes régionaux avec des fonctionnalités similaires afin que le trafic soit traité de manière cohérente, quel que soit l'équilibreur de charge qui diffuse la requête. Par exemple, assurez-vous d'utiliser le même type de certificat SSL, les mêmes stratégies de sécurité régionales Cloud Armor et les mêmes paramètres de routage de mappage d'URL pour tous les équilibreurs de charge d'application externes régionaux.
Nous vous recommandons d'utiliser un framework d'automatisation tel que Terraform pour assurer et maintenir la cohérence des configurations d'équilibreur de charge entre les différents déploiements régionaux.
Nous vous recommandons de configurer des équilibreurs de charge d'application externes régionaux dans chaque région qui, selon vous, prend le mieux en charge le trafic de votre application.
Les équilibreurs de charge d'application externes régionaux sont compatibles avec les niveaux de service réseau Premium et Standard. Nous vous recommandons de configurer les équilibreurs de charge d'application externes régionaux au niveau Premium pour garantir une faible latence.
Pour apprendre à configurer un équilibreur de charge d'application externe régional, consultez la page Configurer un équilibreur de charge d'application externe régional avec des backends de groupe d'instances de VM.
Créer la vérification de l'état
Créez une vérification de l'état globale pour surveiller l'adresse IP externe de la règle de transfert de chaque équilibreur de charge régional :
gcloud compute health-checks create http HEALTH_CHECK_NAME \
--global \
--source-regions=SOURCE_REGION_1,SOURCE_REGION_2,SOURCE_REGION_3 \
--use-serving-port \
--check-interval=HEALTH_CHECK_INTERVAL \
--healthy-threshold=HEALTHY_THRESHOLD \
--unhealthy-threshold=UNHEALTHY_THRESHOLD \
--request-path=REQUEST_PATH
Remplacez les éléments suivants :
HEALTH_CHECK_NAME: nom de la vérification d'étatSOURCE_REGION_1,SOURCE_REGION_2etSOURCE_REGION_3: les trois régions Google Cloudà partir desquelles les vérifications d'état sont envoyées. Vous devez spécifier exactement trois régions sources.HEALTH_CHECK_INTERVAL: durée en secondes entre le début d'une vérification émise par un vérificateur et le début de la vérification suivante émise par le même vérificateur. La valeur minimale acceptée est de 30 secondes. Pour connaître les valeurs recommandées, consultez Bonnes pratiques.HEALTHY_THRESHOLDetUNHEALTHY_THRESHOLDindiquent le nombre de tests séquentiels qui doivent réussir ou échouer pour que l'équilibreur de charge soit considéré comme opérationnel ou non opérationnel. Si l'une de ces valeurs est omise, Google Cloud utilise le seuil par défaut défini sur 2.REQUEST_PATH: chemin de l'URL à laquelleGoogle Cloud envoie des requêtes de vérification d'état. En cas d'omission, Google Cloud envoie les requêtes de vérification au chemin racine,/. Si les points de terminaison dont l'état est vérifié sont privés, ce qui n'est pas habituel pour les adresses IP des règles de transfert externes, vous pouvez définir ce chemin d'accès sur/afhealthz.
Configurer le basculement régional actif-passif
Dans Cloud DNS, créez un jeu d'enregistrements et appliquez une règle de routage FAILOVER pour envoyer le trafic en régime permanent vers l'équilibreur de charge régional principal et basculer vers l'équilibreur de charge régional de secours en cas de panne :
gcloud dns record-sets create DNS_RECORD_SET_NAME \
--ttl=TIME_TO_LIVE \
--type=RECORD_TYPE \
--zone="MANAGED_ZONE_NAME" \
--routing-policy-type=FAILOVER \
--routing-policy-primary-data=PRIMARY_REGIONAL_FORWARDING_RULE \
--routing-policy-backup-data_type=GEO \
--routing-policy-backup-data="BACKUP_REGION_1=BACKUP_LOAD_BALANCER_1_IP[;BACKUP_REGION_2=BACKUP_LOAD_BALANCER_2_IP]" \
--health-check=HEALTH_CHECK_NAME \
--backup-data-trickle-ratio=BACKUP_DATA_TRICKLE_RATIO
Remplacez les éléments suivants :
DNS_RECORD_SET_NAME: nom DNS ou nom de domaine du jeu d'enregistrements à ajouter (par exemple,test.example.com)TIME_TO_LIVE: valeur TTL de l'enregistrement, en secondes. Pour connaître les valeurs recommandées, consultez Bonnes pratiques.RECORD_TYPE: type d'enregistrement (par exemple,A)MANAGED_ZONE_NAME: nom de votre zone gérée Cloud DNS (par exemple,my-zone-name)PRIMARY_REGIONAL_FORWARDING_RULE: nom de la règle de transfert de l'équilibreur de charge d'application externe régional principalBACKUP_REGION_1etBACKUP_REGION_2: régions où les équilibreurs de charge d'application externes régionaux de secours sont déployésBACKUP_LOAD_BALANCER_1_IPetBACKUP_LOAD_BALANCER_2_IP: adresses IP externes de la règle de transfert des équilibreurs de charge d'application externes régionaux de secoursHEALTH_CHECK_NAME: nom de la vérification d'étatBACKUP_DATA_TRICKLE_RATIO: fraction du trafic (de 0 à 1, par exemple0.1) à envoyer à l'équilibreur de charge régional de secours en régime permanent pour s'assurer que la sauvegarde est amorcée et prête. La valeur par défaut est de 0.
Configurer le routage actif-actif entre régions
Dans Cloud DNS, créez un jeu d'enregistrements et appliquez une règle de routage de géolocalisation pour orienter le trafic simultanément entre les équilibreurs de charge régionaux opérationnels :
gcloud dns record-sets create DNS_RECORD_SET_NAME \
--ttl=TIME_TO_LIVE \
--type=RECORD_TYPE \
--zone="MANAGED_ZONE_NAME" \
--routing-policy-type="GEO" \
--routing-policy-data="FORWARDING_RULE_NAME_A@REGION_A;FORWARDING_RULE_NAME_B@REGION_B[,;FORWARDING_RULE_NAME_C@REGION_C]" \
--health-check=HEALTH_CHECK_NAME
Remplacez les éléments suivants :
DNS_RECORD_SET_NAME: nom DNS ou nom de domaine du jeu d'enregistrements à ajouter (par exemple,test.example.com)TIME_TO_LIVE: valeur TTL (Time To Live) de l'enregistrement, en secondes. Pour connaître les valeurs recommandées, consultez Bonnes pratiques.RECORD_TYPE: type d'enregistrement (par exemple,A)MANAGED_ZONE_NAME: nom de la zone gérée dont vous souhaitez gérer les jeux d'enregistrements (par exemple,my-zone-name)FORWARDING_RULE_NAME_A,FORWARDING_RULE_NAME_BetFORWARDING_RULE_NAME_C: noms des règles de transfert pour les équilibreurs de charge dans chaque région correspondanteREGION_A,REGION_BetREGION_C: régions dans lesquelles chaque équilibreur de charge est déployéHEALTH_CHECK_NAME: nom de la vérification d'état
Bonnes pratiques
Voici quelques bonnes pratiques à prendre en compte lors de la configuration des enregistrements Cloud DNS et des vérifications d'état :
Calculer la durée de l'indisponibilité : le temps nécessaire pour que le trafic soit acheminé des équilibreurs de charge non opérationnels vers des équilibreurs de charge opérationnels (c'est-à-dire la durée de l'indisponibilité) dépend de la valeur TTL du DNS, de l'intervalle de vérification de l'état de l'état et du paramètre seuil de non-fonctionnement de la vérification de l'état :
Duration of outage = DNS TTL + Health Check Interval * Unhealthy ThresholdNous vous recommandons de définir la valeur TTL du DNS sur une durée comprise entre 30 et 60 secondes. Des valeurs TTL plus élevées entraînent des temps d'arrêt plus longs, car les clients sur Internet continuent d'accéder aux équilibreurs de charge non opérationnels même après le basculement du DNS vers d'autres régions.
Configurer les seuils de vérification de l'état d'état : configurez les paramètres de seuils "opérationnel" et "non opérationnel" pour éviter de rediriger le trafic de manière inutile et brutale en raison d'erreurs temporaires. Des seuils plus élevés augmentent le temps nécessaire pour que le trafic soit transféré vers les équilibreurs de charge d'autres régions.
Utiliser le trafic minime pour la validation actif-passif : dans les configurations actif-passif, configurez l'option
--backup-data-trickle-ratiopour envoyer en continu un faible pourcentage de trafic (par exemple,0.1) à l'équilibreur de charge régional de secours en régime permanent. Cela permet de vérifier que l'infrastructure de sauvegarde est active et prête à gérer le trafic en cas de basculement.