Durante décadas, a "última milha" tem sido uma das partes mais fracas da infraestrutura da Internet. Hoje, as operadoras móveis estão prontas para mudar isso, fornecendo conectividade confiável e rápida com latência semelhante à de uma LAN para aplicativos móveis. A introdução de Comprimento de onda AWS permite que os desenvolvedores acessem as redes 5G modernas e aproximem a infraestrutura de aplicativos de seus clientes, implantando-a diretamente nos data centers das operadoras de telefonia móvel.
As zonas de comprimento de onda são uma nova tecnologia que nós da Couchbase ficamos entusiasmados em explorar durante nossa preparação para o AWS re:Invent 2021. Para mostrar suas possibilidades e como nossa arquitetura sem mestre facilita a computação de borda, apresentamos um aplicativo de leilão de demonstração que permite aos usuários da Verizon em Las Vegas comparar as latências de solicitação entre o clássico us-west-2 região do AWS e a zona de borda do Wavelength de Las Vegas. Esta postagem do blog analisa como você pode usar o poder do Couchbase Sync Gateway para começar a lidar com seus dados na borda.
Configuração do servidor bastion
As instâncias do Wavelength têm endereços IP atribuídos pela operadora de telefonia móvel e acessíveis somente a partir da rede da operadora e da sua VPC. Isso impossibilita a conexão com essas instâncias de fora da rede da operadora.
Portanto, para administrar as instâncias do Wavelength, um engenheiro de desenvolvimento deve estar conectado diretamente à rede da operadora ou usar soluções alternativas como servidores bastionque, nos casos mais simples, pode ser apenas uma instância em seu AWS VPC implantada em uma zona de disponibilidade regular.
Vamos primeiro criar uma chave privada do AWS EC2 que usaremos para acessar o servidor jump:

Crie o par de chaves, faça o download e armazene-o em um local seguro. Você não poderá acessá-lo posteriormente.

Agora, podemos implementar uma instância do Amazon Linux que se tornará nosso host de salto ssh. Não se esqueça de atribuir um endereço IP público a ela, configurar seu grupo de segurança para permitir conexões ssh de entrada e saída e especificar o par de chaves ao iniciar a instância:
Verifique se é possível acessar o bastion node do seu computador:
- Se você ainda não o tiver, inicie um ssh-agent executando: eval $(ssh-agent -s)
- Adicione a chave baixada a ele executando: ssh-add
- Conecte-se à instância: ssh
Para fazer login nas instâncias que criaremos posteriormente na zona Wavelength, use o comando -J do comando ssh: ssh -J .
Configuração da zona de comprimento de onda
Neste exemplo, usaremos a Las Vegas Verizon (usw2-wl1-las-wlz1) como nossa zona de borda. Para implantar instâncias nela e supondo que uma VPC em us-west-2 foi criada anteriormente, precisamos primeiro criar uma região:
- Gateway de operadora para conectar nossas instâncias de borda à Internet e à rede da operadora
- Sub-rede na qual implementaremos nossas instâncias
- Tabela de roteamento que direciona o tráfego da Internet de e para a sub-rede por meio do gateway da operadora
A AWS permite que façamos tudo isso em uma única etapa ao usar seu Criar gateway de operadora mostrada abaixo. Ela também se encarrega de criar uma tabela de roteamento que encaminhará o tráfego entre as instâncias na sub-rede e a infraestrutura da operadora:

Configuração do cluster do Couchbase
Depois que a sub-rede for criada, podemos prosseguir com a criação de instâncias do EC2 para nossos futuros clusters. Há várias maneiras de implementar o Couchbase, e aqui estão duas delas:
O mais fácil é criar um cluster do Kubernetes e usar nosso operador autônomo para implantar e gerenciar o cluster do Couchbase. Observe que os clusters EKS e os grupos de dimensionamento automático exigem 2 sub-redes em regiões diferentes. Embora existam várias zonas de disponibilidade do Wavelength, todas essas zonas estão localizadas em cidades diferentes. Se você quiser garantir que seu cluster esteja localizado em Las Vegas, será necessário criar o cluster manualmente. Consulte Documentação do Couchbase Autonomous Operator para obter instruções de instalação.
Uma maneira alternativa é instalar o Couchbase diretamente nas instâncias do EC2 e configurá-lo manualmente. Essa é a abordagem que adotamos em nosso re:Invent apresentação. As instruções sobre a instalação do Couchbase podem ser obtidas em nossa documentação.
Observe que apenas um conjunto limitado de tipos de instância do EC2 é compatível com a infraestrutura do Wavelength. Para esta apresentação, escolhemos t3.xlarge como nós do Couchbase e do Sync Gateway.
Recomenda-se usar chaves SSH diferentes para servidores diferentes ou, pelo menos, para clusters diferentes. Para usar o host bastion, você precisará adicionar cada chave SSH criada ao agente SSH executando: ssh-add .
Configuração do Sync Gateway
O procedimento de configuração do Sync Gateway está amplamente documentado na seção Documentação do Couchbase aqui. A criptografia TLS é compatível com o gateway desde o início. Para configurá-la, forneça caminhos para o certificado e sua chave privada por meio de SSLCert e SSLKey isso alterará as portas usadas pelo serviço de gateway para portas SSL.Como alternativa, um proxy reverso, como o NGINX, pode ser usado para adicionar a criptografia de segurança da camada de transporte, como fizemos na apresentação. Aqui está uma configuração do NGINX que você pode usar para fazer proxy das conexões do 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 { ouvir 4984 ssl; nome_do_servidor exemplo.com; ssl_certificate /etc/permite criptografar/ao vivo/exemplo.com/cadeia completa.pem; ssl_certificate_key /etc/permite criptografar/ao vivo/exemplo.com/chave privada.pem; corpo_máx_cliente_tamanho 20m; localização / { proxy_set_header Anfitrião $hospedeiro; proxy_set_cabeçalho X-Encaminhado-Anfitrião $hospedeiro; proxy_set_cabeçalho X-Encaminhado-Proto $esquema; proxy_set_cabeçalho X-Real-Ip $endereço_remoto; proxy_set_cabeçalho X-Encaminhado-Para $proxy_add_x_forwarded_for; proxy_set_header Atualização $http_upgrade; proxy_set_header Conexão $connection_upgrade; proxy_pass http://gateway_node:4984; proxy_http_versão 1.1; proxy_pass_request_headers em; proxy_pass_header Aceitar; proxy_pass_header Servidor; manter vivo_solicitações 1000; manter vivo_tempo limite 360s; proxy_read_tempo limite 360s; } } |
Embora a maior parte dessa configuração represente uma solução comum para proxy de soquetes da Web, as três últimas linhas configuram tempos limite de rede que são mais adequados para aplicativos móveis nos quais a estabilidade da conexão com a Internet pode ser afetada a qualquer momento.
Outra instrução importante é tamanho_max_do_corpo_do_cliente que aumenta o limite da quantidade de informações que os dispositivos móveis podem enviar em uma única conexão websocket.
Conclusão
O Couchbase é naturalmente o banco de dados preferido para implementações de borda. Fora da caixa, ele oferece a oportunidade de escolher entre um conjunto de serviços dos quais qualquer aplicativo pode se beneficiar:
- Couchbase Lite, um banco de dados incorporado que fornece sincronização fácil de documentos com clusters do Couchbase
- Replicação do Sync Gateway ou XDCR entre diferentes locais de borda ou nuvem
- Armazenamento robusto de valores-chave na memória e no disco com base no protocolo Memcached amplamente suportado
- Camada de cache incorporada
- Recursos de pesquisa de texto completo
- Armazenamento avançado de documentos com a incrível linguagem N1QL
- Serviço de eventos para programação reativa e enriquecimento de dados
- Serviço de análise que permite extrair insights de seus dados sem afetar o desempenho de seu aplicativo
Juntamente com a latência ultrabaixa das zonas de borda do Wavelength, esses recursos fornecem uma plataforma poderosa para qualquer aplicativo móvel e estamos entusiasmados com as soluções que podem ser criadas com ela.
Recursos
Para fazer o acompanhamento, examine alguns dos links para os recursos mencionados nesta postagem do blog: