Acelere a expansão com VMs suspensas e paradas


Este documento explica como funciona o conjunto de espera de instâncias de máquinas virtuais (VM) suspensas e paradas, e como pode usar o conjunto de espera para acelerar a expansão de um grupo de instâncias gerido (MIG).

Antes de começar

  • Reveja a página de introdução sobre as VMs suspensas e paradas num MIG.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    Terraform

    Para usar os exemplos do Terraform nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as credenciais predefinidas da aplicação com as suas credenciais de utilizador.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para mais informações, consulte Set up authentication for a local development environment.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud.

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Use a API MIG para a escala automática

Recomendamos que use o escalador automático do Compute Engine para criar uma escala automática do GIG. No entanto, se, por algum motivo, preferir usar um escalador automático diferente, use os pontos finais da API MIG para processar VMs suspensas e paradas.

Escolha entre pools suspensas e paradas

A escolha entre pools suspensos e parados depende do seu exemplo de utilização específico. Para ter o melhor desempenho, deve experimentar diferentes tipos de conjunto de espera para os seus cenários de expansão, de modo a determinar qual se adequa melhor às suas necessidades. Diferentes cargas de trabalho podem mostrar um tempo de publicação mais curto com diferentes opções. Em alguns casos, a operação de cópia do estado da memória do armazenamento para a VM pode demorar mais tempo do que reiniciar a VM ou criar uma nova VM a partir do zero.

Para encontrar a melhor abordagem, comece por seguir estas diretrizes:

  • Use VMs suspensas se as suas VMs exigirem uma inicialização de memória demorada, porque as VMs suspensas preservam o estado da memória. Certifique-se de que a sua aplicação pode ser suspensa e retomada. Manter o estado da memória requer armazenamento adicional e pode incorrer em custos adicionais.
  • Use VMs paradas se a inicialização da VM se focar principalmente na inicialização de dados armazenados nos discos persistentes.

Edite a política de espera num MIG

Esta secção descreve como definir o modo de banco de espera para dimensionar o banco e o atraso inicial.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome do grupo de instâncias que quer editar.

  3. Clique em Editar para modificar este grupo de instâncias gerido.

  4. Clique em Opções avançadas para expandir a secção.

  5. Na secção Conjunto de espera, selecione Aumentar escala.

  6. No campo Atraso inicial, introduza o número de segundos que o MIG deve aguardar antes de suspender ou parar uma VM. O atraso inicial dá ao script de inicialização o tempo necessário para preparar a VM para o escalamento horizontal rápido.

  7. Clique em Guardar.

gcloud

Use o instance-groups managed update comando e especifique o modo de funcionamento e o atraso inicial.

gcloud compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

Substitua o seguinte:

  • MIG_NAME: o nome do MIG.
  • DELAY: o número de segundos que o MIG deve aguardar antes de suspender ou parar uma VM. O atraso inicial dá ao script de inicialização tempo para preparar a VM para um aumento rápido da escala.
  • REGION: para um GIG regional, a região onde o GIG está localizado.
  • ZONE: para um GIG zonal, a zona onde o GIG está localizado.

Terraform

O exemplo seguinte cria um GIG zonal com uma política de espera. Use o bloco standby_policy para definir um atraso inicial e definir o modo como SCALE_OUT_POOL.

O exemplo usa o google_compute_instance_group_managerrecurso. Para um MIG regional, use o google_compute_region_instance_group_manager recurso.

resource "google_compute_instance_group_manager" "default" {
  name               = "standby-mig"
  base_instance_name = "test"
  target_size        = 3
  zone               = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

REST

Use o método instanceGroupManager.patch e especifique o modo de operação e o atraso inicial no corpo do pedido. Para GIGs regionais, use o método regionInstanceGroupManager.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • ZONE: para um MIG zonal, a zona onde o MIG está localizado.
    • Para um MIG regional, substitua zones/ZONE por regions/REGION e especifique a região do MIG.
  • MIG_NAME: o nome do MIG.
  • DELAY: o número de segundos que o MIG deve aguardar antes de suspender ou parar uma VM. O atraso inicial dá ao script de inicialização tempo para preparar a VM para um aumento rápido da escala.

Redimensione o conjunto de espera num MIG

Esta secção descreve como redimensionar os conjuntos de reserva de VMs suspensas e paradas num MIG.

Consola

  1. Na Google Cloud consola, aceda à página Grupos de instâncias.

    Aceda a Grupos de instâncias

  2. Clique no nome do grupo de instâncias que quer editar.

  3. Clique em Editar para modificar este grupo de instâncias gerido.

  4. Clique em Opções avançadas para expandir a secção.

  5. Na secção Conjunto de reserva, introduza os novos tamanhos nos campos VMs suspensas e VMs paradas.

  6. Clique em Guardar.

gcloud

Use o comando instance-groups managed update com as flags --suspended-size e --stopped-size.

gcloud compute instance-groups managed update MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

Substitua o seguinte:

  • MIG_NAME: o nome do MIG no qual suspender uma instância.
  • SUSPENDED_SIZE: o número de VMs suspensas que o GIG deve manter em qualquer altura.
  • STOPPED_SIZE: o número de VMs paradas que o MIG deve manter em qualquer altura.
  • REGION: para um GIG regional, a região onde o GIG está localizado.
  • ZONE: para um GIG zonal, a zona onde o GIG está localizado.

Terraform

O exemplo seguinte cria um MIG zonal com tamanhos de destino para VMs suspensas e paradas. Para definir os tamanhos de destino, use os argumentos target_suspended_size e target_stopped_size.

O exemplo usa o google_compute_instance_group_managerrecurso. Para um MIG regional, use o google_compute_region_instance_group_manager recurso.

resource "google_compute_instance_group_manager" "default" {
  name                  = "standby-mig"
  base_instance_name    = "test"
  target_size           = 1
  target_suspended_size = 1
  target_stopped_size   = 2
  zone                  = "us-central1-f"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  standby_policy {
    initial_delay_sec = 50
    mode              = "SCALE_OUT_POOL"
  }
}

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

REST

Use o instanceGroupManager.patch método e especifique os tamanhos dos conjuntos de VMs suspensas e paradas no corpo do pedido. Para GIGs regionais, use o método regionInstanceGroupManager.patch.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

Substitua o seguinte:

  • PROJECT_ID: o ID do seu projeto.
  • ZONE: para um GIG zonal, a zona onde o GIG está localizado.
    • Para um MIG regional, substitua zones/ZONE por regions/REGION e especifique a região do MIG.
  • MIG_NAME: o nome do MIG no qual parar uma instância.
  • SUSPENDED_SIZE: o número de VMs suspensas que o GIG deve manter em qualquer altura.
  • STOPPED_SIZE: o número de VMs paradas que o MIG deve manter em qualquer altura.

O que se segue?