Criando um balanceador de carga do aplicativo

É possível criar um IBM Cloud® Application Load Balancer for VPC (ALB) para distribuir o tráfego de entrada entre várias instâncias. Você pode usar o ALB com instâncias de servidor virtual, instâncias de servidor bare metal e outros dispositivos que tenham endereços IP acessíveis ao balanceador de carga, como instâncias do Power Systems™ Virtual Server conectadas por meio do IBM Cloud Direct Link.

Criação de um balanceador de carga de aplicativos no console

Para criar um ALB:

  1. No seu navegador, abra o console do IBM Cloud e faça login na sua conta.

  2. Selecione o ícone Menu do menu de navegação e clique no ícone VPC de infraestrutura > Rede > Balanceadores de carga.

  3. Na página “Equilibradores de carga para VPC”, clique em “Criar ”.

  4. No campo “Tipo de balanceador de carga”, selecione o bloco “Application Load Balancer (ALB) ”.

  5. Na seção “Localização”, edite o campo a seguir, se necessário.

    • Região: Indica a região onde você deseja o balanceador de carga criado.
  6. Na seção Detalhes, preencha as informações a seguir:

    • Nome: insira um nome para o balanceador de carga, como my-load-balancer.

    • Grupo de recursos: selecione um grupo de recursos para o balanceador de carga.

    • Tags: (Opcional) Adicione tags para ajudar a organizar e localizar seus recursos. É possível incluir mais tags posteriormente. Para obter mais informações, consulte Trabalhando com tags.

    • Tags de gerenciamento de acesso: (Opcional) Adicionar tags de gerenciamento de acesso a recursos para ajudar a organizar as relações de controle de acesso. O único formato suportado para as tags de gerenciamento de acesso é key:value. Para obter mais informações, consulte Controlando o acesso aos recursos usando tags.

    • ** Nuvem privada virtual**: selecione seu VPC.

    • Sub-redes: selecione as sub-redes nas quais criar seu balanceador de carga. Para maximizar a disponibilidade de seu aplicativo, selecione sub-redes em zonas diferentes.

      Não é possível atribuir mais de 15 sub-redes por ALB.

    • Tipo: selecione o tipo de balanceador de carga.

      • Um balanceador de carga público possui um endereço IP público, o que significa que ele pode encaminhar solicitações de clientes pela internet.
      • Um balanceador de carga privado possui um endereço IP privado, o que significa que ele só pode ser acessado por clientes internos na mesma região e na mesma VPC.
    • Tipo de DNS: Selecione “Público ” ou “Privado ”. As zonas DNS privadas só podem ser resolvidas em IBM Cloud e apenas a partir de redes explicitamente autorizadas em uma conta ou com acesso entre contas.

      Somente para o tipo Private, clique em Bind para inserir as informações da instância e da zona do DNS e, em seguida, clique em Bind.

  7. Na seção “Pools de back-end”, clique em “Criar” e especifique as seguintes informações para criar um pool de back-end. É possível criar um ou mais conjuntos.

    • Nome: insira um nome para o conjunto, tal como my-pool.
    • Protocolo do pool: Selecione o protocolo para suas instâncias neste pool. O protocolo do pool deve ser compatível com o protocolo do ouvinte. Para os ouvintes HTTP ou HTTPS, use HTTP como o protocolo do pool. Para ouvintes de TCP, use TCP como o protocolo do pool.
    • Permanência de sessão: selecione se todas as solicitações durante a sessão de um usuário são enviadas para a mesma instância.
    • Protocolo de proxy: Selecione “Desativado” (padrão), “Versão 1” ou “Versão 2” (versões do cabeçalho do protocolo de proxy). O protocolo de proxy anexa um cabeçalho de protocolo de proxy aos pacotes TCP, HTTP e HTTPS que são enviados ao pool de back-end. Essa configuração permite que os servidores de back-end obtenham as informações de IP e porta do cliente que o balanceador de carga define no cabeçalho do protocolo de proxy.
    • Método: selecione como você deseja que o balanceador de carga distribua o tráfego nas instâncias no conjunto:
      • Conexões mínimas: encaminhe solicitações para a instância com o número mínimo de conexões no momento atual.
      • Round-robin: encaminhe solicitações para cada instância sucessivamente. Todas as instâncias recebem aproximadamente um número igual de conexões do cliente.
      • Round-robin ponderado: encaminhe solicitações para cada instância na proporção de seu peso designado. Por exemplo, você tem as instâncias A, B e C, e seus pesos são configurados como 60, 60 e 30. As instâncias A e B recebem um número igual de conexões e a instância C recebe a metade do número de conexões.
    • Verificação de funcionamento: Configure como o balanceador de carga verifica o funcionamento das instâncias.
      • Caminho de verificação de funcionamento: O caminho de verificação de funcionamento será aplicável apenas se HTTP for selecionado como o protocolo de verificação de funcionamento. O caminho de verificação de funcionamento especifica a URL utilizada pelo balanceador de carga para enviar as solicitações de verificação de funcionamento HTTP para as instâncias no conjunto. Por padrão, as verificações de funcionamento são enviadas para o caminho raiz (/).
      • Protocolo de funcionamento: o protocolo usado pelo balanceador de carga para enviar mensagens de verificação de funcionamento para as instâncias do conjunto.
      • Porta de integridade (opcional): A porta pela qual serão enviadas as solicitações de verificação de integridade. Por padrão, as verificações de funcionamento são enviadas na mesma porta em que o tráfego é enviado para a instância.
      • Intervalo (seg.): Intervalo, em segundos, entre duas tentativas consecutivas de verificação de integridade. Por padrão, as verificações de funcionamento são enviadas a cada 5 segundos.
      • Tempo limite (seg): Tempo máximo que o sistema aguarda uma resposta a uma solicitação de verificação de integridade. Por padrão, o balanceador de carga aguarda 2 segundos por uma resposta.
      • Máximo de novas tentativas: número máximo de tentativas de verificação de funcionamento que o balanceador de carga faz antes que uma instância seja declarada não funcional. Por padrão, uma instância não é mais considerada funcional após duas verificações de funcionamento com falha.
  8. (Opcional) Selecione “Configurações da solicitação” para personalizar os valores da solicitação de verificação de integridade. Se nenhum valor for especificado, serão utilizadas as configurações padrão.

    • Método de solicitação: Escolha uma das seguintes opções: GET ou POST. É possível personalizar os cabeçalhos da solicitação para ambos os métodos. Opcionalmente, você pode personalizar o corpo da solicitação ao usar o método POST .
    • Corpo da solicitação: Inclua o corpo da solicitação HTTP a ser utilizado nas verificações de integridade. Se não for especificado, as solicitações de verificação de integridade não terão um corpo de solicitação.
    • Cabeçalho do host: Inclua o cabeçalho do host para garantir que a solicitação utilize o protocolo HTTP/1.1. Caso contrário, o sistema usa como padrão HTTP/1.0.
    • Adicionar outros cabeçalhos de solicitação: Adicione um ou mais cabeçalhos de solicitação adicionais.
    • Nome do cabeçalho : Para o método de solicitação GET , escolha uma das seguintes opções: content-type, ` `accept, authorization, ` `cookie, origin, ` `referrer ou user-agent. Para o método de solicitação ` `POST` `, escolha uma das seguintes opções: ` `content-type, content-length, ` `application-json ou accept-encoding``.
    • Valor: Insira o valor correspondente ao nome do cabeçalho especificado.

    No caso dos Balanceadores de Carga de Rede de Caminhos Privados (PPNLBs), há um problema conhecido em que os campos de solicitação e resposta do monitor de integridade não são retornados na resposta da API GET.

  9. (Opcional) Selecione “Configurações de resposta” para personalizar os valores de resposta da verificação de integridade. Se nenhum valor for especificado, serão utilizadas as configurações padrão.

    • Corpo da resposta: Insira o texto do corpo da resposta.

    • Código de resposta: É possível especificar vários valores separados por vírgulas dentro do intervalo de 100 a 599. Para especificar um intervalo, use XX. Por exemplo, 2XX para os números de 200 a 299.

      HTTP envia dados em texto simples, que podem ser interceptados e são considerados inseguros. Recomenda-se usar https em vez de http como protocolo. Para mais detalhes, consulte “Por que o site HTTP não é seguro? ”.

      Embora o balanceador de carga pare de enviar conexões para instâncias inoperantes, ele continua monitorando o funcionamento dessas instâncias e continuará seu uso se elas se tornarem funcionais novamente (ou seja, se elas passarem com sucesso por duas tentativas de verificação de funcionamento consecutivas).

      Se as instâncias no conjunto estiverem inoperantes e você achar que o seu aplicativo está sendo executado adequadamente, verifique novamente o protocolo de funcionamento e os valores do caminho de funcionamento. Além disso, verifique os grupos de segurança que estão anexados às instâncias para assegurar que as regras permitam tráfego entre o balanceador de carga e as instâncias.

  10. Clique em Criar para criar o conjunto de back-end.

    É possível anexar instâncias de servidor depois de criar seu conjunto de back-end.

  11. Para incluir uma instância do servidor no novo conjunto, clique em Conectar servidor na coluna Instâncias do servidor da tabela.

    • Para incluir dispositivos de VPC ao seu conjunto, como instâncias de servidor virtuais e servidores bare metal, selecione a guia Dispositivos de VPC. Especifique as informações a seguir para cada instância:

      • Selecione uma ou mais sub-redes nas quais selecionará uma instância.

      • Selecione uma instância. Se uma instância tiver múltiplas interfaces, certifique-se de selecionar o endereço IP correto.

      • Especifique a porta na qual o tráfego é enviado para a instância.

      • Se o seu conjunto usar o método Round-robin ponderado, designe um peso para cada instância.

        Atribuir o peso 0 a uma instância significa que nenhuma nova conexão é encaminhada para essa instância, mas qualquer tráfego existente continua a fluir enquanto a conexão atual está ativa. Usar um peso de 0 pode ajudar a desativar uma instância normalmente e removê-la da rotação de serviço.

      • Clique em Configurar porta e peso e, em seguida, especifique a porta em que o tráfego é enviado para a instância.

    • Para anexar outras instâncias do servidor ao seu conjunto de back-end, como os servidores contidos dentro de um IBM Power Systems Virtual Server, selecione a guia Outro e, em seguida, clique em Incluir mais. Especifique as informações a seguir para cada instância:

      • Especificar um endereço IP privado para o dispositivo.

      • Especifique a porta na qual o tráfego é enviado para a instância.

      • Se o seu conjunto usar o método Round-robin ponderado, designe um peso para cada instância.

        Atribuir o peso 0 a uma instância significa que nenhuma nova conexão é encaminhada para essa instância, mas qualquer tráfego existente continua a fluir enquanto a conexão atual está ativa. Usar um peso de 0 pode ajudar a desativar uma instância normalmente e removê-la da rotação de serviço.

    • Clique em Anexar para anexar a instância do servidor em seu conjunto de back-end.

  12. Na seção Listeners de front-end, clique em Criar listener e especifique as informações a seguir para criar um listerner. É possível criar um ou mais listeners.

    • Protocolo: o protocolo a ser usado para o recebimento de solicitações recebidas.
    • Protocolo de Proxy: Selecione se deseja permitir que o listener de front-end aceite o tráfego do protocolo de proxy.
    • Porta: a porta de recebimento na qual as solicitações são recebidas.
    • Conjunto de back-end: o conjunto de back-end padrão para o qual esse listener encaminha o tráfego.
    • Máximo de conexões (opcional): número máximo de conexões simultâneas que o listener permite.
    • Autorização do IAM: Se HTTPS for o protocolo selecionado para esse ouvinte, você deverá designar sua autorização de IAM, seja por instância ou por CRN.
    • Secrets Manager: Se HTTPS for o protocolo selecionado para esse ouvinte, você deverá selecionar ou criar um gerenciador de segredos.
    • Certificado SSL: se HTTPS é o protocolo selecionado para esse listener, deve-se selecionar um certificado SSL. Certifique-se de que o balanceador de carga esteja autorizado a acessar o certificado SSL.
    • Tempo limite (seg) (opcional): o tempo limite máximo após o qual o balanceador de carga fecha a conexão se nenhum dado tiver sido enviado ou recebido pelo tempo decorrido do período de tempo limite inativo. Os valores mínimo e máximo de tempo limite são 50 segundos e 2 horas. Esses valores são para o cliente e o servidor. Para aumentar o limite de tempo limite para mais de 2 horas, crie um caso de suporte fornecendo o requisito comercial para o valor de tempo limite necessário.
  13. Clique em Criar para criar o listener de front-end.

  14. Na seção Grupos de segurança, selecione os grupos de segurança que deseja anexar em seu balanceador de carga ou clique em Criar para criar um novo grupo de segurança para anexar ao seu ALB.

    Certifique-se de que o grupo de segurança permite o tráfego de balanceamento de carga (portas de listener, de back-end e de verificação de funcionamento). Ao não especificar um grupo de segurança, o grupo de segurança padrão da VPC é conectado como alternativa.

  15. Depois de concluir a criação de conjuntos e listeners, clique em Criar balanceador de carga.

  16. Para visualizar os detalhes de um balanceador de carga existente, clique no nome de seu balanceador de carga na página Balanceadores de carga.

  17. Opcionalmente, você pode criar um backup para qualquer um dos pools existentes. Isso permite que o pool de backup gerencie o tráfego se um membro falhar. Para isso, você deve criar uma política à prova de falhas:

    • Somente os balanceadores de carga de aplicativos permitem que você associe mais de um pool a um único ouvinte.

    • Certifique-se de que haja pelo menos um pool já existente no balanceador de carga.

      Um listener é o recurso principal em um balanceador de carga. Você pode associar pools a um ouvinte diretamente (definindo-o como default_pool) ou indiretamente (referenciando-o por meio do failsafe_policy.target de outro pool). O pool referenciado indiretamente já deve estar vinculado ao ouvinte.

    • Depois que o status do balanceador de carga mudar para Ativo, selecione a guia Pools de back-end.

    • Na página da lista de grupos, clique em “Editar” e, em seguida, forneça as seguintes informações:

      • Ação: Selecione avançar para configurar a política à prova de falhas. Isso encaminha o tráfego para um pool de backup quando os membros falham e torna a seção Target ativa.
      • Destino: Selecione um pool da lista de pools compatíveis como seu pool de backup.
  18. Se você deseja redirecionar o tráfego de um listener HTTP para um listener HTTPS, é possível criar um listener HTTP com configurações de redirecionamento HTTPS.

    As políticas de balanceamento de carga da Camada 7 sobrescrevem as configurações que você define aqui. Além disso, lembre-se de que é necessário que já exista um ouvinte HTTPS antes de criar um novo ouvinte HTTP com redirecionamento para HTTPS.

    Para fazer isso:

    • Após o status do balanceador de carga mudar para Ativo, clique na guia Listeners de front-end.
    • Na página da lista de listeners, clique em Criar e, em seguida, especifique as informações a seguir:
      • Protocolo: Selecione HTTP como o protocolo.
      • Porta: escolha a porta de escuta na qual as solicitações são recebidas.
      • Máximo de conexões (opcional): defina o número máximo de conexões simultâneas que o listener permite.
      • Redirecionamento HTTPS: clique no botão de alternância para ativar a configuração de redirecionamento HTTPS e, em seguida, especifique as configurações de redirecionamento HTTPS a seguir:
        • HTTPS listener: O listener de destino HTTPS para o qual o tráfego de entrada do listener HTTP atual é redirecionado. Observe que você só verá uma lista de ouvintes HTTPS cujo valor accept_proxy_protocol seja o mesmo do ouvinte HTTP.
        • URI de redirecionamento (opcional): a URL para a qual a solicitação é redirecionada.
        • Código de status: o código de status da resposta retornado pelo balanceador de carga.
  19. Para redirecionar, encaminhar ou rejeitar o tráfego recebido específico para um listener de front-end HTTP ou HTTPS com base em determinados critérios, configure as políticas da camada 7.

    • Após o status do balanceador de carga mudar para Ativo, clique em Listeners de front-end na navegação e clique no valor da coluna Políticas para o listener criado.
    • Na página Políticas, clique em Incluir política e especifique as informações a seguir para criar uma política. É possível criar várias políticas.
      • Nome: digite um nome para a política, como my-policy. O nome deve ser exclusivo dentro do listener.
      • Ação: A ação a ser tomada quando todas as regras para a política coincidem. É possível rejeitar uma solicitação com uma resposta 403, redirecionar a solicitação para uma URL e código de resposta configurados, redirecionar o tráfego de um listener HTTP para um listener HTTPS ou encaminhar a solicitação para um conjunto de back-end específico. Se uma solicitação recebida não corresponder às regras de quaisquer políticas, a solicitação será encaminhada para o conjunto de back-end padrão do listener.
      • Prioridade: Dentro de cada tipo de ação, as políticas são avaliadas em ordem crescente de prioridade. As políticas de rejeição de tráfego são sempre avaliadas primeiro, independentemente de sua prioridade. As políticas de redirecionamento do tráfego são avaliadas em seguida, após as políticas de encaminhamento de tráfego.
      • Redirecionamento: a URL para a qual a solicitação é redirecionada, se a ação for configurada como Redirecionar. Você deve fornecer um URL completo ou os parâmetros de um URI. Ao usar um URL, todo o tráfego de entrada é redirecionado para esse URL. Ao usar parâmetros URI, os valores da solicitação de tráfego de entrada podem ser retidos usando os valores de entrada dos parâmetros. Isso inclui o protocolo, porta, host, caminho e consulta. Os valores padrão dos parâmetros de URI são iguais aos seus valores originais de entrada. Para reter os valores recebidos, forneça-os como {protocol},{port},{host},{path}, e {query}. Por exemplo, se o host da solicitação recebida for ibm.com, o valor padrão será {host} igual ao valor de ibm.com recebido.
      • Código de status: o código de status da resposta retornada pelo balanceador de carga, se a ação for configurada como Redirecionar.
      • Encaminhamento: o conjunto de back-end de instâncias de servidor virtual ao qual a solicitação é encaminhada, caso a ação seja configurada como Encaminhar para o conjunto.
    • Na página de Políticas, também é possível criar uma política de redirecionamento HTTPS com a configuração a seguir:
      • Nome: digite um nome para a política, como my-policy. O nome deve ser exclusivo dentro do listener.
      • Ação: selecione a opção Redirecionar para HTTPS.
      • HTTPS listener: O listener de destino HTTPS para o qual o tráfego do listener HTTP atual é redirecionado. Observe que você só verá uma lista de ouvintes HTTPS cujo valor accept_proxy_proxy seja o mesmo do ouvinte HTTP.
      • URI de redirecionamento (opcional): a URL para a qual a solicitação é redirecionada.
      • Código de status: o código de status da resposta retornado pelo balanceador de carga.
    • Na página Políticas, clique em Incluir regra para sua política. Se houver regras para a política, clique no valor da coluna Regras para incluir mais regras.
    • Na janela Regras, clique em Incluir regra e especifique as informações a seguir para criar uma regra. Se você criar várias regras para uma política, ela será aplicada apenas quando todas as suas regras forem correspondidas.
      • Condição: Especifica a condição com a qual uma regra é avaliada.
      • Tipo: o tipo de informação a ser avaliada pela regra: o nome do host do qual a solicitação se originou, um campo de cabeçalho HTTP ou um caminho na URL.
      • Valor: o valor a ser correspondido.
      • Chave: o nome do campo de cabeçalho HTTP a ser avaliado, se o tipo de regra for Cabeçalho. Por exemplo, para combinar com um cookie no cabeçalho HTTP, digite Cookie para a chave.

Criação de um balanceador de carga de aplicativos pela CLI

O exemplo a seguir demonstra como usar a CLI para criar um ALB ( Application Load Balancer for VPC ). Neste exemplo, ele está na frente de uma instância de servidor virtual de VPC (ID 0716_6acdd058-4607-4463-af08-d4999d983945) que executa um servidor TCP que atende na porta 9090. O balanceador de carga tem um listener de front-end que permite acesso seguro ao servidor TCP.

Para criar um balanceador de carga de aplicativos pela CLI, siga estas etapas:

  1. Configure seu ambiente da CLI.

  2. Use o terminal para efetuar login em sua conta usando a CLI. Depois que você insere a senha, o sistema solicita a conta e a região que você deseja usar:

    ibmcloud login --sso
    
  3. Crie um balanceador de carga:

    ibmcloud is load-balancer-create alb-test public --subnet 0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c --family application
    

    Saída de amostra:

    ibmcloud is load-balancer-create my-lb public --subnet my-subnet
    Creating load balancer my-lb under account vpcdemo as user test@ibm.com..
    
    ID                                 r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423   
    Name                               my-lb   
    CRN                                crn:v1:bluemix:public:is:au-syd:a/7f75c7b025e54bc5635f754b2f888665::load-balancer:r026-ec6717fa-aa6c-46c4-94ff-4ccd193ee423   
    Family                             application   
    Host name                          ec6717fa-au-syd.lb.appdomain.cloud   
    Subnets                            ID                                          Name      
                                    02h7-16f74a61-b586-4143-92df-dbc4a047bd5c   my-subnet      
    
    Public IPs                            
    Private IPs                           
    Provision status                   create_pending   
    Operating status                   offline   
    Is public                          true   
    Is private path                    false   
    Listeners                             
    Pools                              ID   Name      
    
    Resource group                     ID                                 Name      
                                    bdd96715c2a44f2bb60df4ff14a543f5   -      
    
    Created                            2026-05-26T14:47:06+05:30   
    Availability                       subnet   
    Instance Group Supported           true   
    SourceIP Session Supported         true   
    Security groups supported          true   
    UDP Supported                      false   
    Failsafe policy actions            fail,drop,forward   
    Access mode                        public   
    Advanced Health Checks Supported   true   
    FQDN Pool Members Supported        true     
    
  4. Crie um conjunto:

    ibmcloud is load-balancer-pool-create alb-pool r134-1b3d2967-d395-4023-8705-829454081e23  weighted_round_robin tcp 10  --failsafe-policy-action forward --failsafe-policy-target pool2
    

    Saída de amostra:

    Creating pool alb-pool of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776  under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                         r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Name                       alb-pool
    Protocol                   tcp
    Algorithm                  weighted_round_robin
    Instance group             ID   Name
                               -    -
    
    Health monitor             Type   Port   Health monitor URL   Delay   Retries   Timeout
                               http   8080   /                    10      2         5
    
    Failsafe policy            Action    Target ID                                   Target name   Healthy Member Threshold Count
                               forward   r006-815e16e7-8729-4d9e-9203-936a6b615ee1   pool2         0
    
    Session persistence type   source_ip
    Members
    Provision status           active
    Created                    2020-08-27T14:45:42.038-05:00
    
  5. Crie um membro:

    ibmcloud is load-balancer-pool-member-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 9090 0716_6acdd058-4607-4463-af08-d4999d983945 --weight 70
    

    Saída de amostra:

    Creating member of pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-61f8b000-a90d-4abe-909e-c507dffec565
    Port               9090
    Target             0716_6acdd058-4607-4463-af08-d4999d983945
    Weight             70
    Health             unknown
    Created            2020-08-27T14:59:55.446-05:00
    Provision status   create_pending
    
  6. Crie um listener:

    $ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30
    

    Saída de amostra:

    $ibmcloud is load-balancer-listener-create r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 7070 tcp --default-pool r006-3b66d605-6aa5-4166-9f66-b16054da3cb0 -idle-connection-timeout 30
    
    Sample output:
    Creating listener of load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    ID                      r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Certificate instance    -
    Connection limit        -
    Idle connection timeout 30
    Port                    7070
    Protocol                tcp
    Default pool            r006-3b66d605-6aa5-4166-9f66-b16054da3cb0
    Provision status        create_pending
    Created                 2020-08-27T15:16:08.643-05:00
    

    Para obter mais opções, consulte Referência da CLI de VPC para balanceadores de carga.

  7. Crie uma política:

    ibmcloud is load-balancer-listener-policy-create 72251a2e-d6c5-42b4-97b0-b5f8e8d1f479 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 --action redirect --priority 2 --target-http-status-code 301 --target-url "https://{host}:443/{path}"
    

    Saída de amostra:

    Creating policy of load balancer listener 72b27b5c-f4b0-48bb-b954-5becc7c1dcb3 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                      r006-4847a949-f9b6-4fc1-71c6-d1c49dac3ebc
    Action                  redirect
    Priority                2
    Http status code        301
    Target Url              https://{host}:443/{path}
    Provision status        create_pending
    Created                 2024-04-23T15:16:08.643-05:00
    
  8. Obtenha detalhes sobre seu balanceador de carga:

    ibmcloud is load-balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    

    Saída de amostra:

    Getting load balancer r006-99b5ab45-6357-42db-8b32-5d2c8aa62776 under account IBM Cloud Network Services as user test@ibm.com...
    
    ID                 r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Name               alb-test
    CRN                crn:v1:public:is:us-south-1:a/123456::load-balancer:r006-99b5ab45-6357-42db-8b32-5d2c8aa62776
    Family             Application
    Host name          99b5ab45-us-south.lb.test.appdomain.cloud
    Subnets            ID                                          Name
                       0896-b1f24514-89dc-4afd-b0e2-5489a43cf45c   alb-subnet
    
    Public IPs         150.238.50.78, 150.238.54.95
    Private IPs        10.240.0.58, 10.240.0.59
    Provision status   active
    Operating status   online
    Is public          true
    Listeners          r006-2847a948-f9b6-4fc1-91c6-f1c49dac3eba
    Pools              ID                                          Name
                       r006-3b66d605-6aa5-4166-9f66-b16054da3cb0   alb-pool
    
    Resource group     ID                                 Name
                       3021f90279574ce287dd5fba82c08899   Default
    
    Created            2020-08-27T14:34:34.732-05:00
    

Criação de um balanceador de carga de aplicativos por meio da API

O exemplo a seguir ilustra o uso da API para criar um balanceador de carga do aplicativo na frente de duas instâncias do servidor virtual VPC (192.168.100.5 e 192.168.100.6) executando um aplicativo da web que atende na porta 80. O balanceador de carga tem um listener de front-end, que permite acesso seguro ao aplicativo da web usando HTTPS.

O exemplo ignora as etapas de pré-requisito para usar a API para provisionar uma VPC, sub-redes e instâncias.

Para criar um balanceador de carga de aplicativos usando a API, siga estas etapas:

  1. Configure o seu Ambiente de API.

  2. Armazene os valores a seguir nas variáveis a serem usadas no comando da API:

    • ResourceGroupId - primeiro, obtenha o seu grupo de recursos e, em seguida, preencha a variável:
    export ResourceGroupId=<your_resourcegroup_id>
    

    Você também pode encontrar o ID do seu grupo de recursos usando o console IBM Cloud. No seu navegador, abra o console do IBM Cloud e faça login na sua conta. Selecione Gerenciar > Conta > Grupos de recursos.

  3. Crie um balanceador de carga com um ouvinte, um pool e instâncias de servidor anexadas (membros do pool) com o seguinte código de amostra:

    curl -H "Authorization: Bearer $iam_token" -X POST
    "$vpc_api_endpoint/v1/load_balancers?version=$api_version&generation=2" \
      -d @alb_create_payload.json
      Where alb_create_payload.json has the following content:
      '{
          "name": "example-balancer",
          "is_public": true,
          "listeners": [
              {
                  "certificate_instance": {
                      "crn": "crn:v1:bluemix:public:cloudcerts:us-south:a/123456:b8877ea4-b8eg-467e-912a-da1eb7f031cg:certificate:43219c4c97d013fb2a95b21dddde1234"
                  },
                  "port": 443,
                  "protocol": "https",
                  "idle_connection_timeout" : 80,
                  "default_pool": {
                      "name": "example-pool"
                  }
              }
          ],
          "pools": [
              {
                  "algorithm": "round_robin",
                  "health_monitor": {
                      "delay": 5,
                      "max_retries": 2,
                      "timeout": 2,
                      "type": "tcp",
                      "url_path": "/"
                  },
                  "name": "example-pool",
                  "protocol": "tcp",
                  "session_persistence": {
                      "cookie_name": "string",
                      "type": "source_ip"
                  },
                  "members": [
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.5"
                          },
                          "weight": 50
                      },
                      {
                          "port": 80,
                          "target": {
                              "address": "192.168.100.6"
                          },
                          "weight": 50
                      }
                  ]
              }
          ],
          "subnets": [
              {
                  "id": "7ec87131-1c7e-4990-b4f0-a26f2e61f98e"
              }
          ]
          }'
    

    Para obter mais opções, consulte Referência da API VPC para balanceadores de carga.

    Saída de amostra:

    {
        "created_at": "2018-07-12T23:17:07.5985381Z",
        "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "hostname": "ac34687d.lb.appdomain.cloud",
        "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
        "is_public": true,
        "profile": {
            "name": "network-fixed"
        },
        "listeners": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
            }
        ],
        "name": "example-balancer",
        "operating_status": "offline",
        "pools": [
            {
                "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
                "name": "example-pool"
            }
        ],
        "provisioning_status": "create_pending",
        "resource_group": {
            "id": "56969d60-43e9-465c-883c-b9f7363e78e8"
        },
        "subnets": [
            {
                "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
                "name": "example-subnet"
            }
        ]
    }
    

    Salve o ID do balanceador de carga para usar nas próximas etapas. Por exemplo, salve-o na variável lbid.

    lbid=0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727
    
  4. Obtenha detalhes sobre o balanceador de carga

    curl -H "Authorization: Bearer $iam_token" -X GET "$vpc_api_endpoint/v1/load_balancers/$lbid?version=$api_version&generation=2"
    

    Permita algum tempo para fornecimento. Quando o balanceador de carga estiver pronto, ele será configurado como online e o status active, conforme mostrado na saída de amostra a seguir:

    {
      "id": "0738-dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "crn": "crn:v1:bluemix:public:is:us-south:a/123456::load-balancer:dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727",
      "name": "example-balancer",
      "created_at": "2018-07-13T22:22:24.489Z",
      "hostname": "dd754295-e9e0-4c9d-bf6c-58fbc59e5727.lb.appdomain.cloud",
      "is_public": true,
      "profile": {
            "name": "network-fixed"
      },
      "listeners": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
           "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/listeners/70294e14-4e61-11e8-bcf4-0242ac110004"
        }
      ],
      "operating_status": "online",
      "pools": [
        {
          "id": "0738-70294e14-4e61-11e8-bcf4-0242ac110004",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/load_balancers/dd754295-e9e0-4c9d-bf6c-58fbc59e5727/pools/70294e14-4e61-11e8-bcf4-0242ac110004",
          "name": "example-pool"
        }
      ],
      "private_ips": [
        {
          "address": "192.168.10.5"
        },
        {
          "address": "192.168.10.6"
        }
      ],
      "provisioning_status": "active",
      "public_ips": [
        {
            "address": "169.11.111.115"
        },
        {
            "address": "169.11.111.116"
        }
      ],
      "resource_group": {
        "id": "0738-56969d60-43e9-465c-883c-b9f7363e78e8"
      },
      "subnets": [
        {
          "id": "0738-7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "href": "https://us-south.iaas.cloud.ibm.com/v1/subnets/7ec86020-1c6e-4889-b3f0-a15f2e50f87e",
          "name": "example-subnet"
        }
      ]
    }