Tous les produits
Search
Centre de documentation

Elastic Compute Service:Batch create ECS instances with auto provisioning group APIs

Dernière mise à jour :Aug 20, 2026

Appelez l'opération CreateAutoProvisioningGroup pour créer par lots des instances ECS en paiement à l'utilisation dans plusieurs zones, types d'instance et méthodes de facturation.

Contexte

L'opération API RunInstances est la plus couramment utilisée pour créer des instances ECS en paiement à l'utilisation. Un seul appel à RunInstances permet de créer jusqu'à 100 instances. Toutefois, l'utilisation de RunInstances pour créer plus de 100 instances dans un environnement de production peut engendrer des goulots d'étranglement. Consultez la section Problèmes liés à la création d'instances avec RunInstances.

Remarque

Si vous connaissez déjà les limitations de RunInstances pour la création par lots, ignorez la section Problèmes liés à la création d'instances avec RunInstances.

Alibaba Cloud propose des groupes de provisionnement automatique pour la création d'instances à grande échelle. Appelez l'opération CreateAutoProvisioningGroup afin de déployer un cluster d'instances en une seule action, couvrant différentes méthodes de facturation, zones et types d'instance. Par rapport à RunInstances, CreateAutoProvisioningGroup est mieux adapté aux scénarios nécessitant un grand nombre d'instances ECS. Consultez les sections Comparaison entre RunInstances et CreateAutoProvisioningGroup et Avantages des groupes de provisionnement automatique.

Comparaison entre RunInstances et CreateAutoProvisioningGroup

Le tableau suivant compare les opérations API RunInstances et CreateAutoProvisioningGroup pour vous aider à choisir la méthode appropriée.

Élément

RunInstances

CreateAutoProvisioningGroup

Nombre maximal d'instances par lot

100

1 000 (jusqu'à 10 000 vCPU)

Méthode de fourniture de capacité

Nombre d'instances

Nombre d'instances, cœurs vCPU, pondérations des types d'instance, etc.

Prise en charge multi-zones

Non

Oui

Prise en charge de plusieurs types d'instance

Non

Oui

Prise en charge de plusieurs types de disque

Non

Oui

Politiques de création d'instances

Non

Oui. Les politiques suivantes sont disponibles :

  • Instances en paiement à l'utilisation

    • Optimisation des coûts : crée les instances les moins chères parmi les types spécifiés.

    • Basé sur la priorité : crée les instances selon la priorité définie pour les types d'instance.

  • Instances Spot

    • Optimisation des coûts : crée les instances les moins chères parmi les types spécifiés.

    • Distribution équilibrée : répartit uniformément les instances dans les zones spécifiées.

    • Distribution optimisée pour la capacité : crée des instances à partir des types et zones optimaux en fonction de l'inventaire des instances Spot.

Stabilité de la fourniture

Fortement affectée par l'inventaire des ressources

L'utilisation de plusieurs zones et types d'instance réduit l'impact de l'inventaire

Format de réponse de l'API

Synchrone

Synchrone

Exemples de scénarios de migration de RunInstances vers CreateAutoProvisioningGroup :

  • Si vous utilisiez RunInstances pour créer des instances d'un seul type dans une seule zone, passez à CreateAutoProvisioningGroup et configurez plusieurs combinaisons de types d'instance et de zones.

  • Si vous utilisiez un plan de déploiement manuel avec RunInstances, adoptez CreateAutoProvisioningGroup pour un déploiement en un clic across les zones, les types d'instance et les configurations de disque, grâce aux politiques de création intégrées.

    Par exemple, si vous parcouriez précédemment plusieurs types d'instance et zones avec RunInstances pour améliorer les taux de réussite de création, CreateAutoProvisioningGroup gère cette opération automatiquement : configurez les combinaisons, sélectionnez une politique et le groupe crée les instances.

Important

Les groupes de provisionnement automatique peuvent créer jusqu'à 1 000 instances à la fois. Si vous spécifiez WeightedCapacity pour les types d'instance, la capacité pondérée totale maximale par création est de 10 000.

Problèmes liés à RunInstances pour la création par lots

L'opération RunInstances présente les limitations suivantes lors de la création d'un grand nombre d'instances.

Problème

Description

Solution

Capacité de lot limitée

Un seul appel à RunInstances permet de créer jusqu'à 100 instances.

Appelez l'opération plusieurs fois dans une boucle ou simultanément.

Stabilité insuffisante des lots

RunInstances ne prend en charge qu'une seule zone et un seul type d'instance, ce qui peut entraîner l'échec de la création par lots pour les raisons suivantes :

  • Inventaire insuffisant pour le type d'instance spécifié.

  • Le type d'instance est obsolète.

  • Le type d'instance n'est disponible que dans certaines zones.

  • Le type d'instance nécessite des types de disque spécifiques.

  • L'inventaire insuffisant est la principale cause d'échec de la création par lots. Appelez l'opération DescribeAvailableResource pour interroger l'inventaire des types d'instance et des zones spécifiques. Après avoir confirmé plusieurs combinaisons zone-type d'instance disposant d'un inventaire suffisant, créez les instances par lots. Cette approche améliore la stabilité de la fourniture.

    Exemple : après avoir confirmé plusieurs combinaisons valides, élaborez une stratégie de création. Par exemple, créez 100 instances séquentiellement par combinaison. Si la première combinaison ne prend en charge que 50 instances, utilisez la deuxième combinaison pour les 50 restantes.

  • Les types d'instance ont des limites d'utilisation. Appelez l'opération DescribeAvailableResource pour interroger les limites et élaborer un plan de tolérance aux pannes.

    Remarque

    Vous pouvez également vérifier les limites des types d'instance dans la section Families d'instances.

    Exemple : le type ecs.g6e.large prend uniquement en charge les disques ESSD, mais la zone cn-beijing-x ne prend pas en charge les disques ESSD.

Politique de création trop simple

RunInstances ne prend en charge qu'une seule zone et un seul type d'instance. La reprise après sinistre multi-zones ou la création au coût le plus bas nécessitent un plan de déploiement personnalisé, qui présente les problèmes suivants :

  • Coût de développement élevé. Le plan doit gérer l'inventaire insuffisant, l'optimisation des coûts pour les instances Spot lors du scale-out, etc.

  • Faible stabilité. La conception et le test d'un plan de déploiement professionnel pour les ressources Alibaba Cloud par vos propres moyens présentent des risques pour la production.

Résolvez les problèmes vous-même ou contactez Alibaba Cloud pour obtenir de l'aide.

Avantages des groupes de provisionnement automatique

Les groupes de provisionnement automatique pallient les limitations de RunInstances en permettant un déploiement en un clic across les méthodes de facturation, les zones et les types d'instance. Ils assurent une puissance de calcul stable, atténuent les risques de récupération des instances Spot et éliminent les créations manuelles répétitives.

Avantage

Description

Limite de lot plus élevée

Jusqu'à 1 000 instances par lot.

Plusieurs zones, types d'instance et types de disque

Configurez jusqu'à 10 combinaisons de types d'instance ou de zones et jusqu'à 5 types de disque pour une création par lots haute disponibilité.

Exemple :

Avec la politique de distribution équilibrée, les instances sont réparties uniformément dans les zones. Si la création échoue dans une zone, le groupe crée les instances en attente dans d'autres zones disponibles.

Lorsque plusieurs types de disque sont spécifiés, le groupe les utilise par ordre de priorité. Si un type n'est pas disponible, il bascule automatiquement vers le suivant.

Remarque

Si tous les types de disque spécifiés ne sont pas disponibles, le groupe bascule vers une autre méthode de création.

Plusieurs politiques de création

Politiques de création disponibles :

  • Instances en paiement à l'utilisation

    • Optimisation des coûts : crée les instances les moins chères parmi les types spécifiés.

    • Basé sur la priorité : crée les instances selon la priorité définie pour les types d'instance.

  • Instances Spot

    • Optimisation des coûts : crée les instances les moins chères parmi les types spécifiés.

    • Distribution équilibrée : répartit uniformément les instances dans les zones spécifiées.

    • Distribution optimisée pour la capacité : crée des instances à partir des types et zones optimaux en fonction de l'inventaire des instances Spot.

Disponibilité améliorée des instances Spot

Les instances Spot offrent des prix bas, mais sont soumises aux fluctuations de prix et aux récupérations. Les groupes de provisionnement automatique améliorent la disponibilité des instances Spot tout en maintenant des coûts faibles :

  • La politique d'optimisation des coûts par défaut crée les instances par ordre croissant de prix.

  • Les inventaires des différentes combinaisons type d'instance Spot/zone sont isolés. L'utilisation de plusieurs combinaisons réduit la probabilité d'épuisement total de l'inventaire.

  • Configurez plusieurs types de disque alternatifs afin que le groupe sélectionne automatiquement les types appropriés lors de la création.

  • Définissez SpotInstancePoolsToUseCount pour répartir les instances Spot sur plusieurs pools au prix le plus bas, évitant ainsi la perte de puissance de calcul si un type est récupéré.

Bonnes pratiques pour CreateAutoProvisioningGroup

L'exemple de code Java suivant montre comment appeler l'opération CreateAutoProvisioningGroup.

  1. Installez le SDK ECS pour Java et la bibliothèque principale Alibaba Cloud.

    Consultez la section Vue d'ensemble du SDK.

  2. Appelez l'opération CreateAutoProvisioningGroup avec Java.

    Exemple de code :

    import com.aliyun.ecs20140526.Client;
    import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupRequest;
    import com.aliyun.ecs20140526.models.CreateAutoProvisioningGroupResponse;
    import com.aliyun.teaopenapi.models.Config;
    import com.aliyun.teautil.models.RuntimeOptions;
    import com.google.gson.Gson;
    
    public class Test {
        public static void main(String[] args_) throws Exception {
            Config config = new Config()
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"))
                    .setEndpoint("ecs.cn-heyuan.aliyuncs.com");
            Client client = new Client(config);
    
            CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig launchTemplateConfig = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchTemplateConfig()
                    .setVSwitchId("vsw-f8zadqudz*********")
                    .setInstanceType("ecs.s6-c1m1.small")
                    .setWeightedCapacity(1.0);
    
            CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration launchConfiguration = new CreateAutoProvisioningGroupRequest.CreateAutoProvisioningGroupRequestLaunchConfiguration()
                    .setSecurityGroupId("sg-f8zf6vg51*********")
                    .setImageId("aliyun_3_x64_20G_alibase_20250629.vhd")
                    .setSystemDiskCategory("cloud_ssd")
                    .setSystemDiskSize(40);
            CreateAutoProvisioningGroupRequest createAutoProvisioningGroupRequest = new CreateAutoProvisioningGroupRequest()
                    .setAutoProvisioningGroupType("instant")
                    .setRegionId("cn-heyuan")
                    // Set the creation policy for spot instances.
                    .setSpotAllocationStrategy("lowest-price")
                    // Set the creation policy for pay-as-you-go instances.
                    .setPayAsYouGoAllocationStrategy("prioritized")
                    .setTotalTargetCapacity("5")
                    .setPayAsYouGoTargetCapacity("3")
                    .setSpotTargetCapacity("2")
                    .setLaunchConfiguration(launchConfiguration)
                    .setLaunchTemplateConfig(java.util.Arrays.asList(
                            launchTemplateConfig
                    ))
                    .setClientToken("0c593ea1-3bea******************");
            RuntimeOptions runtime = new RuntimeOptions();
            CreateAutoProvisioningGroupResponse response = client.createAutoProvisioningGroupWithOptions(createAutoProvisioningGroupRequest, runtime);
            System.out.println(new Gson().toJson(response.getBody()));
        }
    }

    Exemple de réponse JSON :

    {
        "autoProvisioningGroupId": "apg-**************",
        "launchResults": {
            "launchResult": [
                {
                    "amount": 0,
                    "errorCode": "NoInstanceStock",
                    "errorMsg": "The instanceTypes are out of usage",
                    "instanceType": "ecs.s6-c1m1.small",
                    "spotStrategy": "NoSpot",
                    "zoneId": "cn-heyuan-b"
                },
                {
                    "amount": 2,
                    "instanceIds": {
                        "instanceId": [
                            "i-f8z8**************icn5",
                            "i-f8z8**************icn6"
                        ]
                    },
                    "instanceType": "ecs.s6-c1m1.small",
                    "spotStrategy": "SpotAsPriceGo",
                    "zoneId": "cn-heyuan-b"
                }
            ]
        },
        "requestId": "CDA21119-7CFD-5B40-A2D0-******8"
    }

    Avec CreateAutoProvisioningGroup, vous configurez les paramètres de création par lots et le groupe gère le processus de création au mieux.

    Remarque

    La fourniture « au mieux » signifie que si certaines combinaisons de ressources ne permettent pas de créer des instances, le groupe bascule automatiquement vers d'autres combinaisons disponibles. Ce processus prend du temps et le résultat réel peut différer légèrement de la politique spécifiée.