Sobre MIGs regionais


Um grupo de instâncias gerenciadas (MIG, na sigla em inglês) que distribui VMs em várias zonas em uma região também é conhecido como MIG regional. Um MIG confinado a uma única zona também é conhecido como MIG zonal.

É possível usar um MIG regional para aumentar a resiliência da carga de trabalho baseada em MIG. A distribuição da carga de trabalho por várias zonas em uma região ajuda a proteger 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 um MIG em várias zonas.

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. Se precisar de mais, aumente ainda mais o limite de tamanho de um MIG regional para 4.000 instâncias.
  • 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.

Opções de configuração adicionais para MIGs regionais

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

Essas opções são descritas nas seções a seguir.

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 na configuração do MIG, defina o formato de distribuição de destino do MIG como BALANCED, ANY ou ANY_SINGLE_ZONE 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. 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. Caso contrário, 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 as selecione 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 (padrão): o grupo cria e exclui VMs para atingir e manter o mesmo número de VMs nas zonas selecionadas. Em uma distribuição EVEN, o número de VMs não difere mais de uma entre duas zonas. Recomendado para cargas de trabalho de exibição altamente disponível.
  • BALANCED: o grupo prioriza a criação de VMs em zonas onde os recursos estiverem disponíveis e distribui as VMs da maneira mais uniforme possível entre as zonas selecionadas para minimizar o impacto da falha zonal. Recomendado para cargas de trabalho em lote ou de exibição altamente disponíveis.
  • ANY: 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.
  • ANY SINGLE ZONE (visualização): o grupo cria todas as instâncias de VM em uma única zona. A zona é escolhida com base no suporte de hardware, na disponibilidade atual de recursos e cotas e nas reservas correspondentes. Recomendado em combinação com uma política de posicionamento de instância compacta para cargas de trabalho que exigem comunicação extensa entre as VMs.

Ao criar seu MIG, se você definir a forma dele como BALANCED, ANY ou ANY_SINGLE_ZONE, não será necessário verificar manualmente quais zonas oferecem suporte ao hardware especificado. na configuração do MIG. É possível selecionar todas as zonas em uma região e, com o formato definido como BALANCED, ANY ou ANY_SINGLE_ZONE, 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 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.
  • Defina o formato de distribuição de destino do MIG como BALANCED ou ANY_SINGLE_ZONE.
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) VMs 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:

  • O escalonador automático decide em qual zona criar as VMs com base no maior sinal de escalonamento automático de cada zona. Por exemplo, se você escalonar com base na utilização da CPU, o escalonador automático criará mais VMs nas zonas com maior utilização.

  • Se as zonas tiverem valores de sinal diferentes, o escalonamento automático poderá criar uma distribuição desigual de VMs. Nesses casos, o escalonador automático tenta equilibrar a carga entre as zonas criando mais VMs em zonas com menos VMs. Depois que as zonas com VMs adicionais assumirem a carga, o número de VMs entre elas precisa ser equilibrado.

  • Se o valor do sinal em uma zona acionar um escalonamento horizontal, mas o valor geral do sinal no MIG regional não exigir uma VM extra ou exigir uma VM adicional em uma zona diferente, o escalonador automático poderá adicionar uma VM e, depois, excluí-la imediatamente de uma das zonas.

  • Quando um sinal de escalonamento automático se aplica a um MIG regional como um todo, como programações de escalonamento ou algumas métricas de monitoramento, o escalonador automático distribui VMs entre as zonas da maneira mais uniforme possível.

  • Com o formato de distribuição de destino definido como BALANCED, o escalonador automático está ciente da disponibilidade de recursos entre as zonas. O escalonador automático cria proativamente VMs apenas em zonas com cota e capacidade suficientes para VMs, conforme especificado na configuração do MIG.

Como atualizar um MIG regional

Não é possível alterar ou atualizar as zonas de um MIG regional depois que o grupo é criado. Mas é possível definir o formato de distribuição de destino do grupo para priorizar o uso de zonas diferentes, por exemplo, se você tiver recursos reservados ou precisar de hardware que não esteja disponível em todos zonas.

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 Adicionar e remover VMs em um MIG.

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.

É possível configurar um escalonador automático para adicionar e remover instâncias do grupo automaticamente 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