Todos os produtos
Search
Central de documentação

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

Última atualização: Jul 03, 2026

Chame a operação CreateAutoProvisioningGroup para criar instâncias ECS no modelo 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 no modelo 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 para criação em lote, pule a seção Problemas ao criar instâncias com RunInstances.

A Alibaba Cloud oferece grupos de provisionamento automático para criar instâncias em grande escala. Ao chamar a operação CreateAutoProvisioningGroup, implante 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 grande volume de instâncias ECS. Consulte Comparação entre RunInstances e CreateAutoProvisioningGroup e Benefícios 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 mais 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 no modelo 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 conforme a prioridade definida para cada tipo de instância.

  • 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 especificadas.

    • Distribuição otimizada por capacidade: cria instâncias usando os 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, migre 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, selecione 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 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 da RunInstances na criação em lote

A operação RunInstances apresenta as limitações abaixo ao criar grande volume 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 múltiplas vezes em loop ou de forma concorrente.

Baixa estabilidade do lote

A RunInstances aceita apenas uma única zona e um tipo de instância, o que pode causar falhas na criação em lote 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 operação DescribeAvailableResource para consultar o estoque de tipos de instância e zonas específicas. Após confirmar combinações válidas de zona e tipo de instância 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. Chame a operação DescribeAvailableResource para verificar esses limites e elaborar um plano de tolerância a falhas.

    Nota

    Também é possível consultar os limites de tipos 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 apenas uma zona e um tipo de instância. Implementar recuperação de desastres multizona ou criação com menor custo exige um plano de implantação personalizado, o que traz os seguintes problemas:

  • Alto custo de desenvolvimento. O plano precisa lidar com estoque insuficiente, otimização de custos para instâncias spot durante o scale-out, entre outros fatores.

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

Resolva os problemas por conta própria ou entre em contato com a Alibaba Cloud para obter suporte.

Benefícios dos grupos de provisionamento automático

Os grupos de provisionamento automático superam as limitações da RunInstances ao permitir 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ções manuais repetitivas.

Benefício

Descrição

Limite maior para lotes

Até 1.000 instâncias por lote.

Suporte a 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 especifique múltiplos tipos de disco, o grupo os utiliza seguindo a ordem de prioridade. Caso um tipo esteja 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 no modelo 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 conforme a prioridade definida para cada tipo de instância.

  • 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 especificadas.

    • Distribuição otimizada por capacidade: cria instâncias usando os 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 da 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 operação CreateAutoProvisioningGroup, defina os parâmetros de criação em lote e o grupo gerenciará o processo de criação com base no melhor esforço.

    Nota

    A entrega com 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 divergir levemente da política especificada.