Después de desplegar una aplicación en Serverless App Engine (SAE), puede vincular una instancia de Network Load Balancer (NLB) a la aplicación para proporcionar un endpoint de acceso fijo. Este tema describe cómo vincular una instancia de NLB a una aplicación de SAE.
Contexto
De forma predeterminada, no es posible acceder a las aplicaciones de SAE desde la red pública. Aunque puede acceder a una aplicación dentro de una Virtual Private Cloud (VPC) mediante la dirección IP privada de una instancia, este método no es confiable porque la dirección IP podría cambiar durante las actualizaciones o reinicios de la aplicación. Para resolver estos problemas, puede vincular una instancia de NLB pública o privada a su aplicación. Al vincular una instancia de NLB, no solo podrá usar un nombre de dominio fijo para acceder a la aplicación, sino también distribuir el tráfico de manera eficiente entre distintas zonas e instancias de SAE.
Antes de vincular una instancia de NLB a una aplicación, consulte how Network Load Balancer (NLB) works y sus performance and usage limits.
-
Cuando utiliza el servicio de NLB en SAE, la instancia de NLB genera fees adicionales.
ImportanteSi elimina una instancia de NLB en la consola de SAE sin eliminarla también de la consola de Server Load Balancer (SLB), esta continuará generando cargos. Para obtener instrucciones sobre cómo eliminar la instancia de NLB desde la consola de SLB, consulte Delete an NLB instance.
Descripción general
Las aplicaciones de SAE admiten la vinculación con instancias de NLB públicas o privadas. Puede asociar instancias de NLB de diferentes tipos de red con su aplicación de SAE según sus necesidades empresariales.
Vincular una instancia de NLB privada: El objetivo principal es proporcionar una dirección de acceso fija (nombre DNS) para la aplicación de SAE y distribuir el tráfico a las instancias de la aplicación mediante un algoritmo de balanceo de carga, como round-robin. Los casos de uso comunes incluyen la comunicación interna de microservices, el acceso a bases de datos y el acceso a la intranet empresarial.
-
Vincular una instancia de NLB pública: De forma predeterminada, SAE no admite el acceso directo desde la red pública. Al vincular una instancia de NLB pública a su aplicación, puede proporcionar un endpoint público fijo para gestionar el tráfico proveniente de la red pública. El flujo de trabajo de acceso público se muestra en la siguiente figura.
Paso 1: Agregar una instancia de NLB
En la página Applications, seleccione una región y un espacio de nombres en la barra de navegación superior y, a continuación, haga clic en el Application ID de la aplicación objetivo para abrir la página de detalles de la aplicación.
En la página Basic Information, busque la sección application access settings. En la pestaña NLB-based Access, haga clic en Add NLB Access.
-
En el panel Add NLB Access, configure los parámetros como se indica a continuación y, a continuación, haga clic en OK.
NotaSAE le permite crear una instancia de NLB o vincular una existente. Elija una opción según sus necesidades.
Crear una nueva instancia de NLB: SAE compra automáticamente una instancia de NLB por usted. Puede consultar los detalles de la instancia de NLB en la consola de Server Load Balancer (SLB).
Vincular una instancia de NLB existente: Debe create an NLB instance con antelación en la página Instances de la consola de SLB. Si desea crear una instancia de NLB privada, se recomienda utilizar la misma Virtual Private Cloud (VPC) tanto para la instancia de NLB como para la aplicación de SAE. Si se encuentran en VPC diferentes, debe configurar la red para habilitar la comunicación entre ellas. Por ejemplo, puede utilizar Cloud Enterprise Network (CEN) de Alibaba Cloud u otros productos de conexión de red para habilitar la comunicación entre VPC.
Crear una nueva instancia de NLB
Para instance source, seleccione Create Instance.
-
Para Network Type, seleccione Public o Private según sus necesidades.
Si selecciona Public, el sistema crea una instancia de NLB pública y asigna una Elastic IP Address y una VIP a cada zona.
Si selecciona Private, el sistema crea una instancia de NLB privada y asigna una VIP a cada zona.
-
Seleccione las zonas donde se ubican sus vSwitches según sus requisitos empresariales. Para garantizar alta disponibilidad, seleccione como mínimo dos zonas.
No puede seleccionar una Virtual Private Cloud (VPC). Se utiliza de forma predeterminada la VPC de la aplicación objetivo.
-
Los tipos de protocolo compatibles son TCP, UDP y TCPSSL.
Tipo de protocolo
Parámetro
Ejemplo
TCP
Listener port: El puerto que recibe las solicitudes y las reenvía a los servidores backend.
Container port: El puerto en el que escucha el proceso de la aplicación.
Listener port: 80
Container port: 8080 (puerto predeterminado para servicios web)
UDP
TCPSSL
Listener port: El puerto que recibe las solicitudes y las reenvía a los servidores backend.
Container port: El puerto en el que escucha el proceso de la aplicación.
Select SSL certificate: Un certificado de protocolo SSL. Seleccione un certificado SSL cargado de la lista desplegable.
NotaPara acceder a un nombre de dominio personalizado a través de HTTPS, el nombre de dominio debe tener un registro ICP en Alibaba Cloud. Para obtener más información, consulte ICP filing process.
Listener port: 80
Container port: 8080 (puerto predeterminado para servicios web)
Select SSL certificate: Seleccione un certificado SSL adquirido de la lista desplegable. Si no ha adquirido un certificado SSL, consulte Purchase a certificate.
Vincular una instancia de NLB existente
Para instance source, seleccione Use Existing.
-
En la lista desplegable NLB Instance, seleccione la instancia de NLB que creó.
Si no ha creado una instancia de NLB, haga clic en Create NLB Instance . A continuación, create an NLB instance en la página Instances de la consola de SLB.
-
Los tipos de protocolo compatibles son TCP, UDP y TCPSSL.
Tipo de protocolo
Parámetro
Ejemplo
TCP
Listener port: El puerto que recibe las solicitudes y las reenvía a los servidores backend.
Container port: El puerto en el que escucha el proceso de la aplicación.
Listener port: 80
Container port: 8080 (puerto predeterminado para servicios web)
UDP
TCPSSL
Listener port: El puerto que recibe las solicitudes y las reenvía a los servidores backend.
Container port: El puerto en el que escucha el proceso de la aplicación.
Select SSL certificate: Un certificado de protocolo SSL. Seleccione un certificado SSL cargado de la lista desplegable.
NotaPara acceder a un nombre de dominio personalizado a través de HTTPS, el nombre de dominio debe tener un registro ICP en Alibaba Cloud. Para obtener más información, consulte ICP filing process.
Listener port: 80
Container port: 8080 (puerto predeterminado para servicios web)
Select SSL certificate: Seleccione un certificado SSL adquirido de la lista desplegable. Si no ha adquirido un certificado SSL, consulte Purchase a certificate.
-
Una vez creada la instancia de NLB, puede consultar su estado en la pestaña NLB-based Access dentro de la sección application access settings.
Si desea agregar varias instancias de NLB, haga clic en Add NLB Access y siga los pasos anteriores para agregar más instancias.
ImportanteConfigurar reglas de listener para la misma instancia de NLB tanto en la consola de SAE como en la de Server Load Balancer (SLB) puede provocar conflictos, ya que la configuración de una consola podría sobrescribir la de la otra. Para evitar conflictos de configuración, se recomienda configurar las reglas de listener para las instancias de NLB únicamente en la consola de SAE.
Puede realizar las siguientes operaciones en la instancia de NLB:
Agregar listener: Haga clic en Add Listener. En el cuadro de diálogo Add Listener, seleccione un protocol type y configure the parameters.
Modificar puerto de contenedor: En la columna Actions de la instancia de NLB, haga clic en Edit. En el panel Edit NLB Access, puede modificar el container port.
-
Eliminar un listener o una instancia de NLB: En la columna Actions de la instancia de NLB, haga clic en Delete. En el cuadro de diálogo Confirm Deletion, haga clic en OK para eliminar la regla de listener correspondiente o la instancia de NLB.
Si agrega varias reglas de listener para la misma instancia de NLB, la operación de eliminación solo elimina la regla de listener correspondiente. Si elimina la última regla de listener, la instancia de NLB se elimina automáticamente porque no quedan reglas de listener restantes.
-
Consultar la instancia de NLB: Haga clic en el nombre de la instancia de NLB para ir a la página Instance Details de la instancia de NLB en la consola de SLB. Puede consultar los detalles de la instancia de NLB, como la Elastic IP Address y la VIP asignadas a cada zona, así como el DNS name generado automáticamente para la instancia de NLB.
Puede utilizar el DNS name proporcionado por la instancia de NLB o la Elastic IP Address proporcionada para la zona para probar el acceso.
Solución de problemas de la dirección de escucha del puerto
Si ha vinculado una instancia de NLB pero no puede acceder al puerto de la aplicación a través del DNS name o la Elastic IP Address de la instancia de NLB, compruebe la dirección de escucha del puerto de la aplicación:
Utilice Webshell para iniciar sesión en el contenedor de la instancia de la aplicación y ejecute el comando
netstat -npltpara comprobar el estado de escucha del puerto.Compruebe la dirección de escucha del container port objetivo. Si la dirección de escucha es
127.0.0.1:<container port>, el proceso de la aplicación escucha únicamente en localhost y la instancia de NLB no puede reenviar tráfico a ese puerto.Modifique el código de la aplicación para cambiar la dirección de escucha de
127.0.0.1a0.0.0.0para que el proceso escuche en todas las interfaces de red.Vuelva a desplegar la aplicación y, a continuación, vincule la instancia de NLB nuevamente. El puerto de la aplicación será accesible a través de la instancia de NLB.
Paso 2: Configurar la resolución de dominios
El nombre DNS proporcionado por la instancia de NLB puede utilizarse para pruebas de acceso. Sin embargo, en entornos de producción, se recomienda utilizar un nombre de dominio personalizado y agregar un registro CNAME para asignarlo al nombre DNS de la instancia de NLB.
En la sección application access settings, haga clic en el nombre de la instancia de NLB creada para abrir su página de detalles en la consola de SLB.
-
En la página Instance Details de la instancia de NLB en la consola de SLB, copie el DNS name.
El nombre DNS proporcionado por la instancia de NLB se utiliza como valor del registro cuando configura la resolución de nombres de dominio.
-
Inicie sesión en la consola de Alibaba Cloud DNS y agregue un registro CNAME.
NotaSi su nombre de dominio no está registrado en Alibaba Cloud, debe agregarlo a la consola de Alibaba Cloud DNS antes de poder configurar domain name resolution. Si su nombre de dominio está registrado en Alibaba Cloud, continúe con los siguientes pasos.
En la página Authoritative Domains, busque el dominio objetivo y haga clic en Configure en la columna Actions.
En la página Configure, haga clic en Add Record.
-
En el panel Add Record, configure los siguientes parámetros para completar la configuración de CNAME y, a continuación, haga clic en OK.
Parámetro
Ejemplo
Descripción
Type
CNAME
Seleccione CNAME en la lista desplegable.
Un registro CNAME asigna su nombre de dominio personalizado al nombre DNS proporcionado por la instancia de NLB.
Host
www
Introduzca el prefijo del subdominio que está creando.
Consulte la descripción de la consola para obtener una explicación detallada del registro de host.
Resolution Request Source
Default
Seleccione Default.
Alibaba Cloud DNS puede identificar la región y el operador de la dirección IP de origen de una solicitud DNS (generalmente la dirección IP del DNS local de un operador). Al agregar un registro, puede devolver diferentes valores de registro para solicitudes provenientes de distintas regiones o redes de operadores.
Value
nlb-****.com
Introduzca el nombre DNS proporcionado por la instancia de NLB.
El valor del registro es el nombre de dominio al que apunta el registro CNAME.
TTL
10 minutes
Utilice el valor predeterminado proporcionado por la consola.
TTL (Time to Live) es la duración durante la cual se almacena en caché un registro DNS en un servidor DNS.
Paso 3: Probar el acceso
Introduzca su nombre de dominio personalizado en un navegador para probar el acceso. Por ejemplo, http://your_domain_name.
Hello, World!
Limpieza de recursos (opcional)
Eliminar la instancia de NLB
En la página Basic Information de la aplicación objetivo en la consola de SAE, haga clic en el nombre de la instancia de NLB en la sección application access settings para abrir la página de detalles de la instancia en la consola de SLB.
En la página de detalles de la instancia de NLB, seleccione en la esquina superior derecha. En el cuadro de diálogo Release Instance, haga clic en Confirm.
Regrese a la página Basic Information de la aplicación objetivo en la consola de SAE. En la sección application access settings, haga clic en Delete en la columna Actions de la instancia de NLB. En el cuadro de diálogo Confirm Deletion, haga clic en OK para eliminar la instancia de NLB.
Si ha agregado varias reglas de listener para la misma instancia de NLB, debe eliminar todas las reglas de listener antes de poder eliminar la instancia de NLB en la consola de SAE.
Si elimina la instancia de NLB únicamente en la consola de SAE, esta continuará generando cargos.
Eliminar el registro de resolución de dominios
En la consola de Alibaba Cloud DNS, delete the domain name resolution record that you added.