Após implantar uma aplicação no Serverless App Engine (SAE), é possível vincular uma instância do Network Load Balancer (NLB) à aplicação para fornecer um endpoint de acesso fixo. Este tópico descreve como vincular uma instância NLB a uma aplicação SAE.
Contexto
Por padrão, as aplicações SAE não podem ser acessadas pela rede pública. Embora seja possível acessar uma aplicação dentro de uma Virtual Private Cloud (VPC) usando o endereço IP privado de uma instância, esse método não é confiável porque o endereço IP pode mudar durante atualizações ou reinicializações da aplicação. Para resolver esses problemas, vincule uma instância NLB pública ou privada à sua aplicação. Ao vincular uma instância NLB, você não apenas usa um nome de domínio fixo para acessar a aplicação, mas também balanceia o tráfego de forma eficiente entre diferentes zonas e instâncias SAE.
Antes de vincular uma instância NLB a uma aplicação, saiba mais sobre how Network Load Balancer (NLB) works e seus performance and usage limits.
-
Ao utilizar o service NLB no SAE, a instância NLB incorre em fees adicionais.
ImportanteSe você excluir uma instância NLB no console SAE sem também excluí-la no console do Server Load Balancer (SLB), ela continuará a gerar cobranças. Para obter instruções sobre como excluir a instância NLB no console SLB, consulte exclua uma instância NLB.
Visão geral
As aplicações SAE suportam a vinculação a instâncias NLB públicas ou privadas. Associe instâncias NLB de diferentes tipos de rede à sua aplicação SAE de acordo com as necessidades do seu negócio.
Vincular uma instância NLB privada: O objetivo principal é fornecer um endereço de acesso fixo (nome DNS) para a aplicação SAE e distribuir o tráfego para as instâncias da aplicação SAE usando um algoritmo de balanceamento de carga, como round-robin. Casos de uso comuns incluem comunicação interna de microsserviços, acesso a bancos de dados e acesso à intranet corporativa.
Vincular uma instância NLB pública: Por padrão, o SAE não suporta acesso direto pela rede pública. Ao vincular uma instância NLB pública à sua aplicação, é possível fornecer um endpoint público fixo para lidar com o tráfego da rede pública. O fluxo de trabalho de acesso público é mostrado na figura a seguir.

Etapa 1: Adicionar uma instância NLB
Na página Applications, selecione uma região e um namespace na barra de navegação superior e, em seguida, clique em Application ID da aplicação de destino e acesse a página de detalhes da aplicação.
Na página Basic Information, localize a seção application access settings. Na aba NLB-based Access, clique em Add NLB Access.
-
No painel Add NLB Access, configure os parâmetros a seguir e clique em OK.
NotaO SAE permite criar uma instância NLB ou vincular uma existente. Escolha uma opção com base nas suas necessidades.
crie uma nova instância NLB: O SAE compra automaticamente uma instância NLB para você. Visualize os detalhes da instância NLB no console do Server Load Balancer (SLB).
Bind an existing NLB instance: É necessário crie uma instância NLB antecipadamente na página Instances do console SLB. Se desejar criar uma instância NLB privada, recomenda-se usar a mesma Virtual Private Cloud (VPC) tanto para a instância NLB quanto para a aplicação SAE. Se estiverem em VPCs diferentes, configure a rede para permitir a comunicação entre elas. Por exemplo, use o Cloud Enterprise Network (CEN) da Alibaba Cloud ou outros products de conexão de rede para permitir a comunicação entre VPCs.
crie uma nova instância NLB
Para instance source, selecione crie uma instância.
-
Para Network Type, selecione Public ou Private de acordo com suas necessidades.
Se selecionar Public, o sistema cria uma instância NLB pública e aloca um Elastic IP Address e um VIP para cada zona.
Se selecionar Private, o sistema cria uma instância NLB privada e aloca um VIP para cada zona.
-
Selecione as zonas onde seus vSwitches estão localizados com base nos requisitos do seu negócio. Para alta disponibilidade, selecione pelo menos duas zonas.
Não é possível selecionar uma Virtual Private Cloud (VPC). O sistema utiliza a VPC da aplicação de destino por padrão.
-
Os tipos de protocolo suportados são TCP, UDP e TCPSSL.
Tipo de protocolo
Parâmetro
Exemplo
TCP
Listener port: A porta que recebe solicitações e as encaminha para os servidores backend.
Container port: A porta na qual o processo da aplicação escuta.
Listener port: 80
Container port: 8080 (porta padrão para serviços web)
UDP
TCPSSL
Listener port: A porta que recebe solicitações e as encaminha para os servidores backend.
Container port: A porta na qual o processo da aplicação escuta.
selecione um certificado SSL: Um certificado de protocolo SSL. Selecione um certificado SSL enviado na lista suspensa.
NotaPara acessar um nome de domínio personalizado por HTTPS, o nome de domínio deve ter um registro ICP na Alibaba Cloud. Para mais informações, consulte ICP filing process.
Listener port: 80
Container port: 8080 (porta padrão para serviços web)
selecione um certificado SSL: Selecione um certificado SSL adquirido na lista suspensa. Se não tiver adquirido um certificado SSL, consulte Purchase a certificate.
Bind an existing NLB instance
Para instance source, selecione Use Existing.
-
Na lista suspensa NLB Instance, selecione a instância NLB que você criou.
Se não tiver criado uma instância NLB, clique em crie uma instância NLB . Em seguida, crie uma instância NLB na página Instances do console SLB.
-
Os tipos de protocolo suportados são TCP, UDP e TCPSSL.
Tipo de protocolo
Parâmetro
Exemplo
TCP
Listener port: A porta que recebe solicitações e as encaminha para os servidores backend.
Container port: A porta na qual o processo da aplicação escuta.
Listener port: 80
Container port: 8080 (porta padrão para serviços web)
UDP
TCPSSL
Listener port: A porta que recebe solicitações e as encaminha para os servidores backend.
Container port: A porta na qual o processo da aplicação escuta.
selecione um certificado SSL: Um certificado de protocolo SSL. Selecione um certificado SSL enviado na lista suspensa.
NotaPara acessar um nome de domínio personalizado por HTTPS, o nome de domínio deve ter um registro ICP na Alibaba Cloud. Para mais informações, consulte ICP filing process.
Listener port: 80
Container port: 8080 (porta padrão para serviços web)
selecione um certificado SSL: Selecione um certificado SSL adquirido na lista suspensa. Se não tiver adquirido um certificado SSL, consulte Purchase a certificate.
-
Após a criação da instância NLB, visualize seu status na aba NLB-based Access na seção application access settings.
Para adicionar várias instâncias NLB, clique em Add NLB Access e siga as etapas acima para adicionar mais instâncias.
ImportanteConfigurar regras de listener para a mesma instância NLB tanto no console SAE quanto no console do Server Load Balancer (SLB) pode causar conflitos, pois as configurações em um console podem sobrescrever as do outro. Para evitar conflitos de configuração, configure as regras de listener para instâncias NLB apenas no console SAE.
É possível realizar as seguintes operações na instância NLB:
Add listener: Clique em Add Listener. Na caixa de diálogo Add Listener, selecione um protocol type e configure os parâmetros.
modifique a porta do contêiner: Na coluna Actions da instância NLB, clique em edite. No painel edite o acesso NLB, modifique a container port.
-
exclua um listener ou instância NLB: Na coluna Actions da instância NLB, clique em exclua. Na caixa de diálogo confirme a exclusão, clique em OK para excluir a regra de listener correspondente ou a instância NLB.
Se adicionar várias regras de listener para a mesma instância NLB, a operação de exclusão remove apenas a regra de listener correspondente. Se excluir a última regra de listener, a instância NLB será excluída automaticamente por não possuir mais regras de listener.
-
visualize a instância NLB: Clique no nome da instância NLB e acesse a página Instance Details da instância NLB no console SLB. Visualize os detalhes da instância NLB, como o Elastic IP Address e o VIP alocados para cada zona, e o DNS name gerado automaticamente para a instância NLB.
Use o DNS name fornecido pela instância NLB ou o Elastic IP Address fornecido para a zona para testar o acesso.
Solucionar problemas do endereço de escuta da porta
Se você vinculou uma instância NLB, mas não consegue acessar a porta da aplicação através do DNS name ou Elastic IP Address da instância NLB, verifique o endereço de escuta da porta da aplicação:
Use o Webshell para fazer login no contêiner da instância da aplicação e execute o comando
netstat -npltpara verificar o status de escuta da porta.Verifique o endereço de escuta da container port de destino. Se o endereço de escuta for
127.0.0.1:<container port>, o processo da aplicação escuta apenas no localhost e a instância NLB não pode encaminhar o tráfego para essa porta.Modifique o código da aplicação para alterar o endereço de escuta de
127.0.0.1para0.0.0.0, de modo que o processo escute em todas as interfaces de rede.Implante a aplicação novamente e vincule a instância NLB mais uma vez. A porta da aplicação ficará acessível através da instância NLB.
Etapa 2: Configurar a resolução de domínio
O DNS name fornecido pela instância NLB pode ser usado para testes de acesso. No entanto, em ambientes de produção, recomenda-se usar um nome de domínio personalizado e adicionar um registro CNAME para mapeá-lo para o DNS name da instância NLB.
Na seção application access settings, clique no nome da instância NLB criada e acesse sua página de detalhes no console SLB.
-
Na página Instance Details da instância NLB no console SLB, copie o DNS name.
O DNS name fornecido pela instância NLB é usado como valor do registro ao configurar a resolução do nome de domínio.
-
Faça login no console DNS da Alibaba Cloud e adicione um registro CNAME.
NotaSe o seu nome de domínio não estiver registrado na Alibaba Cloud, adicione-o ao console DNS da Alibaba Cloud antes de configurar domain name resolution. Se o seu nome de domínio estiver registrado na Alibaba Cloud, prossiga com as etapas a seguir.
Na página Authoritative Domains, localize o domínio de destino e clique em configure na coluna Actions.
Na página Configure, clique em Add Record.
-
No painel Add Record, configure os parâmetros a seguir para concluir a configuração do CNAME e clique em OK.
Parâmetro
Exemplo
Descrição
Type
CNAME
Selecione CNAME na lista suspensa.
Um registro CNAME mapeia seu nome de domínio personalizado para o DNS name fornecido pela instância NLB.
Host
www
Insira o prefixo do subdomínio que você está criando.
Consulte a descrição do console para uma explicação detalhada do registro de host.
Resolution Request Source
Default
Selecione Default.
O DNS da Alibaba Cloud pode identificar a região e a operadora do endereço IP de source de uma solicitação DNS (geralmente o endereço IP do DNS local de uma operadora). Ao adicionar um registro, é possível retornar diferentes valores de registro para solicitações de diferentes regiões ou redes de operadoras.
Value
nlb-****.com
Insira o DNS name fornecido pela instância NLB.
O valor do registro é o nome de domínio para o qual o registro CNAME aponta.
TTL
10 minutes
Use o valor padrão fornecido pelo console.
O TTL (Time to Live) é a duração durante a qual um registro DNS é armazenado em cache em um servidor DNS.
Etapa 3: Testar o acesso
Insira seu nome de domínio personalizado em um navegador para testar o acesso. Por exemplo, http://your_domain_name.
Hello, World!
Limpar recursos (opcional)
Excluir a instância NLB
Na página Basic Information da aplicação de destino no console SAE, clique no nome da instância NLB na seção application access settings e acesse a página de detalhes da instância no console SLB.
Na página de detalhes da instância NLB, escolha no canto superior direito. Na caixa de diálogo Release Instance, clique em confirme.
Retorne à página Basic Information da aplicação de destino no console SAE. Na seção application access settings, clique em exclua na coluna Actions da instância NLB. Na caixa de diálogo confirme a exclusão, clique em OK para excluir a instância NLB.
Se tiver adicionado várias regras de listener para a mesma instância NLB, exclua todas as regras de listener antes de excluir a instância NLB no console SAE.
Se excluir a instância NLB apenas no console SAE, ela continuará a gerar cobranças.
Excluir o registro de resolução de domínio
No console Alibaba Cloud DNS, exclua o registro de resolução de nome de domínio que você adicionou.