Grupos gerenciados de instâncias regionais

Use um grupo gerenciado de instâncias (MIG, na sigla em inglês) regional para aumentar a resiliência da carga de trabalho baseada em MIG. Um MIG regional distribui as instâncias de máquina virtual (VM) em várias zonas de uma região, o que protege você contra casos extremos em que todas as instâncias de uma única zona falham.

Esta página contém informações conceituais sobre MIGs regionais:

Para saber como criar um MIG regional, consulte Como criar e gerenciar MIGs regionais.

Por que escolher grupos gerenciados de instâncias regionais?

O Google recomenda MIGs regionais em relação a MIGs zonais pelos seguintes motivos:

  • É possível usar MIGs regionais para gerenciar até 2.000 instâncias, o dobro em comparação aos MIGs zonais.
  • Use MIGs regionais para distribuir a carga do aplicativo por várias zonas, em vez de limitar o aplicativo a uma única zona ou gerenciar vários MIGs zonais em diferentes zonas.

O uso de várias zonas protege contra falhas zonais e situações imprevistas em que um grupo inteiro de instâncias em uma única zona não funciona. Nesse caso, o aplicativo continua a disponibilizar o tráfego a partir das instâncias em execução em outra zona da mesma região.

No caso de uma falha zonal, ou se um grupo de instâncias em uma zona parar de responder, um MIG regional continuará oferecendo suporte às suas instâncias da seguinte maneira:

  • O número de instâncias que fazem parte do MIG regional nas zonas restantes continua a disponibilizar o tráfego. Novas instâncias não serão adicionadas e nenhuma será redistribuída, a menos que você tenha configurado o escalonamento automático.

  • Depois que a zona com falha for recuperada, o MIG voltará a disponibilizar o tráfego dessa zona.

Para desenvolver aplicativos robustos e escalonáveis, use MIGs regionais.

Limitações

  • Com um MIG regional, é possível criar até 2.000 VMs em uma região, com um máximo de 1.000 VMs por zona. Com um MIG zonal, é possível criar até 1.000 VMs. Se precisar de mais, entre em contato com o suporte.
  • Ao atualizar um MIG, é possível especificar até 1.000 VMs em uma única solicitação.
  • Para um MIG com estado, analise as limitações desse tipo de MIG.

  • Para usar o balanceamento de carga com um MIG regional, as seguintes limitações se aplicam:

    • Não é possível usar o modo de balanceamento maxRate.
    • Se você usa um esquema de balanceamento de carga HTTP(S) com um MIG regional, é necessário escolher o modo de balanceamento maxRatePerInstance ou maxUtilization.
  • Para escalonar automaticamente um MIG regional, as seguintes limitações se aplicam:

    • Para aumentar e reduzir o escalonamento horizontal, é preciso ativar a redistribuição proativa de instâncias. Se você definir o modo do escalonador automático apenas para escalonamento horizontal, não será necessário ativar a distribuição proativa de instâncias.
    • Para fazer escalonamento automático de um MIG regional com base nas métricas do Cloud Monitoring, as seguintes limitações se aplicarão:

      • Não é possível usar métricas por grupo.
      • Não é possível aplicar filtros a métricas por instância.

Opções de configuração regionais

A criação de um MIG regional é semelhante à criação de um MIG zonal, exceto pelo fato de haver outras opções:

  • É possível selecionar as zonas dentro de uma região para criar as instâncias.
  • É possível escolher como distribuir instâncias nas zonas selecionadas.

Estas opções estão descritas abaixo.

Seleção de zona

A configuração padrão de um MIG regional é distribuir as VMs gerenciadas de maneira uniforme em três zonas. No entanto, talvez você queira selecionar as zonas específicas do seu aplicativo por vários motivos. Por exemplo, se você precisar de GPUs para suas instâncias, selecione apenas as zonas compatíveis com GPUs. Talvez você tenha discos permanentes disponíveis apenas em determinadas zonas ou comece com instâncias em apenas algumas zonas, e não em três zonas aleatórias em uma região.

Para escolher o número de zonas ou as zonas específicas em que o grupo é executado, faça isso ao criar o grupo. Após escolher as zonas específicas durante a criação, não será possível alterá-las ou atualizá-las mais tarde.

  • Para selecionar mais de três zonas dentro de uma região, especifique explicitamente as zonas individuais. Por exemplo, para selecionar as quatro zonas em uma região, você precisa fornecer todas elas explicitamente na sua solicitação. Se você não fizer isso, o Compute Engine selecionará três zonas por padrão.

  • Para selecionar até duas zonas em uma região, é preciso especificar explicitamente as zonas individuais. Mesmo que a região contenha apenas duas zonas, é necessário especificá-las claramente na solicitação.

Independentemente de você escolher zonas específicas ou selecionar a região e permitir que o Compute Engine crie instâncias em três zonas dentro da região, por padrão, as novas instâncias são distribuídas igualmente entre as zonas.

Para saber como criar MIGs regionais e selecionar zonas específicas, consulte Como criar um MIG regional.

Redistribuição proativa de instâncias

Por padrão, um MIG regional tenta manter uma distribuição uniforme de instâncias entre zonas na região para maximizar a disponibilidade do seu aplicativo no caso de uma falha no nível da zona.

Se você excluir ou abandonar instâncias do grupo, causando uma distribuição uniforme entre as zonas, o grupo redistribuirá as instâncias para restabelecer uma distribuição uniforme.

Para restabelecer uma distribuição uniforme entre zonas, o grupo exclui instâncias em zonas com mais instâncias e adiciona instâncias a zonas com menos instâncias. O grupo escolhe de forma automática quais instâncias excluir.

A redistribuição proativa restabelece a distribuição uniforme entre as zonas.
Exemplo de redistribuição proativa

Por exemplo, suponha que você tenha um MIG regional com 12 instâncias distribuídas por três zonas: a, b e c. Se você excluir três instâncias gerenciadas em c, o grupo tentará reequilibrar para que as instâncias sejam distribuídas uniformemente pelas zonas. Nesse caso, o grupo exclui duas instâncias (uma de a e outra de b) e cria duas na zona c, para que cada uma tenha três instâncias e a distribuição seja uniforme. Não há como determinar seletivamente quais instâncias são excluídas. O grupo perde a capacidade temporariamente enquanto as novas instâncias são iniciadas.

Para evitar a redistribuição automática das instâncias, é possível desativar a redistribuição proativa de instâncias.

Isso é útil quando é necessário:

  • Excluir ou abandonar instâncias do grupo sem afetar outras instâncias em execução. Por exemplo, é possível excluir uma instância de worker em lote após a conclusão do job sem afetar outros workers.
  • Proteger instâncias com cargas de trabalho com estado contra a exclusão automática indesejável devido à redistribuição proativa.
Desativar a redistribuição proativa pode afetar a capacidade durante uma falha de zona.
Distribuição não uniforme após desativar a redistribuição proativa

Se você desativar a redistribuição proativa de instâncias, um MIG não adicionará ou removerá instâncias de maneira proativa para conseguir equilíbrio. No entanto, ele ainda convergirá de forma oportuna para o equilíbrio durante o redimensionamento de operações, tratando cada operação de redimensionamento como uma oportunidade para equilibrar o grupo. Por exemplo, ao escalonar, o grupo usa automaticamente o redimensionamento como uma oportunidade para remover instâncias de zonas maiores. Ao escalonar horizontalmente, o grupo usa a oportunidade para adicionar instâncias a zonas menores.

Diferenças de comportamento de MIGs zonais

A principal diferença entre um MIG zonal e um MIG regional é que este último pode usar mais de uma zona.

Como as instâncias gerenciadas do MIG regional são distribuídas entre zonas em uma região, o comportamento dos seguintes recursos do MIG é um pouco diferente.

Como fazer o escalonamento automático de um MIG regional

O Compute Engine oferece escalonamento automático para MIGs, permitindo que os grupos automaticamente adicionem (escalonamento horizontal) ou removam (redução de escalonamento horizontal) instâncias com base em aumentos ou reduções de carga.

Se você ativar o escalonamento automático para um MIG regional, o recurso se comportará da seguinte maneira:

  • Uma política de escalonamento automático é aplicada ao grupo como um todo. Por exemplo, se você ativar o escalonador automático para 66% de utilização de CPU, ele rastreará todas as instâncias no grupo para manter uma utilização média de 66% em todas as instâncias de todas as zonas.

  • O escalonamento automático tenta distribuir as VMs de maneira uniforme pelas zonas disponíveis. Em geral, o escalonador automático mantém o tamanho das zonas equilibrado adicionando VMs a zonas com menos VMs e esperando que a carga seja redirecionada de zonas com mais VMs, por exemplo, por meio de um balanceador de carga. Não recomendamos configurar um balanceador de carga personalizado que dê preferência a uma zona, porque isso pode provocar um comportamento inesperado, como uma distribuição desigual de instâncias entre zonas ou instâncias não utilizadas em outras zonas.

  • Se seu fluxo de trabalho usa instâncias de maneira uniforme em três zonas e uma zona ou um grupo de instâncias falha, 1/3 da capacidade pode ser perdido, embora 2/3 permaneçam nas outras zonas. Recomendamos que você superprovisione seu MIG regional com escalonamento automático para evitar o sobrecarregamento dos servidores atuais enquanto uma zona é perdida.

  • Se certos recursos, como instâncias preemptivas, estiverem temporariamente indisponíveis em uma zona, o grupo continuará tentando criar essas instâncias nessa zona. Após os recursos ficarem disponíveis novamente, o grupo receberá o número desejado de instâncias em execução.

  • Se o balanceamento de carga estiver ativado e se os recursos estiverem indisponíveis em uma zona, causando uma maior utilização de recursos atuais nela, novas instâncias poderão ser criadas em zonas com menores taxas de utilização, o que pode resultar em uma distribuição temporária não uniforme.

O escalonador automático só adiciona instâncias a uma zona até 1/n do máximo especificado para cada grupo, em que n é o número de zonas provisionadas. Por exemplo, se você estiver usando o padrão de três zonas e se 15 for o maxNumReplicas configurado para escalonamento automático, o escalonador automático poderá adicionar até 1/3 * 15 = 5 instâncias por zona no grupo. Se uma zona falhar, o escalonador automático só escalonará horizontalmente para 2/3 do maxNumReplicas nas duas outras zonas combinadas.

Como provisionar a configuração do escalonador automático

Assim como na recomendação sobre como superprovisionar um MIG regional, superprovisione a configuração do escalonador automático regional do MIG. Supondo que seu grupo use três zonas, configure o escalonamento automático da seguinte maneira:

  • A meta de utilização do escalonamento automático é 2/3 da meta pretendida.
  • Para se ajustar à meta de utilização reduzida, o escalonador automático adiciona mais instâncias. Com isso, é necessário aumentar o valor de maxNumReplicas em 50% acima do número que seria definido sem considerar o provisionamento excessivo.

Por exemplo, caso queira que 20 instâncias gerenciem os picos de carga e que a meta de utilização seja de 80%, configure o escalonador automático da maneira a seguir:

  • 2/3 * 0,8 = 0,53 ou 53% como meta de utilização em vez de 80%
  • 3/2 * 20 = 30 para um número máximo de instâncias em vez de 20

Essa configuração ajuda a garantir que, em caso de falha em uma única zona, o MIG não fique sem capacidade, porque os outros 2/3 de instâncias serão capazes de lidar com o aumento da carga proveniente da zona off-line, já que você reduziu a meta de utilização para um valor bem abaixo da capacidade. No escalonador automático, as novas instâncias também são adicionadas até alcançar o número máximo especificado, de modo que a meta de utilização de 2/3 seja mantida.

No entanto, não é recomendável confiar apenas no provisionamento excessivo do MIG para processar o aumento de carga. Como prática recomendada, o Google recomenda a realização de testes de carga regulares nos seus aplicativos para garantir que você consiga administrar o aumento da utilização devido a uma falha de zona que remove 1/3 das instâncias.

Para mais informações sobre o escalonamento automático, consulte Visão geral do escalonamento automático.

Como atualizar um MIG regional

Para implantar um novo modelo em um MIG regional, consulte Como atualizar um MIG regional.

Para adicionar ou remover instâncias em um MIG, o processo será semelhante para os MIGs regionais e zonais. Consulte Como trabalhar com instâncias gerenciadas.

Se estiver interessado em configurar discos ou metadados com estado em um MIG, consulte Como configurar MIGs com estado.

Como ampliar a disponibilidade através do superprovisionamento

Diversos eventos podem fazer com que uma ou mais instâncias fiquem indisponíveis. É possível atenuar esse problema usando vários serviços do Google Cloud:

  • Use um MIG regional para distribuir seu aplicativo em várias zonas.
  • Use a recuperação automática baseada em aplicativos para recriar instâncias com aplicativos com falha.
  • Use o balanceamento de carga para desviar automaticamente o tráfego do usuário das instâncias indisponíveis.

No entanto, mesmo se você usar esses serviços, os usuários ainda poderão ter problemas se houver muitas instâncias indisponíveis ao mesmo tempo.

Para se preparar para o caso extremo em que uma zona falha ou um grupo inteiro de instâncias para de responder, o Google recomenda enfaticamente superprovisionar seu MIG. Dependendo das necessidades de seu aplicativo, aumentar o provisionamento do grupo impede que o sistema falhe completamente caso uma zona ou um grupo de instâncias pare de responder.

O Google faz recomendações de como aumentar o provisionamento com a prioridade de manter seu aplicativo disponível para os usuários. Essas recomendações incluem provisionar e pagar mais instâncias do que a quantidade diária necessária para o aplicativo. Baseie suas decisões de superprovisionamento nas necessidades do aplicativo e nas limitações de custo.

É possível definir o tamanho do MIG ao criá-lo, além de adicionar ou remover instâncias após a criação.

Como alternativa, é possível configurar um escalonador automático para superprovisionar automaticamente ao adicionar e remover instâncias do grupo com base na carga.

Como estimar o tamanho do grupo recomendado

Recomendamos provisionar instâncias o suficiente para que, caso todas as instâncias de qualquer zona fiquem indisponíveis, as instâncias restantes ainda atendam ao número mínimo necessário.

Use a tabela a seguir para determinar o tamanho mínimo recomendado para seu grupo:

Número de zonas Outras instâncias de VM Total de instâncias de VM recomendadas
2 +100% 200%
3 +50% 150%
4 +33% 133%

Como provisionar um MIG regional em três ou mais zonas

Quando você cria um MIG regional em uma região com pelo menos três zonas, o Google recomenda o superprovisionamento do seu grupo em pelo menos 50%. Por padrão, um MIG regional cria instâncias em três zonas. Distribuir instâncias em três zonas ajuda a preservar pelo menos 2/3 da capacidade de serviço, uma vez que as outras duas zonas da região podem continuar veiculando tráfego sem interrupção em uma única zona. Ao aumentar o superprovisionamento em 150%, você garantirá que, mesmo no caso de perda de 1/3 da capacidade, 100% do tráfego será aceito pelas outras zonas.

Por exemplo, se você precisar de 20 instâncias em seu MIG em três zonas, recomendamos pelo menos um adicional de 50% de instâncias. Nesse caso, 50% de 20 corresponde a 10 instâncias extras, totalizando 30 instâncias no grupo. Se você criar um MIG regional com tamanho de 30, o grupo distribuirá suas VMs nas três zonas da seguinte maneira:

Zona Número de instâncias de VM
zona-de-exemplo-1 10
zona-de-exemplo-2 10
zona-de-exemplo-3 10

Se uma única zona falhar, você ainda terá 20 instâncias para atender ao tráfego.

Como provisionar um MIG regional em duas zonas

Para provisionar suas instâncias em duas zonas em vez de três, o Google recomenda dobrar o número de instâncias. Por exemplo, se você precisar de 20 instâncias para o serviço, distribuídas em duas zonas, recomendamos configurar um MIG regional com 40 instâncias para que cada zona fique com 20. Se uma única zona falhar, você ainda terá 20 instâncias para atender ao tráfego.

Zona Número de instâncias de VM
zona-de-exemplo-1 20
zona-de-exemplo-2 20

Se o número de instâncias em seu grupo não puder ser divisível facilmente em duas zonas, o Compute Engine dividirá uniformemente o grupo de VMs e colocará aleatoriamente as instâncias restantes em uma das zonas.

Como provisionar um MIG regional em uma zona

É possível criar um MIG regional com apenas uma zona. Isso é semelhante à criação de um MIG zonal.

A criação de um MIG regional de zona única não é recomendada porque oferece a garantia mínima para aplicativos altamente disponíveis. Se a zona falhar, todo o MIG estará indisponível, possivelmente causando transtornos aos usuários.

A seguir