terça-feira, março 24, 2020

Montando Cantinho na "Nuvem" para Chamar de Seu

Existem vários motivos para você querer um cantinho ("servidor") na internet. No meu caso são algumas brincadeiras de IOT, onde quero poder acessar remotamente (via celular ou PC) dispositivos que vou instalar em casa. Para conseguir comunicar uma das pontas precisa ter um endereço conhecido e as conexões a internet domésticas não costuma ter IP fixo (existem alternativas como o "dynamic dns").

A solução que vou adotar consiste em ter um endereço IP fixo "na nuvem" que funcionará como uma espécie de "caixa postal" entre as duas pontas.

O objetivo aqui não é fazer um tutorial passo a passo, mas passar alguns links e comentários sobre o caminho que estou seguindo (que pode não ser o mais apropriado para você).

O primeiro passo é alugar um "servidor" (na verdade um pedaço dele) na nuvem. Existem várias opções para isto, eu acabei optando pelo Nanode da Linode. É uma maquina virtual bem modesta, que compartilha uma CPU com outras, mas custa US$5/mês* e inclui um IP fixo. A configuração da máquina é 1G Ram, 1 CPU Core, 25 GB SSD e 1T de transferência.

* Para ser mais preciso, a cobrança é por hora de CPU ligada. Se você quiser mais área de armazenamento, mais tráfego ou backup, tem que pagar adicional.

Uma coisa que eu gostei, como iniciante no assunto, é a disponibilidade de tutoriais e how-tos. Nas primeiras semanas vem vários emails com dicas, mas depois eles não importunam. O inicio é explicado em https://www.linode.com/docs/getting-started. Tem várias distribuições Linux para você escolher (lembrando que você vai operar por linha de comando). Eu optei pelo Ubunto, por ser um sistema largamente usado o que facilita achar dicas.

Em seguida não deixe para depois de reforçara a segurança, seguindo https://www.linode.com/docs/security/securing-your-server/.


Um item opcional é você adquirir um domínio. Eu usei o registro.br que cobra R$40 por ano (tem desconto se você pagar vários anos adiantado). Tem muitas outras opções com domínios mais divertidos que ".br"  e preços melhores (ou não, dependendo do dólar);

Para poder brincar com APIs REST (e talvez montar uns sitezinhos) é bom instalar um servidor web. Eu optei pelo lighttpd (https://www.linode.com/docs/web-servers/lighttpd/use-lighttpd-web-server-on-ubuntu-16-04/). Um detalhe é que o Ubunto vem com o UFW ligado, você precisa permitir conexões na porta do seu servidor web (normalmente 80).

A gente sabe que o S em IOT é de segurança, certo? Então vamos nos preparar para usar https. Eu usei o certificado do Let's encrypt que é gratuito; um exemplo de tutorial de como criar o certificado e usar com o lightppd pode ser visto aqui.

É neste ponto que estou por enquanto. O próximo passo vai ser criar alguma API simples em python, quando fizer isto dou notícias aqui no blog.

Nenhum comentário: