Ce tutoriel explique comment utiliser un hook de cycle de vie d'Auto Scaling pour suspendre une instance ECS et lui appliquer automatiquement une stratégie de snapshot automatique via un modèle CloudOps Orchestration Service (OOS).
Prérequis
Vous avez créé un groupe de mise à l'échelle dont l'état est Enabled. Pour plus d'informations, consultez la rubrique Gérer les groupes de mise à l'échelle.
Vous avez créé une stratégie de snapshot automatique. Pour plus d'informations, consultez la rubrique Créer une stratégie de snapshot automatique.
-
Un rôle RAM (Resource Access Management) a été créé pour OOS. L'entité de confiance du rôle RAM doit être Alibaba Cloud Service, le service de confiance 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 rubrique Créer un rôle RAM pour OOS et accorder des autorisations.
RemarqueDans cette rubrique, le rôle RAM OOSServiceRole sert d'exemple. Vous pouvez également utiliser d'autres rôles.
Contexte
Une stratégie de snapshot automatique crée périodiquement des snapshots pour vos instances ECS, ce qui améliore la sécurité des données et la tolérance aux pannes opérationnelles. Bien qu'il ne soit pas possible d'associer une stratégie de snapshot automatique lors de la création d'une configuration de mise à l'échelle, vous pouvez automatiser ce processus en utilisant un hook de cycle de vie et un modèle OOS. Cette méthode s'avère plus efficace que l'application manuelle d'une stratégie à chaque nouvelle instance ECS.
Une stratégie de snapshot automatique génère régulièrement des snapshots selon une planification définie afin de protéger les données stockées sur vos disques système et disques de données. Pour plus d'informations, consultez la rubrique Stratégies de snapshot automatique.
Procédure
Ce tutoriel utilise le modèle public OOS ACS-ESS-LifeCycleApplyAutoSnapshotPolicy comme exemple pour illustrer l'application automatique d'une stratégie de snapshot automatique aux instances ECS lors d'un scale-out. La procédure se déroule comme suit :
Étape 1 : Accorder des autorisations au rôle RAM OOS
Vous devez disposer des autorisations requises pour exécuter les modèles OOS. L'exécution des opérations d'exploitation et de maintenance définies dans ACS-ESS-LifeCycleApplyAutoSnapshotPolicy implique des ressources Elastic Compute Service (ECS) et Auto Scaling.
Connectez-vous à la console RAM.
-
Créez une stratégie d'autorisation.
Dans le volet de navigation de gauche, choisissez .
Sur la page Policies, cliquez sur Create Policy.
-
Sur la page Create Policy, cliquez sur l'onglet JSON, saisissez le contenu de la stratégie ci-dessous, puis cliquez sur OK.
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeDisks", "ecs:ApplyAutoSnapshotPolicy", "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ess:CompleteLifecycleAction" ], "Resource": "*", "Effect": "Allow" } ] } -
Dans la boîte de dialogue Create Policy, saisissez un nom pour la stratégie.
Le nom de la stratégie est
ESSHookPolicyForApplyAutoSnapshotPolicy.RemarqueSi vous devez modifier le contenu de la stratégie, cliquez sur Cancel pour continuer à modifier la stratégie d'autorisation.
Cliquez sur OK.
-
Attachez la stratégie d'autorisation au rôle RAM OOSServiceRole.
Dans le volet de navigation de gauche, choisissez .
-
Localisez le rôle RAM OOSServiceRole et cliquez sur Grant Permission dans la colonne Actions.
Ajoutez les autorisations requises pour le rôle RAM OOSServiceRole endossé par OOS afin de finaliser l'autorisation.
-
Sur la page Grant Permission, configurez les paramètres et cliquez sur OK.
Le tableau suivant décrit les paramètres utilisés dans ce tutoriel. Utilisez les valeurs par défaut pour tous les paramètres non mentionnés.Basic Information
Parameter
Description
Grant Scope
Sélectionnez Alibaba Cloud Account.
Policies
Ajoutez la stratégie personnalisée
ESSHookPolicyForApplyAutoSnapshotPolicy.
Étape 2 : Créer un hook de cycle de vie et déclencher un scale-out
Connectez-vous à la console Auto Scaling.
Dans le volet de navigation de gauche, cliquez sur Scaling Groups.
Dans la barre de navigation supérieure, sélectionnez une région.
-
Localisez le groupe de mise à l'échelle à gérer et accédez à sa page de détails en suivant l'une des méthodes 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.
-
Créez un hook de cycle de vie pour l'événement de scale-out.
En haut de la page, cliquez sur l'onglet Events and Lifecycle Hooks.
Cliquez sur Create Lifecycle Hook.
-
Configurez le hook de cycle de vie et cliquez sur OK.
Le tableau suivant décrit les paramètres utilisés dans ce tutoriel. Utilisez les valeurs par défaut pour tous les paramètres non mentionnés.
Parameter
Description
Name
Saisissez
ESSHookForApplyAutoSnapshotPolicy.Scaling Activity Type
Sélectionnez Scale-Out.
Timeout Period
Indiquez une durée d'expiration appropriée, par exemple 300 secondes.
RemarqueLa durée d'expiration correspond au temps maximal autorisé pour l'exécution de l'action personnalisée. Si l'action n'est pas terminée dans ce délai, elle échoue. Définissez une durée suffisante pour permettre l'exécution réussie de votre action.
Default Execution Policy
Sélectionnez Continue.
Send Notification When Lifecycle Hook Takes Effect
Configurez le modèle comme suit :
-
Méthode de notification : sélectionnez OOS Template.
-
Type de modèle OOS : sélectionnez Public Templates.
-
Modèle public : sélectionnez
ACS-ESS-LifeCycleApplyAutoSnapshotPolicy.
Les paramètres d'exécution pour
ACS-ESS-LifeCycleApplyAutoSnapshotPolicysont les suivants :-
autoSnapshotPolicyId : saisissez l'ID de votre stratégie de snapshot automatique.
-
OOSAssumeRole : sélectionnez
OOSServiceRole. À l'étape 1, vous avez accordé à ce rôle RAM les autorisations nécessaires pour gérer les ressources ECS et Auto Scaling. OOS endosse ce rôle pour acquérir ces autorisations.
-
-
Déclenchez un événement de scale-out.
Dans ce tutoriel, nous exécutons manuellement une règle de mise à l'échelle pour déclencher l'événement de scale-out. Vous pouvez également utiliser d'autres méthodes, telles que des tâches planifiées ou déclenchées par des événements.
RemarqueLes hooks de cycle de vie sont déclenchés lors de l'exécution d'une règle de mise à l'échelle, mais ils ne le sont pas lorsque vous ajoutez ou supprimez manuellement des instances ECS existantes d'un groupe de mise à l'échelle.
En haut de la page, cliquez sur l'onglet Scaling Rules and Event-triggered Tasks.
Sur l'onglet Scaling Rules, cliquez sur Create Scaling Rule.
-
Configurez la règle de mise à l'échelle et cliquez sur OK.
Le tableau suivant décrit les paramètres utilisés dans ce tutoriel. Utilisez les valeurs par défaut pour tous les paramètres non mentionnés.
Parameter
Description
Rule Name
Saisissez
Add1.Rule Type
Sélectionnez Simple Scaling Rule.
Operation
Définissez l'ajout d'une instance.
Dans la liste des règles de mise à l'échelle, localisez la règle
Add1et cliquez sur Actions dans la colonne Recurrently.Cliquez sur OK.
Après l'exécution de la règle de mise à l'échelle, une instance ECS est automatiquement créée. Le hook de cycle de vie
ESSHookForApplyAutoSnapshotPolicydu groupe de mise à l'échelle suspend alors l'instance ECS et notifie simultanément le service OOS pour exécuter les opérations d'exploitation et de maintenance définies dansACS-ESS-LifeCycleApplyAutoSnapshotPolicy. -
Vérifiez que la stratégie de snapshot automatique est appliquée à la nouvelle instance ECS.
En haut de la page, cliquez sur l'onglet Instance Management.
Localisez l'instance ECS nouvellement créée et cliquez sur son ID dans la colonne ECS Instance ID/Name.
Sur la page Instance Details, cliquez sur l'onglet Block Storage.
-
Localisez le disque cloud et, dans la colonne Actions, cliquez sur Set Snapshot Policy.
L'illustration ci-dessous montre qu'une stratégie de snapshot automatique est activée pour le disque cloud. Cette stratégie correspond à l'Automatic Snapshot Policy ID défini lors de la création du hook de cycle de vie, ce qui constitue le comportement attendu lors de l'utilisation du modèle public
ACS-ESS-LifeCycleApplyAutoSnapshotPolicy.
Si l'instance ECS a été créée mais que la stratégie de snapshot automatique n'a pas été appliquée, accédez à la console OOS pour vérifier l'état d'exécution de la tâche.
(Facultatif) Étape 3 : Consulter l'état d'exécution OOS
Connectez-vous à la console OOS.
Dans le volet de navigation de gauche, choisissez .
Localisez la tâche d'exécution par date et heure, puis cliquez sur Details dans la colonne Actions.
-
Sur la page des détails d'exécution, consultez les informations d'exécution.
Par exemple, vous pouvez consulter l'ID et l'état d'exécution dans la section Basic Information. Vous pouvez également cliquer sur un nœud de tâche dans la section Task Execution pour afficher les détails de cette étape. Pour plus d'informations, consultez la rubrique Afficher les détails d'une exécution.
RemarqueSi une exécution échoue, la page des détails d'exécution affiche un message d'erreur.
FAQ
Si l'exécution d'une tâche d'exploitation et de maintenance échoue, 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 rubrique 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 des 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 nécessaires 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 arrêtée. |
Évaluez la durée d'expiration du hook de cycle de vie afin de vous assurer que les tâches d'exploitation et de maintenance spécifiées dans le modèle OOS peuvent être achevées dans le délai imparti. |
Rubriques connexes
Vous pouvez également utiliser un hook de cycle de vie Auto Scaling et un modèle CloudOps Orchestration Service (OOS) pour exécuter automatiquement des scripts sur une instance ECS lors d'un événement de scale-in ou de scale-out. Pour plus d'informations, consultez la rubrique Exécuter automatiquement des scripts sur des instances ECS.