Todos os produtos
Search
Central de documentação

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

Última atualização: Aug 20, 2026

Chame a operação CreateAutoProvisioningGroup para criar instâncias ECS com pagamento conforme o uso em lote, abrangendo múltiplas zonas, tipos de instância e métodos de faturamento.

Contexto

A operação RunInstances é a API mais comum para criar instâncias ECS com pagamento conforme o uso. Uma única chamada à RunInstances cria até 100 instâncias. No entanto, usar a RunInstances para provisionar mais de 100 instâncias em ambiente de produção pode gerar gargalos. Consulte Problemas ao criar instâncias com RunInstances.

Nota

Se você já conhece os gargalos da RunInstances na criação em lote, pule a seção Problemas ao criar instâncias com RunInstances.

O Alibaba Cloud oferece grupos de provisionamento automático para a criação de instâncias em grande escala. Ao chamar a CreateAutoProvisioningGroup, você implanta um cluster de instâncias em diferentes métodos de faturamento, zonas e tipos de instância em uma única ação. Em comparação com a RunInstances, a CreateAutoProvisioningGroup atende melhor aos cenários que exigem um grande volume de instâncias ECS. Consulte Comparação entre RunInstances e CreateAutoProvisioningGroup e Vantagens dos grupos de provisionamento automático.

Comparação entre RunInstances e CreateAutoProvisioningGroup

A tabela a seguir compara as operações de API RunInstances e CreateAutoProvisioningGroup para ajudar na escolha do método adequado.

Item

RunInstances

CreateAutoProvisioningGroup

Máximo de instâncias por lote

100

1.000 (até 10.000 vCPUs)

Método de entrega de capacidade

Contagem de instâncias

Número de instâncias, núcleos de vCPU, pesos de tipo de instância, entre outros.

Suporte a múltiplas zonas

Não

Sim

Suporte a múltiplos tipos de instância

Não

Sim

Suporte a múltiplos tipos de disco

Não

Sim

Políticas de criação de instâncias

Não

Sim. As seguintes políticas estão disponíveis:

  • Instâncias com pagamento conforme o uso

    • Otimização de custos: cria as instâncias de menor custo entre os tipos especificados.

    • Baseada em prioridade: cria instâncias seguindo a ordem de prioridade dos tipos definidos.

  • Instâncias spot

    • Otimização de custos: cria as instâncias de menor custo entre os tipos especificados.

    • Distribuição balanceada: distribui as instâncias uniformemente pelas zonas indicadas.

    • Distribuição otimizada por capacidade: cria instâncias nos tipos e zonas ideais com base no estoque de instâncias spot.

Estabilidade da entrega

Altamente afetada pelo estoque de recursos

O uso de múltiplas zonas e tipos de instância reduz o impacto do estoque

Formato de resposta da API

Síncrono

Síncrono

Exemplos de cenários de migração da RunInstances para a CreateAutoProvisioningGroup:

  • Se você usava a RunInstances para criar instâncias de um único tipo em uma zona, mude para a CreateAutoProvisioningGroup e configure combinações de múltiplos tipos de instância e zonas.

  • Caso usasse um plano de implantação manual com a RunInstances, adote a CreateAutoProvisioningGroup para implantar com um clique em várias zonas, tipos de instância e configurações de disco, aproveitando as políticas de criação integradas.

    Por exemplo, se antes você percorria diversos tipos de instância e zonas com a RunInstances para aumentar a taxa de sucesso na criação, a CreateAutoProvisioningGroup faz isso automaticamente: basta configurar as combinações, selecionar uma política e o grupo criará as instâncias.

Importante

Os grupos de provisionamento automático podem criar até 1.000 instâncias por vez. Se você definir o parâmetro WeightedCapacity para os tipos de instância, a capacidade ponderada total máxima por criação será de 10.000.

Problemas ao criar instâncias em lote com RunInstances

A operação RunInstances apresenta as limitações abaixo ao provisionar um grande número de instâncias.

Problema

Descrição

Solução

Capacidade de lote limitada

Uma única chamada à RunInstances cria no máximo 100 instâncias.

Execute a operação várias vezes em loop ou de forma concorrente.

Baixa estabilidade do lote

Como a RunInstances aceita apenas uma zona e um tipo de instância, a criação em lote pode falhar devido a:

  • Estoque insuficiente para o tipo de instância especificado.

  • Tipo de instância descontinuado.

  • Disponibilidade do tipo de instância restrita a certas zonas.

  • Exigência de tipos específicos de disco pelo tipo de instância.

  • A falta de estoque é a principal causa de falhas na criação em lote. Chame a DescribeAvailableResource para consultar o estoque de tipos de instância e zonas específicos. Após confirmar combinações válidas de zona e tipo com estoque suficiente, crie as instâncias em lote. Essa abordagem aumenta a estabilidade da entrega.

    Exemplo: depois de validar várias combinações, elabore uma estratégia de criação. Por exemplo, crie 100 instâncias sequencialmente por combinação. Se a primeira suportar apenas 50 instâncias, use a segunda combinação para as 50 restantes.

  • Os tipos de instância têm limites de uso. Consulte a DescribeAvailableResource para verificar esses limites e elaborar um plano de tolerância a falhas.

    Nota

    Também é possível verificar os limites de tipo de instância em Famílias de instâncias.

    Exemplo: o tipo ecs.g6e.large aceita apenas discos ESSD, mas a zona cn-beijing-x não oferece suporte a ESSD.

Política de criação muito simples

A RunInstances suporta somente uma zona e um tipo de instância. Implementar recuperação de desastres multizona ou criação pelo menor custo exige um plano de implantação personalizado, o que traz os seguintes problemas:

  • Alto custo de desenvolvimento. O plano precisa gerenciar estoque insuficiente, otimizar custos de instâncias spot durante o scale-out, entre outras tarefas.

  • Baixa estabilidade. Desenvolver e testar por conta própria um plano de implantação profissional para recursos do Alibaba Cloud gera riscos em produção.

Resolva os problemas internamente ou entre em contato com o Alibaba Cloud para obter assistência.

Vantagens dos grupos de provisionamento automático

Os grupos de provisionamento automático superam as limitações da RunInstances ao permitir a implantação com um clique em diferentes métodos de faturamento, zonas e tipos de instância. Eles garantem poder computacional estável, reduzem os riscos de devolução de instâncias spot e eliminam a necessidade de criação manual repetitiva.

Vantagem

Descrição

Limite maior por lote

Até 1.000 instâncias por lote.

Múltiplas zonas, tipos de instância e tipos de disco

Configure até 10 combinações de tipo de instância ou zona e até 5 tipos de disco para garantir alta disponibilidade na criação em lote.

Exemplo:

Com a política de distribuição balanceada, as instâncias são distribuídas uniformemente entre as zonas. Se a criação falhar em uma zona, o grupo provisiona as instâncias pendentes nas demais zonas disponíveis.

Ao especificar vários tipos de disco, o grupo os utiliza por ordem de prioridade. Caso um tipo fique indisponível, ele alterna automaticamente para o próximo.

Nota

Se todos os tipos de disco especificados estiverem indisponíveis, o grupo mudará para outro método de criação.

Diversas políticas de criação

Políticas de criação disponíveis:

  • Instâncias com pagamento conforme o uso

    • Otimização de custos: cria as instâncias de menor custo entre os tipos especificados.

    • Baseada em prioridade: cria instâncias seguindo a ordem de prioridade dos tipos definidos.

  • Instâncias spot

    • Otimização de custos: cria as instâncias de menor custo entre os tipos especificados.

    • Distribuição balanceada: distribui as instâncias uniformemente pelas zonas indicadas.

    • Distribuição otimizada por capacidade: cria instâncias nos tipos e zonas ideais com base no estoque de instâncias spot.

Maior disponibilidade de instâncias spot

As instâncias spot oferecem preços baixos, mas estão sujeitas a flutuações de preço e devoluções. Os grupos de provisionamento automático aumentam a disponibilidade dessas instâncias mantendo os custos reduzidos:

  • A política padrão de otimização de custos cria instâncias em ordem crescente de preço.

  • Os estoques das diferentes combinações de tipo de instância spot e zona são isolados. Usar múltiplas combinações diminui a probabilidade de esgotamento total do estoque.

  • Configure vários tipos alternativos de disco para que o grupo selecione automaticamente os adequados durante a criação.

  • Defina o parâmetro SpotInstancePoolsToUseCount para distribuir as instâncias spot entre vários pools de menor preço, evitando perda de poder computacional caso um tipo seja devolvido.

Práticas recomendadas para CreateAutoProvisioningGroup

O exemplo de código Java a seguir demonstra como chamar a operação CreateAutoProvisioningGroup.

  1. Instale o SDK do ECS para Java e a biblioteca principal do Alibaba Cloud.

  2. Chame a operação CreateAutoProvisioningGroup usando Java.

    Exemplo de código:

    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()));
        }
    }

    Exemplo de resposta 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"
    }

    Com a CreateAutoProvisioningGroup, você define os parâmetros de criação em lote e o grupo gerencia o processo de criação com base no melhor esforço.

    Nota

    A entrega de melhor esforço significa que, se algumas combinações de recursos não conseguirem criar instâncias, o grupo alternará automaticamente para outras combinações disponíveis. Esse processo leva tempo e o resultado real pode diferir ligeiramente da política especificada.