Déplacer Azure Container Apps vers une autre région

Cet article explique comment déplacer une charge de travail Azure Container Apps vers une autre région Azure en recréant l’environnement managé et les applications conteneur dans la région cible. Le processus couvre l’exportation de la configuration de l’application, le redéploiement des ressources, la validation du déploiement et le nettoyage des ressources dans la région source.

Important

Azure Container Apps ne prend pas en charge la migration de région sur place. Vous recréez des ressources dans la région cible : les ressources existantes ne sont pas déplacées. Cet article traite du déplacement de la configuration et de l’infrastructure container Apps. Elle ne couvre pas la réplication des données d’application, des bases de données ou d’autres dépendances avec état.

Prerequisites

Avant de commencer, vérifiez que vous répondez aux exigences suivantes :

  • Azure Container Apps est disponible dans la région cible.
  • La région cible prend en charge les mêmes fonctionnalités Container Apps, profils de charge de travail et options de mise en réseau que vous utilisez dans la région source.
  • Vous disposez d’un quota suffisant dans la région cible pour les ressources que vous envisagez de déployer.
  • Vous disposez des autorisations suivantes dans les abonnements source et cible :
    • Propriétaire ou Contributeur sur le groupe de ressources.
    • Contributeur d’applications de conteneur (recommandé). Ce rôle inclut des autorisations génériques qui accordent l’accès aux valeurs de secret de Container Apps. Pour un accès plus restreint, voir Permissions pour la gestion des secrets.
  • Vos images conteneur se trouvent dans un registre accessible à partir de la région cible (par exemple, Azure Container Registry ou un registre externe pris en charge).
  • Les ressources Azure dépendantes telles que Key Vault, les comptes de stockage, les bases de données, les réseaux virtuels et les services de messagerie sont déjà disponibles dans la région cible ou ont un plan de redéploiement.

Tip

Si vous utilisez Azure Container Registry (ACR), envisagez d’activer la géoréplication pour rendre les images disponibles dans la région cible sans redéployer le Registre.

az acr replication create --registry <REGISTRY_NAME> --location <TARGET_REGION>

Comprendre les exigences en matière de temps d’arrêt

Azure Container Apps ne prend pas en charge la migration de région dynamique. Les temps d’arrêt sont principalement causés par la propagation DNS et les modifications de routage du trafic pendant la transition. Pour réduire l’impact :

  1. Déployez et validez d’abord l’application conteneur dans la région cible.
  2. Réduction des valeurs de durée de vie DNS à l’avance (par exemple, à 60 secondes) afin que les modifications de routage se propagent rapidement.
  3. Redirigez le trafic de production vers le nouveau point de terminaison uniquement une fois la validation terminée.
  4. Conservez l’application conteneur source en cours d’exécution jusqu’à ce que vous confirmiez que le déploiement cible est sain.

Préparer

Pour préparer la réinstallation, exportez la configuration source et passez en revue tous les paramètres spécifiques à la région.

Identifier les dépendances

Les ressources dépendantes suivantes doivent exister dans la région cible avant le basculement :

  • Azure Key Vault
  • Comptes de stockage
  • Bases de données et services de messagerie (tels qu’Azure Service Bus, Azure Cosmos DB)
  • Réseaux virtuels, sous-réseaux et points de terminaison privés
  • Groupes de sécurité réseau (NSG) et itinéraires définis par l’utilisateur (UDR)
  • Zones DNS privées
  • Espaces de travail Log Analytics
  • Composants Dapr (si utilisés)

Important

Les secrets, les certificats, les domaines personnalisés et les valeurs de configuration sécurisée ne sont pas conservés dans les modèles exportés. Vous devez recréer ces ressources manuellement dans la région cible à partir de leurs sources d’origine.

Planifier les modifications d’identité managée

La gestion des identités managées dépend du type d’identité :

  • Identité affectée par le système : lorsque vous recréez l’application conteneur, Azure génère un nouvel ID de principal. Vous devez réaffecter tous les rôles RBAC, les stratégies d’accès Key Vault et les autorisations de service en aval à la nouvelle identité.

  • Identité affectée par l’utilisateur : les identités managées affectées par l’utilisateur sont des ressources régionales et ne peuvent pas être déplacées entre les régions. Créez une identité affectée par l’utilisateur dans la région cible et attribuez les autorisations requises avant le déploiement.

Exporter la configuration source

Utilisez le portail Azure pour exporter des modèles ARM pour l’environnement managé Container Apps et les applications conteneur individuelles.

  1. Connectez-vous au portail Azure.
  2. Accédez à l’environnement managé Container Apps ou à la ressource d’application conteneur.
  3. Dans le menu de gauche, sélectionnez Modèled’exportation>.
  4. Sélectionnez Télécharger et extraire le .zip fichier dans un dossier local.

Les fichiers extraits sont les suivants :

Fichier Description
template.json Définition de la configuration des ressources
Fichiers de paramètres Valeurs des paramètres de déploiement
Scripts de déploiement Scripts pour l’exécution du modèle

Note

Les modèles exportés servent de point de départ pour comprendre votre configuration. Ils peuvent inclure des propriétés en lecture seule que vous devez supprimer, et ils n’incluent pas de secrets ou de valeurs de certificat. Passez en revue attentivement la sortie exportée avant de l’utiliser pour le redéploiement.

Modifier le modèle d’environnement managé

Avant de redéployer l’environnement managé, mettez à jour la configuration exportée :

  • Mettez à jour l’emplacement : définissez la location propriété sur la région Azure cible.
  • Valider les noms de ressources : vérifiez que le nom de l’environnement managé est unique dans le groupe de ressources et la région cibles.
  • Passez en revue la configuration de Log Analytics : mettez à jour la référence de l’espace de travail Log Analytics si l’espace de travail est spécifique à la région. Vous devrez peut-être créer un espace de travail dans la région cible.
  • Supprimez les propriétés en lecture seule : si vous avez exporté à partir du portail, supprimez des propriétés telles que id, , typesystemDataet d’autres champs en lecture seule qui provoquent des échecs de déploiement.

Modifier le modèle d’application conteneur

Après avoir exporté la configuration de l’application conteneur, apportez les modifications suivantes :

  • Mettez à jour la référence de l’environnement managé : remplacezmanagedEnvironmentId par l’ID de ressource du nouvel environnement managé dans la région cible. Les environnements managés sont liés à une région et ne peuvent pas être réutilisés entre les régions.

  • Vérifier les références d’image conteneur : vérifiez que les références d’image pointent vers un registre de conteneurs accessible à partir de la région cible. Si vous avez activé la géoréplication ACR, les références existantes peuvent fonctionner sans modification.

  • Passez en revue la configuration d’entrée : après le redéploiement, le nom de domaine complet de l’application (FQDN) change. Prévoyez de mettre à jour les enregistrements DNS personnalisés et le routage du trafic pendant le basculement.

  • Reconfigurez les secrets et les paramètres d’application : recréez les secrets à l’aide des références azure Key Vault ou de la configuration de l’application. Ne vous fiez pas aux valeurs exportées pour les paramètres sensibles.

  • Mettre à jour les composants Dapr : si vous utilisez Dapr, vérifiez que les configurations de composants Dapr référencent les ressources disponibles dans la région cible (par exemple, magasins d’état, pub/sous-répartiteurs, magasins secrets).

  • Mettez à jour les diagnostics et la surveillance : vérifiez les références de l’espace de travail Log Analytics et reconfigurez les paramètres de diagnostic si nécessaire.

Redeploy

Les environnements managés Azure Container Apps sont liés à une région. Créez l’environnement managé dans la région cible avant de redéployer les applications conteneur.

Déployer l’environnement managé

  1. Dans le portail Azure, accédez au groupe de ressources cible.
  2. Sélectionnez Déployer un modèle personnalisé.
  3. Choisissez Générer votre propre modèle dans l’éditeur et chargez le modèle ARM modifié.
  4. Passez en revue les paramètres de déploiement, puis sélectionnez Vérifier + créer pour démarrer le déploiement.

Valider l’accès au registre de conteneurs

Avant de déployer l’application conteneur, vérifiez que l’identité utilisée par l’application conteneur (identité managée affectée par le système ou affectée par l’utilisateur) a le rôle AcrPull attribué sur azure Container Registry cible.

az role assignment create \
  --assignee <IDENTITY_PRINCIPAL_ID> \
  --role AcrPull \
  --scope <ACR_RESOURCE_ID>

Note

Si l’application conteneur fait référence à un ACR dans un autre abonnement ou région, vérifiez que les autorisations requises sont configurées à l’avance pour empêcher les échecs d’extraction d’images pendant le déploiement.

Déployer l’application de conteneur

  1. Dans le portail Azure, accédez au groupe de ressources cible.
  2. Sélectionnez Déployer un modèle personnalisé.
  3. Chargez le modèle ARM modifié pour l’application conteneur.
  4. Passez en revue les paramètres et terminez le déploiement.

Configurer la mise en réseau

Après le déploiement, reconfigurez la mise en réseau pour qu’elle corresponde à la configuration source :

  1. Configurer l’entrée : configurez l’entrée publique ou privée en fonction du modèle d’exposition de votre application.

  2. Réappliquez l'intégration du VNet : si l'application conteneur utilise un réseau privé, configurez le Réseau Virtuel, les sous-réseaux, les points de terminaison privés et les zones DNS privées dans la région cible.

  3. Mettez à jour les groupes de sécurité réseau et les UDR : recréez les groupes de sécurité réseau et les itinéraires définis par l’utilisateur en fonction des besoins.

  4. Mettre à jour les listes d’adresses IP autorisées : si les services en aval utilisent des listes d’autorisation basées sur IP, mettez-les à jour avec les nouvelles adresses IP sortantes à partir de l’environnement de région cible.

  5. Configurer des domaines et des certificats personnalisés : les domaines personnalisés et les certificats TLS ne sont pas transférés lors du déplacement. Reconfigurez-les sur la nouvelle application conteneur et mettez à jour les enregistrements DNS.

Couper le trafic

Après validation, redirigez le trafic vers le déploiement cible-région :

  1. Si vous avez réduit le TTL DNS précédemment, mettez à jour les enregistrements DNS pour qu’ils pointent vers le nouveau nom de domaine complet (FQDN) de l’application conteneur.

  2. Si vous utilisez Azure Front Door ou Azure Traffic Manager, mettez à jour le pool principal ou le point de terminaison pour inclure l’application conteneur de région cible et supprimer le point de terminaison source-région.

  3. Surveillez le trafic pour confirmer que les demandes atteignent le nouveau déploiement.

Tip

Conservez l’application conteneur source en cours d’exécution pendant la fenêtre de restauration. Si des problèmes se produisent, rétablissez le routage DNS ou du trafic vers le point de terminaison source jusqu’à ce que vous résolvez le problème.

Vérifier

Après la commutation du trafic, validez les éléments suivants :

  • Disponibilité et temps de réponse des applications.
  • Comportement d’échelle sous la charge attendue et la charge maximale.
  • Connectivité aux services dépendants tels que les bases de données, Key Vault, le stockage et la messagerie.
  • Gestion de l’identité et accès aux ressources en aval.
  • Fonctionnalité de composant Dapr, si utilisée.
  • Les journaux et métriques sont transférés vers Azure Monitor et Log Analytics.

Vérifiez à l’aide de l’interface CLI :

# Confirm the container app is running
az containerapp show \
  --name <APP_NAME> \
  --resource-group <TARGET_RESOURCE_GROUP> \
  --query "{status:properties.runningStatus, fqdn:properties.configuration.ingress.fqdn}" \
  --output table

# Test the application endpoint
curl -s -o /dev/null -w "%{http_code}" https://<APP_FQDN>/health

Important

Conservez l’application conteneur source en cours d’exécution jusqu’à ce que la validation soit terminée et que le déploiement cible soit confirmé sain. Définissez une fenêtre de restauration, telle que 24 à 48 heures, avant de nettoyer les ressources sources.

Nettoyer les ressources sources

Après que la validation a été effectuée avec succès et que le transfert du trafic a été opéré :

  1. Supprimez l’application conteneur source.
  2. Supprimez l’environnement managé source si vous n’en avez plus besoin.
  3. Supprimez les images de conteneur inutilisées, les ressources réseau et les affectations d’identité pour éviter les frais inutiles.
  4. Mettez à jour les tableaux de bord de surveillance ou les règles d’alerte qui ont référencé les ressources sources.

Limitations

  • Azure Container Apps ne prend pas en charge la relocalisation en place ou en phase de région.
  • Vous devez recréer des secrets, des certificats et des domaines personnalisés.
  • L’historique des révisions n’est pas conservé dans le déploiement cible.
  • Un temps d’arrêt est nécessaire lors du coup de rotation.
  • Les identifiants principaux d’identité managée assignés par le système changent, vous devez donc recréer toutes les affectations RBAC.
  • Les identités managées affectées par l’utilisateur sont régionales et doivent être recréées dans la région cible.
  • Les adresses IP sortantes changent, ce qui peut affecter les listes d’autorisation du service en aval.