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.

Este documento contém informações conceituais sobre os 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 você precisar de mais VMs, entre em contato com o suporte.
  • Ao atualizar um MIG, é possível especificar até 1.000 VMs em uma única solicitação.
  • Não é possível criar um MIG com várias sub-redes. Depois de criada, não é possível alterar a rede ou a sub-rede em um MIG.
  • Para um MIG com estado, analise as limitações desse tipo de MIG.

  • Ao criar o MIG regional, selecione as zonas que estão associadas a um MIG regional. Após escolher as zonas específicas durante a criação, não será possível alterá-las ou atualizá-las depois. No entanto, é possível definir o formato de distribuição de destino do MIG para especificar como o grupo distribui as instâncias gerenciadas nas zonas selecionadas.

  • Se você definir a forma de distribuição de destino do grupo como ANY ou como BALANCED, analise as limitações.+

  • 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:
    • Defina o formato de distribuição de destino do grupo como EVEN.
    • 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.

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

Por padrão, um MIG regional distribui as instâncias gerenciadas de maneira uniforme em três zonas. No entanto, talvez você queira selecionar zonas específicas do seu aplicativo por vários motivos. Por exemplo, se você precisar de GPUs para as instâncias, basta selecionar zonas compatíveis com os GPUs ou então ter discos permanentes ou reservas que estejam disponíveis somente em determinadas zonas.

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.

Se você quiser que o MIG use automaticamente as zonas compatíveis com o hardware especificado no modelo de instância do MIG, defina o formato de distribuição de destino do MIG como BALANCED ou ANY e selecione todas as zonas em uma região. O MIG verifica automaticamente a disponibilidade de recursos e programa instâncias apenas em zonas que tenham os recursos. Se você quiser priorizar o uso de reservas por zona, defina o formato como ANY. Para mais informações, consulte Formato de distribuição de destino.

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

O Google expande regularmente a infraestrutura disponibilizando hardware especializado em mais zonas. Um MIG regional verifica periodicamente a disponibilidade de hardware e inicia automaticamente o agendamento de instâncias nas zonas compatíveis com as máquinas necessárias. Se, por algum motivo, você não quiser executar as instâncias em algumas zonas, não selecione-as ao criar o grupo.

Para saber como criar um MIG regional e selecionar zonas, consulte Como criar um MIG regional.

Formato de distribuição de destino

Por padrão, um MIG regional distribui as respectivas instâncias gerenciadas de maneira uniforme nas zonas selecionadas. Entretanto, se você precisar de hardware que não esteja disponível em todas as zonas ou se precisar priorizar o uso de reservas zonais, talvez prefira uma distribuição diferente.

Para configurar como o MIG regional distribui as instâncias nas zonas selecionadas em uma região, defina o formato de distribuição de destino do MIG. As seguintes opções estão disponíveis:

  • EVEN (uniformemente, o padrão): o grupo programa a criação e a exclusão de instâncias de VM para alcançar e manter um número uniforme de instâncias gerenciadas nas zonas selecionadas. A distribuição é uniforme quando o número de instâncias gerenciadas entre duas zonas não é diferente do número de instâncias mais uma. Recomendado para cargas de trabalho de exibição altamente disponível.

  • BALANCED (equilibrado): o grupo prioriza a aquisição de recursos, programando VMs em zonas onde os recursos estiverem disponíveis, ao mesmo tempo em que distribui VMs da maneira mais uniforme possível entre as zonas selecionadas a fim de minimizar o impacto de falhas na zona. Recomendado para de cargas de trabalho em lote ou de exibição altamente disponíveis que não exijam escalonamento automático.

  • ANY (qualquer): o grupo escolhe as zonas para a criação de instâncias de VM que atendam ao número solicitado de VMs dentro das restrições atuais dos recursos e que maximizem a utilização de reservas da zona não utilizadas. Recomendado para cargas de trabalho em lote que não exijam alta disponibilidade.

Ao criar o MIG, se você definir o formato como BALANCED ou ANY, não precisará verificar manualmente quais zonas são compatíveis com o hardware especificado no modelo de instância do grupo. É possível selecionar todas as zonas em uma região e, com o formato definido comoBALANCED ou ANY, o MIG regional verifica a disponibilidade de recursos para você e programa instâncias somente em zonas que tenham os recursos.

Escolha uma opção com base nos requisitos de carga de trabalho e nos recursos de MIG que você precisa. Para saber mais, consulte a tabela de comparação e os casos de uso.

Para saber como configurar o formato de destino para um MIG novo ou atual, consulte Como definir uma política para distribuir instâncias entre zonas.

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 distribuições uniformes em 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 3 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 2 instâncias (uma de a e outra de b) e cria 2 na zona c, para que cada uma tenha 3 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.
  • Defina o formato de distribuição de destino do MIG como BALANCED.
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. Depois, a carga é redirecionada de zonas com mais VMs, por exemplo, usando 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 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 autoescalador 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 autoescalador

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 podem processar o aumento de carga da zona off-line (porque você reduziu a meta de destino para 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 indica a realização de testes de carga regulares nos seus aplicativos para garantir que você consiga administrar um eventual 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

Não é possível alterar o distributionPolicy de um grupo após a criação dele. Isso inclui alterar ou atualizar as zonas do grupo.

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:

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 provisionamento 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