Durante décadas, la "última milla" ha sido una de las partes más débiles de la infraestructura de Internet. Hoy, los operadores de telefonía móvil están dispuestos a cambiar esa situación proporcionando a las aplicaciones móviles una conectividad fiable y rápida con una latencia similar a la de una LAN. La introducción de Longitud de onda AWS permite a los desarrolladores aprovechar las modernas redes 5G y acercar la infraestructura de sus aplicaciones a sus clientes desplegándola directamente en los centros de datos de los operadores móviles.
Las zonas de longitud de onda son una nueva tecnología que en Couchbase nos entusiasmó explorar durante nuestra preparación para AWS re:Invent 2021. Para mostrar sus posibilidades y cómo nuestra arquitectura sin maestro facilita la computación en los bordes, presentamos una aplicación de subasta de demostración que permite a los usuarios de Verizon en Las Vegas comparar las latencias de las peticiones entre el clásico us-oeste-2 región de AWS y la zona de borde de Las Vegas Wavelength. Esta entrada de blog repasa cómo puedes usar la potencia de Couchbase Sync Gateway para empezar a manejar tus datos en el borde.
Configuración del servidor bastión
Las instancias Wavelength tienen direcciones IP asignadas por el operador móvil y accesibles únicamente desde la red del operador y su VPC. Esto hace que sea imposible conectarse a estas instancias desde fuera de la red del operador.
Por lo tanto, para administrar las instancias de Wavelength, un ingeniero de desarrollo debe conectarse directamente a la red del operador o utilizar soluciones alternativas como servidores bastionque, en los casos más sencillos, puede ser simplemente una instancia en su VPC de AWS desplegada en una zona de disponibilidad normal.
Primero vamos a crear una clave privada de AWS EC2 que utilizaremos para acceder al servidor de salto:
Crea el par de claves, descárgalo y guárdalo en un lugar seguro. No podrás acceder a él más adelante.
Ahora, podemos desplegar una instancia de Amazon Linux que se convertirá en nuestro host de salto ssh. No olvides asignarle una dirección IP pública, configurar su grupo de seguridad para permitir conexiones ssh entrantes y salientes, y especificar el par de claves al iniciar la instancia:
Compruebe que puede acceder al nodo bastión desde su ordenador:
- Si aún no lo tienes, inicia un ssh-agent ejecutando: eval $(ssh-agent -s)
- Añade la clave descargada ejecutando: ssh-add
- Conectarse a la instancia: ssh
Para iniciar sesión en las instancias que crearemos posteriormente en la zona Wavelength, utilice el comando -J del comando ssh: ssh -J .
Configuración de la zona de longitud de onda
En este ejemplo, utilizaremos Las Vegas Verizon (usw2-wl1-las-wlz1) como nuestra zona de borde. Para desplegar instancias en ella y asumiendo que una VPC en us-oeste-2 creada anteriormente, primero tenemos que crear una región :
- Pasarela de operador para conectar nuestras instancias de borde tanto a Internet como a la red del operador.
- Subred en la que desplegaremos nuestras instancias
- Tabla de enrutamiento que dirige el tráfico de Internet hacia y desde la subred a través de la pasarela del operador.
AWS nos permite hacer todo esto en un solo paso al utilizar su Crear pasarela de operador que se muestra a continuación. También se encarga de crear una tabla de enrutamiento que dirigirá el tráfico entre las instancias de la subred y la infraestructura portadora:
Configuración del clúster Couchbase
Una vez creada la subred, podemos proceder a crear instancias EC2 para nuestros futuros clusters. Hay múltiples formas de desplegar Couchbase, aquí tienes dos de ellas:
Lo más sencillo es crear un clúster Kubernetes y utilizar nuestro operador autónomo para desplegar y gestionar el clúster Couchbase. Tenga en cuenta que los clústeres EKS y los grupos de autoescalado requieren 2 subredes en diferentes regiones. Aunque hay múltiples zonas de disponibilidad de Wavelength, todas estas zonas están ubicadas en diferentes ciudades. Si desea garantizar que su clúster está ubicado en Las Vegas, tendría que crear su clúster manualmente. Consulte Documentación de Couchbase Autonomous Operator para obtener instrucciones de instalación.
Una forma alternativa es instalar Couchbase directamente en las instancias EC2 y configurarlo manualmente. Este es el enfoque que tomamos para nuestro re:Inventar presentación. Las instrucciones para instalar Couchbase pueden obtenerse en nuestra documentación.
Tenga en cuenta que la infraestructura de Wavelength sólo admite un conjunto limitado de tipos de instancia EC2. Para esta presentación, hemos elegido t3.xlarge como nodos Couchbase y Sync Gateway.
Se recomienda utilizar diferentes claves SSH para diferentes servidores, o al menos diferentes clusters. Para utilizar el host bastión, tendrá que añadir cada clave SSH que cree a su agente SSH ejecutando: ssh-add .
Configuración de Sync Gateway
El procedimiento de configuración de Sync Gateway está ampliamente documentado en la sección Documentación sobre Couchbase aquí. El cifrado TLS es compatible con la pasarela desde el primer momento. Para configurarlo, proporcione rutas al certificado y a su clave privada a través de SSLCert y SSLKey Esto cambiará los puertos utilizados por el servicio de puerta de enlace a puertos SSL.Alternativamente, un proxy inverso como NGINX se puede utilizar para agregar el cifrado de seguridad de la capa de transporte como lo hicimos para la presentación. A continuación se muestra una configuración de NGINX que puede utilizar para proxy conexiones Sync Gateway:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
servidor { escuche 4984 ssl; nombre_servidor ejemplo.com; ssl_certificate /etc/letsencrypt/en directo/ejemplo.com/cadena completa.pem; ssl_certificate_key /etc/letsencrypt/en directo/ejemplo.com/clave privada.pem; cuerpo_max_cliente_talla 20m; ubicación / { proxy_set_header Anfitrión $host; proxy_set_cabecera X-Reenviado-Anfitrión $host; proxy_set_cabecera X-Reenviado-Proto $esquema; proxy_set_cabecera X-Real-Ip $dirección_remota; proxy_set_cabecera X-Reenviado-Para $proxy_add_x_forwarded_for; proxy_set_header Actualizar $http_actualización; proxy_set_header Conexión $conexión_actualización; proxy_pass http://nodo_gateway:4984; proxy_http_versión 1.1; proxy_pass_request_headers en; proxy_pass_header Acepte; proxy_pass_header Servidor; keepalive_solicita 1000; keepalive_tiempo de espera 360s; proxy_read_tiempo de espera 360s; } } |
Aunque la mayor parte de esta configuración representa una solución común para proxyar sockets web, las tres últimas líneas configuran tiempos de espera de red que son más adecuados para aplicaciones móviles en las que la estabilidad de la conexión a Internet puede sufrir en cualquier momento.
Otra instrucción importante es client_max_body_size que aumenta el límite de información que los dispositivos móviles pueden enviar en una sola conexión websocket.
Conclusión
Couchbase es naturalmente la base de datos elegida para los despliegues edge. De entrada, te ofrece la oportunidad de elegir entre un conjunto de servicios de los que puede beneficiarse cualquier aplicación:
- Couchbase Lite, una base de datos integrada que facilita la sincronización de documentos con clusters Couchbase.
- Replicación de Sync Gateway o XDCR entre diferentes ubicaciones de borde o en la nube
- Almacenamiento robusto de claves y valores en memoria y en disco basado en el protocolo Memcached, ampliamente extendido.
- Capa de caché integrada
- Búsqueda de texto completo
- Almacenamiento enriquecido de documentos con el increíble lenguaje N1QL
- Servicio de eventos para programación reactiva y enriquecimiento de datos
- Servicio de análisis que permite extraer información de sus datos sin afectar al rendimiento de su aplicación.
Junto con la latencia ultrabaja de las zonas de borde de Wavelength, estas características proporcionan una potente plataforma para cualquier aplicación móvil y estamos entusiasmados con las soluciones que se pueden crear con ella".
Recursos
Para continuar, consulte algunos de los enlaces a los recursos mencionados en esta entrada del blog: