Filipe Nanclarez
Posted on February 26, 2022
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:
Na tela de autenticação ele irá nos perguntar se queremos logar ou queremos criar uma nova conta. Vamos criar uma nova conta:
Prencha com seu e-mail e um nome de usuário e prossiga:
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.
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).
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.
Depois disso basta clicar no botão Create instance
O console irá mostrar a instância como pendente por um tempo, basta aguardar:
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:
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:
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:
Depois disso vamos voltar na primeira sessão e preencher o IP do servidor para podermos fazer o acesso:
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:
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.
Escolha a instancia que criamos, defina o um nome para o IP stático e clique em Create.
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
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
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:
Agora na abra Networking e use o botão Add rule para incluir as portas conforme imagem abaixo:
Com isso será possível acessar o console do Couchbase Server:
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
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
E agora a instalação:
sudo rpm -i couchbase-sync-gateway-community_3.0.0-beta02_x86_64.rpm
O resultado é o gateway já rodando na porta 4984.
Vamos adicionar essas portas também ao firewall:
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:
Agora vamos acessar as configurações do gateway e apontar ele para nosso servidor couchbase:
sudo nano /home/sync_gateway/sync_gateway.json
Vamos alterar da mesma forma que fizemos no artigo anterior:
{
"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": ["*"]
}
}
}
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:
E acessando o Couchbase Server devemos ver o registro que acabamos de inserir:
É 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á.
Posted on February 26, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.