Couchbase Server e Gateway no AWS Lightsail

filipenanclarez

Filipe Nanclarez

Posted on February 26, 2022

Couchbase Server e Gateway no AWS Lightsail

No primeiro artigo dessa série, fizemos uma POC simples gravando dados em uma instância do Couchbase embutida no aplicativo de exemplo padrão do flutter. Além disso instalamos em nosso ambiente local uma versão de servidor do Couchbase e configuramos um gateway para que nosso aplicativo se comunicasse com o servidor. E por fim finalizamos fazendo uma sincronização dos dados do nosso aplicativo para o servidor.

Nesse artigo vamos fazer a instalação do servidor em um servidor virtual hospedado na Amazon.

Índice

Criando o servidor

No artigo passado citamos dois tipos de serviço na nuvem. O Lightsail e o EC2. De forma resumida, a diferença entre eles é que o Lightsail simplifica as coisas para quem está começando. Se você decidir usar o EC2 você tem o benefício de poder usar gratuidamente por um ano. Em contrapartida terá que se preocupar com as redes VPS, com o funcionamento do LoadBalancer etc. Usando Lightsail você terá apenas três meses gratuitos, mas terá menos coisas para configurar. Mantendo o conceito do artigo anterior, vamos criar o servidor usando o serviço Lightsail e futuramente se você quiser migrar para o EC2 poderá fazer isso sem maiores problemas.

Vamos acessar o site oficial e usar o grande botão laranja bem no meio da tela:

Image description

Na tela de autenticação ele irá nos perguntar se queremos logar ou queremos criar uma nova conta. Vamos criar uma nova conta:

Image description

Prencha com seu e-mail e um nome de usuário e prossiga:

Image description

Depois das verificações de e-mail e segurança será preciso escolher uma senha.

Em seguida ele pedirá informações de contato. Não coloque acentos no nome da cidade e do estado. Depois siga para informações de faturamento, e por ultimo confirmação de contato por sms ou ligação de voz.

Depois disso você poderá escolher o nível de suporte. Vou seguir com o suporte gratuito.

Por fim, veremos a tela de conclusão do cadastro. Vamos usar o botão laranja novamente para acessar o Console de Gerenciamento da AWS.

Image description

Depois de fazer login denovo, caimos na tela principal do console. Mas não vamos usar esse console. Vamos usar o console do Lightsail, então use esse endereço: https://lightsail.aws.amazon.com/

Aqui poderemos escolher a opções para criação da nossa instância. Não irei mudar a região da instancia. Em seguida vamos escolher a plataforma Linux/Unix e o blueprint vamos escolher Os Only e escolher CentOS 7 (o CentOS 8 já perdeu o suporte, enquanto o 7 vai até 2024).

Image description

Mais abaixo na página, vamos escolher a opção com 2gb de memória RAM de acordo com os requisitos mínimos do Couchbase Server. Em seguida vamos escolher um nome para a instância.

Image description

Depois disso basta clicar no botão Create instance

O console irá mostrar a instância como pendente por um tempo, basta aguardar:

Image description

Depois que ela estiver rodando, precisamos acessar ela via ssh. Para isso acesse o menu Account no canto superior direito. Na tela seguinte acesse a aba SSH Keys. Faça o download da chave pelo link conforme imagem a seguir:

Image description

Antes de podermos usar essa chave, vamos precisar converter ela para o formato suportado pelo putty. Abra o puttygen e escolha o botão Load e escolha o arquivo .PEM que baixamos:

Image description

Agora clique em Save private key. Ele vai perguntar se deseja salvar sem definir uma senha. Eu decidi seguir sem senha e depois escohi um lugar para o arquivo.

Agora podemos usar essa chave para acessar o servidor via putty. Insira o arquivo na seguinte configuração:

Image description

Depois disso vamos voltar na primeira sessão e preencher o IP do servidor para podermos fazer o acesso:

Image description

Ao fazer o acesso será solicitado o usuário, que no padrão para essa imagem de sistema que escolher é centos. E pronto, temos acesso ao shell do nosso servidor:

Image description

Antes de seguirmos, vamos criar um endereço de IP fixo para essa instância, senão toda vez que reiniciarmos o servidor ele vai iniciar com um IP diferente.

Acesse a aba Networking e escolha a opção Create static IP.

Image description

Escolha a instancia que criamos, defina o um nome para o IP stático e clique em Create.

Image description

Depois da criação será exibido o novo IP estático que iremos usar agora no nosso putty de forma permanente.

Agora que já estamos com nossa instância no ar, vamos partir para a instalação e configuração do servidor Couchbase e do Gateway.

Instalando o Couchbase Server

Vamos começar atualizando os pacotes:

sudo yum update -y
Enter fullscreen mode Exit fullscreen mode

Seguindo as instruções da documentação vamos digitar os comandos abaixo:

curl -O https://packages.couchbase.com/releases/couchbase-release/couchbase-release-1.0-x86_64.rpm

sudo rpm -i ./couchbase-release-1.0-x86_64.rpm

sudo yum install couchbase-server-community -y
Enter fullscreen mode Exit fullscreen mode

Agora vamos abrir as portas necessárias no firewall da AWS:

Use a opção Manage no console para acessar as configurações da instância:

Image description

Agora na abra Networking e use o botão Add rule para incluir as portas conforme imagem abaixo:

Image description

Com isso será possível acessar o console do Couchbase Server:

Image description

A partir daqui o passo a passo já foi abordado no artigo anterior dessa série, então vou passar agora para a instalação do Couchbase Gateway.

Instalando o Couchbase Gateway

Vamos precisar baixar um pacote, então vamos instalar o wget primeiro:

sudo yum install wget -y
Enter fullscreen mode Exit fullscreen mode

Agora seguindo o passo-a-passo da documentação vamos baixar o pacote com o comando abaixo:

wget http://packages.couchbase.com/releases/couchbase-sync-gateway/3.0.0-beta02/couchbase-sync-gateway-community_3.0.0-beta02_x86_64.rpm
Enter fullscreen mode Exit fullscreen mode

E agora a instalação:

sudo rpm -i couchbase-sync-gateway-community_3.0.0-beta02_x86_64.rpm
Enter fullscreen mode Exit fullscreen mode

O resultado é o gateway já rodando na porta 4984.

Image description

Vamos adicionar essas portas também ao firewall:

Image description

Assim como no artigo anterior, nesse ponto você precisa conseguir acessar o gateway e obter o retorno da API. Se não conseguir obter esse retorno, pare e revise os passos anteriores:

Image description

Agora vamos acessar as configurações do gateway e apontar ele para nosso servidor couchbase:

sudo nano /home/sync_gateway/sync_gateway.json
Enter fullscreen mode Exit fullscreen mode

Vamos alterar da mesma forma que fizemos no artigo anterior:

Image description

{
  "adminInterface": "127.0.0.1:4985",
  "interface": "0.0.0.0:4984",
  "databases": {
    "my-database": {
      "server": "http://127.0.0.1:8091",
      "bucket": "my-database",
      "username": "sync_gateway",
      "password": "******",
      "enable_shared_bucket_access": true,
      "import_docs": true,
      "num_index_replicas": 0,
      "users": {
        "GUEST": { "disabled": false, "admin_channels": ["*"] }
      }
    }
  },
  "logging": {
    "console": {
      "log_level": "debug",
      "log_keys": ["*"]
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Denovo... você precisa conseguir acessar a API após essa alteração antes de continuar.

Agora vamos executar o mesmo teste que fizemos no artigo anterior via poweshell para confirmar que tudo está funcionando corretamente:

Image description

E acessando o Couchbase Server devemos ver o registro que acabamos de inserir:

Image description

É isso aí! Temos um servidor na nuvem pronto para receber as requisições do nosso aplicativo.

No próximo artigo dessa série, vamos falar um pouco sobre segurança.

Nos vemos lá.

💖 💪 🙅 🚩
filipenanclarez
Filipe Nanclarez

Posted on February 26, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related