Tous les produits
Search
Centre de documentation

Auto Scaling:Gérer automatiquement les instances ECS dans une liste d'autorisation IP MongoDB

Dernière mise à jour :Oct 14, 2026

Cette rubrique explique comment combiner la fonctionnalité de hook de cycle de vie d'Auto Scaling et un modèle CloudOps Orchestration Service (OOS) afin de placer d'abord les instances Elastic Compute Service (ECS) dans l'état Pending, puis d'automatiser l'ajout ou la suppression des adresses IP des instances dans les listes d'autorisation IP des instances ApsaraDB for MongoDB (MongoDB).

Prérequis

  • Un groupe de mise à l'échelle est créé et se trouve dans l'état Enabled.

  • Une instance MongoDB est créée.

  • Un rôle Resource Access Management (RAM) est créé pour OOS. L'entité de confiance du rôle RAM doit être Alibaba Cloud Service, le service approuvé doit être CloudOps Orchestration Service et le rôle RAM doit disposer des autorisations nécessaires pour effectuer des opérations sur le modèle OOS. Pour plus d'informations, consultez la section Créer un rôle RAM pour OOS et accorder des autorisations.

    Remarque

    Dans cette rubrique, le rôle RAM OOSServiceRole est utilisé à titre d'exemple. Vous pouvez également utiliser d'autres rôles.

Contexte

Auto Scaling prend actuellement en charge uniquement l'intégration avec Server Load Balancer (SLB) et ApsaraDB RDS. Si vous stockez les données de votre application sur une instance MongoDB, la mise à jour manuelle de la liste d'autorisation IP de l'instance MongoDB avec les adresses IP privées de vos instances ECS entraîne une inefficacité opérationnelle. Pour améliorer l'efficacité opérationnelle, envisagez d'automatiser les mises à jour de la liste d'autorisation IP de votre instance MongoDB en combinant la fonctionnalité de hook de cycle de vie d'Auto Scaling et un modèle OOS. Tenez compte des remarques d'utilisation suivantes :

  • Si votre groupe de mise à l'échelle contient des instances ECS existantes, vous devez ajouter manuellement les adresses IP privées des instances ECS à la liste d'autorisation IP de l'instance MongoDB. Sinon, une erreur se produit lors de la suppression d'une adresse IP d'instance de la liste d'autorisation IP de l'instance MongoDB.

  • Vous devez utiliser NotificationMetadata (metadata pour faire court) pour spécifier les paramètres requis pour créer des exécutions OOS.

    • Les metadata doivent être au format de chaîne JSON.

    • Les clés dans les metadata doivent correspondre aux paramètres du modèle OOS.

    • Pour les paramètres qui n'ont pas de valeurs par défaut dans le modèle OOS, vous devez spécifier des valeurs. Pour les paramètres qui ont des valeurs par défaut dans le modèle OOS, vous pouvez choisir de remplacer ou non ces valeurs par défaut.

Procédure

Dans cet exemple, un modèle OOS public nommé LifeCycleModifyMongoDBIPWhitelist est utilisé pour montrer comment automatiser l'ajout des adresses IP des instances à la liste d'autorisation IP d'une instance MongoDB lors d'un événement de mise à l'échelle horizontale (scale-out). Effectuez les étapes suivantes :

Remarque

Si vous souhaitez automatiser la suppression des adresses IP des instances de la liste d'autorisation IP de votre instance MongoDB, vous pouvez créer un hook de cycle de vie à des fins de réduction de capacité (scale-in) et appliquer ce hook lors d'un événement de scale-in.

Étape 1 : Accorder à un rôle RAM les autorisations sur OOS

Vous devez disposer des autorisations pour exécuter des modèles OOS. Le modèle ACS-ESS-LifeCycleModifyMongoDBIPWhitelist inclut les ressources ECS, Auto Scaling et MongoDB requises pour effectuer des tâches d'exploitation et de maintenance (O&M).

  1. Connectez-vous à la console RAM.

  2. Créez une stratégie.

    1. Dans le volet de navigation de gauche, sélectionnez Permissions > Policies.

    2. Sur la page Policies, cliquez sur Create Policy.

    3. Sur la page Create Policy, cliquez sur l'onglet JSON Editor, définissez les paramètres, puis cliquez sur OK.

      Le tableau suivant décrit les paramètres utilisés dans cet exemple. Tous les paramètres non couverts dans le tableau suivant conservent leurs paramètres prédéfinis par défaut.

      Parameter

      Description

      Policy name

      Saisissez ESSHookPolicyForMongoDBWhitelist.

      Policy Document

      Saisissez le contenu suivant :

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "dds:ModifySecurityIps"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ess:CompleteLifecycleAction"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  3. Attachez la stratégie au rôle RAM OOSServiceRole.

    1. Dans le volet de navigation de gauche, sélectionnez Identities > Roles.

    2. Recherchez le rôle RAM OOSServiceRole et cliquez sur Grant Permission dans la colonne Actions.

      Ajoutez les autorisations requises pour le rôle RAM OOSServiceRole assumé par OOS afin de finaliser l'autorisation.

    3. Sur la page Grant Permission, spécifiez l'étendue des ressources et la stratégie, puis cliquez sur OK.

      Le tableau suivant décrit les paramètres utilisés dans cet exemple. Tous les paramètres non couverts dans le tableau suivant conservent leurs paramètres prédéfinis par défaut.

      Parameter

      Description

      Authorized scope

      Sélectionnez Account.

      Policy

      Sélectionnez la stratégie personnalisée suivante : ESSHookPolicyForMongoDBWhitelist.

Étape 2 : Créer un hook de cycle de vie à des fins de scale-out et déclencher un événement de scale-out

  1. Connectez-vous à la console Auto Scaling.

  2. Dans le volet de navigation de gauche, cliquez sur Scaling Groups.

  3. Dans la barre de navigation supérieure, sélectionnez une région.

  4. Recherchez le groupe de mise à l'échelle que vous souhaitez gérer et ouvrez sa page de détails de l'une des manières suivantes :

    • Dans la colonne Scaling Group Name/ID, cliquez sur l'ID du groupe de mise à l'échelle.

    • Dans la colonne Actions, cliquez sur Details.

  5. Créez un hook de cycle de vie.

    1. En haut de la page, cliquez sur l'onglet Events and Lifecycle Hooks.

    2. Cliquez sur Create Lifecycle Hook.

    3. Configurez le hook de cycle de vie et cliquez sur OK.

      Le tableau suivant décrit les paramètres utilisés dans cet exemple. Tous les paramètres non couverts dans le tableau suivant conservent leurs paramètres prédéfinis par défaut.

      Parameter

      Description

      Name

      Saisissez ESSHookForAddMongoDBWhitelist.

      Scaling Activity Type

      Sélectionnez Scale-Out.

      Timeout Period

      Configurez Timeout Period en fonction de vos besoins métier. Dans cet exemple, définissez la valeur sur 300. Unité : secondes.

      Remarque

      La période de délai d'expiration correspond à la durée pendant laquelle vous pouvez effectuer des opérations personnalisées sur les instances. Si la période de délai d'expiration est inférieure à la durée nécessaire pour effectuer des opérations personnalisées, les opérations peuvent échouer. Nous vous recommandons d'estimer la durée nécessaire pour effectuer des opérations personnalisées sur les instances et de configurer Timeout Period en fonction de vos estimations.

      Default Execution Policy

      Sélectionnez Continue.

      Send Notification When Lifecycle Hook Takes Effect

      Configurez les paramètres suivants pour le modèle :

      • Notification Method : sélectionnez OOS Template.

      • OOS Template Type : sélectionnez Public Templates.

      • Sélectionnez LifeCycleModifyMongoDBIPWhitelist.

      Dans le modèle public ACS-ESS-LifeCycleModifyMongoDBIPWhitelist, vous devez également configurer les paramètres suivants :

      • MongoDB instance ID : saisissez l'ID de votre instance ApsaraDB for MongoDB. Ce tutoriel utilise une instance de type Replica Set à titre d'exemple.

      • Whitelist modification method : sélectionnez Append. Cela correspond à un événement de scale-out et ajoute l'instance ECS à la liste d'autorisation IP de l'instance ApsaraDB for MongoDB.

      • The RAM role assumed by OOS. : sélectionnez OOSServiceRole. Dans la section Procédure, vous avez accordé au rôle RAM OOSServiceRole les autorisations requises pour gérer les ressources ECS, Auto Scaling et ApsaraDB for MongoDB. OOS peut assumer ce rôle RAM pour obtenir les autorisations nécessaires.

  6. Déclenchez un événement de scale-out.

    Dans cet exemple, un événement de scale-out est déclenché manuellement en exécutant une règle de mise à l'échelle. Vous pouvez également déclencher des événements de scale-out à l'aide de tâches planifiées ou déclenchées par des événements.

    Remarque

    Si des événements de mise à l'échelle sont déclenchés lorsque vous exécutez manuellement des règles de mise à l'échelle, les hooks de cycle de vie prennent effet. Cependant, les hooks de cycle de vie ne prennent pas effet lorsque vous ajoutez ou supprimez manuellement des instances ECS dans ou d'un groupe de mise à l'échelle.

    1. En haut de la page, cliquez sur l'onglet Scaling Rules and Event-triggered Tasks.

    2. Sur l'onglet Scaling Rules, cliquez sur Create Scaling Rule.

    3. Définissez les propriétés de la règle de mise à l'échelle et cliquez sur OK.

      Le tableau suivant décrit les paramètres utilisés dans cet exemple. Tous les paramètres non couverts dans le tableau suivant conservent leurs paramètres prédéfinis par défaut.

      Parameter

      Description

      Rule Name

      Saisissez Add1.

      Rule Type

      Sélectionnez Simple Scaling Rule.

      Operation

      Définissez la valeur sur Add 1 Instances.

    4. Dans la liste des règles de mise à l'échelle, recherchez la règle Add1 nouvellement créée et cliquez sur Recurrently dans la colonne Actions.

    5. Cliquez sur OK.

    Après l'exécution de la règle de mise à l'échelle, Auto Scaling ajoute une instance ECS au groupe de mise à l'échelle. Cependant, l'instance ECS entre dans l'état Pending Add en raison du hook de cycle de vie ESSHookForAddMongoDBWhitelist qui est actif. Pendant la période de délai d'expiration du hook de cycle de vie, Auto Scaling notifie OOS pour exécuter les tâches d'O&M définies dans le modèle public ACS-ESS-LifeCycleModifyMongoDBIPWhitelist.

Étape 3 : Vérifier la liste d'autorisation IP de l'instance MongoDB

  1. Connectez-vous à la console MongoDB.

  2. Dans le volet de navigation de gauche, cliquez sur Replica Set Instances.

  3. Recherchez l'instance ApsaraDB for MongoDB et cliquez sur son ID dans la colonne Instance ID/Name.

  4. Dans le volet de navigation de gauche, sélectionnez Data Security > Whitelist Settings.

    • Si l'adresse IP privée de l'instance ECS est ajoutée à la liste d'autorisation IP de l'instance MongoDB, le modèle public ACS-ESS-LifeCycleModifyMongoDBIPWhitelist prend effet comme prévu.

    • Si l'instance ECS est créée mais que son adresse IP privée n'est pas ajoutée à la liste d'autorisation IP de l'instance MongoDB, accédez à la console OOS pour afficher l'exécution des tâches d'O&M. Pour plus d'informations, consultez la section (Facultatif) Étape 4 : Afficher l'exécution OOS.

(Facultatif) Étape 4 : Afficher l'exécution OOS

  1. Connectez-vous à la console OOS.

  2. Dans le volet de navigation de gauche, sélectionnez Automated Task > Task Execution Management.

  3. Recherchez la tâche d'exécution par heure et cliquez sur Details dans la colonne Actions.

  4. Sur la page de détails d'exécution qui s'affiche, consultez les informations connexes.

    Par exemple, vous pouvez afficher l'ID d'exécution et le statut dans la section Basic Information. Vous pouvez également cliquer sur un nœud de tâche dans la section Execution Steps and Results pour afficher ses détails. Pour plus d'informations, consultez la section Afficher les détails d'exécution.

    Remarque

    Si l'exécution échoue, un message d'erreur s'affiche sur la page de détails d'exécution.

FAQ

Si vous ne parvenez pas à exécuter une tâche d'O&M, résolvez le problème en vous basant sur le message d'erreur figurant dans le résultat d'exécution. Pour plus d'informations, consultez la section FAQ.

Le tableau suivant décrit les messages d'erreur courants.

Error message

Cause

Solution

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

Vous n'avez pas autorisé Auto Scaling à effectuer l'action actuelle.

Vérifiez si le rôle RAM OOSServiceRole dispose des autorisations requises.

Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

L'utilisateur RAM ou le rôle RAM ne dispose pas des autorisations nécessaires pour opérer sur les ressources correspondantes.

Vérifiez si le rôle RAM OOSServiceRole dispose des autorisations requises. Par exemple, vous pouvez accorder les autorisations OOS au rôle RAM. Avant qu'OOS puisse gérer les ressources déclarées dans le modèle OOS, vous devez accorder les autorisations requises au rôle RAM.

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

L'action de hook de cycle de vie en cours est terminée ou a été arrêtée.

Évaluez la période de délai d'expiration du hook de cycle de vie pour vous assurer que les tâches d'O&M spécifiées dans le modèle OOS peuvent être achevées dans le délai imparti.