Tous les produits
Search
Centre de documentation

Resource Orchestration Service:ALIYUN::ESS::ScalingGroup

Dernière mise à jour :Aug 10, 2026

La ressource ALIYUN::ESS::ScalingGroup crée un groupe de mise à l'échelle, qui regroupe plusieurs instances ECS destinées au même scénario applicatif. Le groupe ne devient effectif qu'après son activation via la ressource ALIYUN::ESS::ScalingGroupEnable, ce qui permet de déclencher les activités de mise à l'échelle et d'exécuter les règles associées.

Syntaxe

{
  "Type": "ALIYUN::ESS::ScalingGroup",
  "Properties": {
    "MultiAZPolicy": String,
    "DesiredCapacity": Integer,
    "NotificationConfigurations": List,
    "ProtectedInstances": List,
    "LaunchTemplateId": String,
    "LaunchTemplateVersion": String,
    "ScalingGroupName": String,
    "VSwitchIds": List,
    "DefaultCooldown": Integer,
    "MinSize": Integer,
    "GroupDeletionProtection": Boolean,
    "MaxSize": Integer,
    "InstanceId": String,
    "VSwitchId": String,
    "LoadBalancerIds": List,
    "StandbyInstances": List,
    "RemovalPolicys": List,
    "HealthCheckType": String,
    "DBInstanceIds": List,
    "Tags": List,
    "OnDemandPercentageAboveBaseCapacity": Integer,
    "CompensateWithOnDemand": Boolean,
    "ContainerGroupId": String,
    "ScalingPolicy": String,
    "SpotInstanceRemedy": Boolean,
    "SpotInstancePools": Integer,
    "OnDemandBaseCapacity": Integer,
    "GroupType": String,
    "LaunchTemplateOverrides": List,
    "AllocationStrategy": String,
    "AzBalance": Boolean,
    "MaxInstanceLifetime": Integer,
    "CustomPolicyARN": String,
    "SpotAllocationStrategy": String,
    "HealthCheckTypes": List,
    "ServerGroups": List,
    "ResourceGroupId": String
  }
}

Propriétés

Nom de la propriété

Type

Obligatoire

Mise à jour possible

Description

Contraintes

MinSize

Integer

Oui

Oui

Le nombre minimal d'instances ECS dans le groupe de mise à l'échelle.

Valeurs valides : 0 à 1000.

Auto Scaling crée automatiquement des instances lorsque le nombre tombe en dessous de cette valeur.

MaxSize

Integer

Oui

Oui

Le nombre maximal d'instances ECS dans le groupe de mise à l'échelle.

Valeurs valides : 0 à 1000.

Auto Scaling supprime automatiquement des instances lorsque le nombre dépasse cette valeur.

ScalingGroupName

String

Non

Oui

Le nom affiché du groupe de mise à l'échelle.

Le nom doit comporter entre 2 et 64 caractères. Il doit commencer par un chiffre, une lettre ou un caractère chinois. Il peut contenir des lettres, des caractères chinois, des chiffres, des traits de soulignement (_), des traits d'union (-) et des points (.).

Le nom doit être unique au sein de la même région et sous le même compte Alibaba Cloud.

Valeur par défaut : ID du groupe de mise à l'échelle.

LaunchTemplateId

String

Non

Oui

L'ID du modèle de lancement utilisé pour la création d'instances.

Aucune

LaunchTemplateVersion

String

Non

Oui

La version du modèle de lancement ECS.

Valeurs valides :

  • Un numéro de version de modèle fixe.

  • Default : La version par défaut du modèle est toujours utilisée.

  • Latest : La dernière version du modèle est toujours utilisée.

RemovalPolicys

List

Non

Oui

Les stratégies de suppression des instances ECS du groupe de mise à l'échelle.

Valeurs valides :

  • OldestInstance (par défaut) : Supprime l'instance ECS ajoutée au groupe de mise à l'échelle le plus tôt.

  • NewestInstance : Supprime l'instance ECS ajoutée au groupe de mise à l'échelle le plus récemment.

  • OldestScalingConfiguration (par défaut) : Supprime les instances ECS créées sur la base de la configuration de mise à l'échelle la plus ancienne.

VSwitchId

String

Non

Oui

L'ID du vSwitch.

Aucune

LoadBalancerIds

List

Non

Oui

Les IDs des instances SLB.

Tableau JSON contenant jusqu'à cinq IDs d'instances SLB, séparés par des virgules (,).

DefaultCooldown

Integer

Non

Oui

Le temps de temporisation après la fin d'une activité de mise à l'échelle.

Valeurs valides : 0 à 86 400.

Unité : secondes.

Valeur par défaut : 300.

Pendant la période de temporisation, le groupe de mise à l'échelle rejette les autres activités de mise à l'échelle. S'applique uniquement aux activités déclenchées par les tâches basées sur les événements de CloudMonitor.

DBInstanceIds

List

Non

Oui

Les IDs des instances ApsaraDB RDS.

Tableau JSON contenant jusqu'à huit IDs d'instances RDS, séparés par des virgules (,).

VSwitchIds

List

Non

Oui

Les IDs de plusieurs vSwitches.

Jusqu'à cinq IDs de vSwitch. Cette propriété remplace VSwitchId si les deux sont spécifiées. Les vSwitches sont prioritaires dans l'ordre indiqué ; si la création d'instance échoue dans la zone de priorité supérieure, le vSwitch suivant est utilisé.

MultiAZPolicy

String

Non

Oui

La stratégie de mise à l'échelle des instances ECS dans un groupe multi-zones.

Valeurs valides :

  • PRIORITY : Met à l'échelle les instances en fonction des vSwitches définis. Si une instance ECS ne peut pas être créée dans la zone où se trouve un vSwitch de priorité supérieure, le vSwitch de priorité suivante est automatiquement utilisé.

  • BALANCE : Répartit uniformément les instances ECS entre les zones spécifiées pour le groupe de mise à l'échelle.

  • COST_OPTIMIZED : Crée les instances par ordre croissant du prix unitaire par vCPU. Donne la priorité aux instances Spot lorsque plusieurs types d'instances utilisent la facturation Spot. Bascule vers des instances à la demande si les instances Spot ne sont pas disponibles.

NotificationConfigurations

List

Non

Oui

Les configurations de notification des événements et des modifications de ressources.

Propriétés NotificationConfigurations.

ProtectedInstances

List

Non

Oui

Le nombre d'instances ECS protégées dans le groupe de mise à l'échelle.

Vous pouvez spécifier jusqu'à 1 000 instances.

StandbyInstances

List

Non

Oui

Le nombre d'instances ECS en veille dans le groupe de mise à l'échelle.

Vous pouvez spécifier jusqu'à 1 000 instances.

HealthCheckTypes

List

Non

Oui

Les types de contrôle de santé pour le groupe de mise à l'échelle.

Valeurs valides :

  • NONE : Aucun contrôle de santé n'est effectué.

  • ECS : Effectue des contrôles de santé sur les instances du groupe de mise à l'échelle. Cette valeur est utilisée pour activer les contrôles de santé des instances pour les groupes de mise à l'échelle ECS et ECI.

  • LOAD_BALANCER : Détermine l'état de santé d'une instance en fonction des résultats du contrôle de santé de l'équilibreur de charge. CLB n'est pas pris en charge.

HealthCheckType

String

Non

Oui

Le type de contrôle de santé.

Valeurs valides :

  • ECS

  • NONE

GroupDeletionProtection

Boolean

Non

Oui

Active ou désactive la protection contre la suppression du groupe de mise à l'échelle.

Valeurs valides :

  • true : Active la protection contre la suppression. Le groupe de mise à l'échelle ne peut pas être supprimé.

  • false (par défaut) : Désactive la protection contre la suppression.

DesiredCapacity

Integer

Non

Oui

Le nombre attendu d'instances ECS dans le groupe de mise à l'échelle. Auto Scaling maintient le nombre d'instances à cette valeur.

La valeur doit être supérieure ou égale à MinSize et inférieure ou égale à MaxSize.

InstanceId

String

Non

Non

L'ID d'une instance ECS à partir de laquelle le système dérive une configuration de mise à l'échelle lors de la création du groupe.

Aucune

Tags

List

Non

Oui

Les tags.

Vous pouvez ajouter jusqu'à 20 tags.

Propriétés Tags.

OnDemandPercentageAboveBaseCapacity

Integer

Non

Oui

Le pourcentage d'instances à la demande parmi les instances qui dépassent la capacité de base.

Une fois la valeur OnDemandBaseCapacity atteinte, ce pourcentage s'applique aux instances supplémentaires au-delà de la base.

Valeurs valides : 0 à 100.

CompensateWithOnDemand

Boolean

Non

Oui

Indique s'il faut créer des instances à la demande pour atteindre le nombre requis d'instances ECS.

Effectif uniquement lorsque MultiAZPolicy est défini sur COST_OPTIMIZED. Crée des instances à la demande lorsque les instances Spot ne sont pas disponibles en raison de contraintes de prix ou d'inventaire.

Valeurs valides :

  • true (par défaut) : Oui.

  • false : Non.

ContainerGroupId

String

Non

Non

L'ID de l'instance ECI.

Aucune

ScalingPolicy

String

Non

Non

Le mode de récupération du groupe de mise à l'échelle.

Valeurs valides :

  • recycle : Les instances sont arrêtées.

  • release : Les instances sont libérées.

ScalingPolicy définit le mode de récupération. Le comportement de suppression réel est déterminé par le paramètre RemovePolicy de RemoveInstances.

SpotInstanceRemedy

Boolean

Non

Oui

Active les instances Spot supplémentaires.

Valeurs valides :

  • true : Active les instances Spot supplémentaires.

    Lorsque cette option est activée, le groupe de mise à l'échelle crée une instance de remplacement lorsqu'une instance Spot est sur le point d'être récupérée.

  • false : Désactive les instances Spot supplémentaires.

SpotInstancePools

Integer

Non

Oui

Le nombre de types d'instances disponibles.

Le groupe de mise à l'échelle équilibre les instances Spot entre les types d'instances les moins coûteux.

Valeurs valides : 1 à 10.

OnDemandBaseCapacity

Integer

Non

Oui

Le nombre minimal d'instances à la demande requis par le groupe de mise à l'échelle.

Valeurs valides : 0 à 1000.

Le système privilégie la création d'instances à la demande lorsque le nombre est inférieur à cette valeur.

GroupType

String

Non

Non

Le type d'instances gérées par le groupe de mise à l'échelle.

Valeurs valides :

  • ECS (par défaut) : Le groupe de mise à l'échelle gère des instances ECS.

  • ECI : Le groupe de mise à l'échelle gère des instances ECI.

LaunchTemplateOverrides

List

Non

Oui

Les substitutions de type d'instance qui étendent le modèle de lancement.

Aucune

AllocationStrategy

String

Non

Oui

La politique d'allocation de capacité.

Détermine comment le groupe de mise à l'échelle sélectionne les types d'instance pour répondre aux exigences de capacité. S'applique à la fois à la capacité à la demande et préemptible. Effectif uniquement lorsque MultiAZPolicy est défini sur COMPOSABLE.

Valeurs valides :

  • priority (par défaut) : Crée les instances dans l'ordre des types d'instance configurés.

  • lowestPrice : Crée les instances par ordre croissant du prix unitaire par vCPU des types d'instance.

AzBalance

Boolean

Non

Oui

Répartit uniformément la capacité du groupe de mise à l'échelle sur plusieurs zones.

Effectif uniquement lorsque MultiAZPolicy est défini sur COMPOSABLE.

Valeurs valides :

  • true : La capacité du groupe de mise à l'échelle est répartie uniformément sur plusieurs zones.

  • false (par défaut) : La capacité du groupe de mise à l'échelle n'est pas répartie uniformément sur plusieurs zones.

MaxInstanceLifetime

Integer

Non

Oui

La durée de vie maximale d'une instance dans le groupe de mise à l'échelle.

Unité : secondes.

Valeurs valides : 86 400 à Integer.maxValue.

Valeur par défaut : null.

CustomPolicyARN

String

Non

Oui

L'ARN de la fonction de politique de réduction personnalisée.

Ce paramètre est effectif uniquement lorsque la première stratégie de suppression dans RemovalPolicies est définie sur CustomPolicy.

SpotAllocationStrategy

String

Non

Oui

La politique d'allocation pour la capacité Spot.

Stratégie de distribution pour la capacité Spot. Effective uniquement lorsque MultiAZPolicy est défini sur COMPOSABLE.

Valeurs valides :

  • priority (par défaut) : Crée les instances dans l'ordre des types d'instance configurés.

  • lowestPrice : Crée les instances par ordre croissant du prix unitaire vCPU des types d'instance.

ServerGroups

List

Non

Non

Les configurations de groupe de serveurs Server Load Balancer.

Propriétés ServerGroups.

ResourceGroupId

String

Non

Oui

L'ID du groupe de ressources.

Aucune

Syntaxe ServerGroups

"ServerGroups": [
  {
    "Type": String,
    "ServerGroupId": String,
    "Weight": Number,
    "Port": Number
  }
]  

Propriétés ServerGroups

Nom de la propriété

Type

Obligatoire

Mise à jour possible

Description

Contraintes

Type

String

Oui

Non

Le type de groupe de serveurs Server Load Balancer.

Valeurs valides :

  • ALB : Application Load Balancer.

  • NLB : Network Load Balancer.

ServerGroupId

String

Oui

Non

L'ID du groupe de serveurs Server Load Balancer.

Aucune

Weight

Number

Oui

Non

Le poids de l'instance ECS ou ECI en tant que serveur backend.

Valeurs valides : 0 à 100.

Un poids plus élevé signifie que davantage de requêtes sont acheminées vers l'instance. Un poids de 0 signifie que l'instance ne reçoit aucune requête.

Port

Number

Oui

Non

Le numéro de port de l'instance ECS ou ECI backend.

Valeurs valides : 1 à 65 535.

Syntaxe NotificationConfigurations

"NotificationConfigurations": [
  {
    "NotificationArn": String,
    "NotificationTypes": List
  }
]  

Propriétés NotificationConfigurations

Nom de la propriété

Type

Obligatoire

Mise à jour possible

Description

Contraintes

NotificationArn

String

Oui

Non

Le destinataire de la notification pour les hooks de cycle de vie. Prend en charge les files d'attente ou les topics Simple Message Queue (anciennement MNS).

Valeurs valides :

  • Format de file d'attente SMQ : acs:ess:{region}:{account-id}:queue/{queuename}.

  • Format de topic SMQ : acs:ess:{region}:{account-id}:topic/{topicname}.

NotificationTypes

List

Oui

Non

Les types de notification pour les événements Auto Scaling et les modifications de ressources.

Aucune

Syntaxe Tags

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Propriétés Tags

Nom de la propriété

Type

Obligatoire

Mise à jour possible

Description

Contraintes

Key

String

Oui

Non

La clé du tag.

La clé doit comporter entre 1 et 128 caractères. Elle ne peut pas commencer par aliyun ni par acs: et ne peut pas contenir http:// ni https://.

Value

String

Non

Non

La valeur du tag.

La valeur peut comporter entre 0 et 128 caractères. Elle ne peut pas commencer par aliyun ni par acs: et ne peut pas contenir http:// ni https://.

Syntaxe LaunchTemplateOverrides

"LaunchTemplateOverrides": [
  {
    "InstanceType": String,
    "WeightedCapacity": Integer,
    "SpotPriceLimit": Number
  }
]  

Propriétés LaunchTemplateOverrides

Nom de la propriété

Type

Obligatoire

Mise à jour possible

Description

Contraintes

InstanceType

String

Non

Oui

Le type d'instance ECS.

Pour effectuer une mise à l'échelle basée sur la capacité du type d'instance, spécifiez à la fois ce paramètre et LaunchTemplateOverrides.WeightedCapacity.

Remplace le type d'instance dans le modèle de lancement.

Remarque

Ce paramètre est effectif uniquement lorsqu'un modèle de lancement est spécifié par le paramètre LaunchTemplateId.

WeightedCapacity

Integer

Non

Oui

Le poids du type d'instance.

Pour effectuer une mise à l'échelle basée sur la capacité du type d'instance, spécifiez LaunchTemplateOverrides.InstanceType et ce paramètre.

Représente la capacité d'une seule instance de ce type. Un poids plus élevé signifie que moins d'instances sont nécessaires pour atteindre la capacité attendue.

Définissez les poids en fonction des métriques de performance telles que le nombre de vCPU et la taille de la mémoire.

Par exemple :

  • Capacité actuelle : 0.

  • Capacité attendue : 6.

  • Capacité de ecs.c5.xlarge : 4.

Pour atteindre la capacité attendue, le groupe de mise à l'échelle ajoutera deux instances ecs.c5.xlarge.

Valeurs valides : 1 à 500.

Remarque

Lors d'une montée en puissance, la capacité du groupe de mise à l'échelle ne peut pas dépasser MaxSize plus le poids maximal d'un seul type d'instance.

SpotPriceLimit

Number

Non

Oui

Le prix maximal pour une instance Spot.

Prix maximal pour une instance Spot du type spécifié par LaunchTemplateOverrides.InstanceType.

Remarque

Ce paramètre est effectif uniquement lorsqu'un modèle de lancement est spécifié par le paramètre LaunchTemplateId.

Valeur de retour

Fn::GetAtt

  • ScalingGroupId : L'ID du groupe de mise à l'échelle.

  • ScalingGroupName : Le nom du groupe de mise à l'échelle.

  • Arn : Le nom de ressource Alibaba Cloud (ARN).

Exemples

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VSwitch:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    Label:
      zh-cn: VSwitch ID
      en: VSwitch ID
  LaunchTemplateId:
    AssociationProperty: ALIYUN::ECS::LaunchTemplate::LaunchTemplateId
    Type: String
Resources:
  ScalingGroup:
    Type: ALIYUN::ESS::ScalingGroup
    Properties:
      VSwitchId:
        Ref: VSwitch
      LaunchTemplateId:
        Ref: LaunchTemplateId
      MaxSize: 3
      ScalingGroupName: TestScalingGroup
      MinSize: 0
Outputs:
  ScalingGroupId:
    Description: The ID of the scaling group.
    Value:
      Fn::GetAtt:
        - ScalingGroup
        - ScalingGroupId
  ScalingGroupName:
    Description: The name of the scaling group.
    Value:
      Fn::GetAtt:
        - ScalingGroup
        - ScalingGroupName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VSwitch": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "Type": "String",
      "Label": {
        "zh-cn": "VSwitch ID",
        "en": "VSwitch ID"
      }
    },
    "LaunchTemplateId":{
      "AssociationProperty":"ALIYUN::ECS::LaunchTemplate::LaunchTemplateId",
      "Type":"String"
    }
  },
  "Resources": {
    "ScalingGroup": {
      "Type": "ALIYUN::ESS::ScalingGroup",
      "Properties": {
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "LaunchTemplateId": {
          "Ref": "LaunchTemplateId"
        },
        "MaxSize": 3,
        "ScalingGroupName": "TestScalingGroup",
        "MinSize": 0
      }
    }
  },
  "Outputs": {
    "ScalingGroupId": {
      "Description": "The ID of the scaling group.",
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroup",
          "ScalingGroupId"
        ]
      }
    },
    "ScalingGroupName": {
      "Description": "The name of the scaling group.",
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroup",
          "ScalingGroupName"
        ]
      }
    }
  }
}

Lorsqu'un groupe de mise à l'échelle ne possède qu'une seule configuration de mise à l'échelle dépendant d'autres ressources, définissez DependsOn sur le groupe de mise à l'échelle pour créer la dépendance de ressource requise.

Dans cet exemple, ScalingGroup dépend de SecurityGroup car ScalingConfiguration en a besoin.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
Resources:
  ScalingGroupEnable:
    Type: ALIYUN::ESS::ScalingGroupEnable
    Properties:
      ScalingConfigurationId:
        Ref: ScalingConfiguration
      ScalingGroupId:
        Ref: ScalingGroup
      ScalingRuleArisExecuteVersion: 0
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupName:
        Ref: ALIYUN::StackName
      VpcId:
        Ref: VpcId
      SecurityGroupIngress:
        - PortRange: '-1/-1'
          Priority: 1
          SourceCidrIp: 0.0.X.X/0
          IpProtocol: all
          NicType: internet
      SecurityGroupEgress:
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: internet
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: intranet
  ScalingConfiguration:
    Type: ALIYUN::ESS::ScalingConfiguration
    DependsOn: ScalingGroup
    Properties:
      InstanceType: ecs.g6e.large
      ImageId: centos_7_04_64_20G_alibase_201701015.vhd
      SystemDiskCategory: cloud_essd
      SystemDiskSize: 100
      ScalingConfigurationName:
        Ref: ALIYUN::StackName
      ScalingGroupId:
        Ref: ScalingGroup
      SecurityGroupId:
        Ref: SecurityGroup
  ScalingGroup:
    Type: ALIYUN::ESS::ScalingGroup
    DependsOn: SecurityGroup
    Properties:
      MaxSize: 3
      MinSize: 0
      DefaultCooldown: 15
      VSwitchId:
        Ref: VSwitchId
Outputs: {}