Como Configurar o Teu Próprio Servidor S3

Com o crescimento exponencial da nuvem, muitos terão ouvido falar sobre Amazon S3. Mas, e se eu lhe dissesse que pode ter algo semelhante no seu próprio canto do ciberespaço? Sim, pode! E não é uma tarefa titânica. Com ferramentas de código aberto como MinIO, é possível. Por isso, fique por aqui, porque vou guiá-lo na configuração do seu próprio servidor S3.

Porque ter o seu próprio S3?

Pode perguntar-se se realmente vale a pena, com tantas ofertas já disponíveis no mercado. Mas pense na autonomia, nos custos que poupa, na adaptabilidade de acordo com as suas necessidades. Ou simplesmente, pense no desafio e na diversão técnica que isso proporciona.

Conheça o MinIO, o protagonista da nossa história

MinIO é mais do que um simples software. É uma solução de armazenamento de objetos que se destaca pelo seu desempenho e que, para culminar, é de código aberto. Além disso, relaciona-se muito bem com a API da Amazon S3, então, se já está familiarizado com S3, com MinIO sentir-se-á em casa.

Instalando MinIO em Ubuntu 22.04

O início: Instalação

Vamos começar pelo início, sim? Supondo que já tem a sua máquina com Ubuntu 22.04 pronta:

Descarregue o MinIO:

Abra o seu terminal e digite:

wget https://dl.min.io/server/minio/release/linux-amd64/minio

Dê-lhe permissões:

Queremos que seja executável:

chmod +x minio

A arrancar: Primeira execução

Depois de instalado, é hora de o iniciar.

Execute o MinIO:

Suponhamos que decidiu guardar os seus dados em /data, para isso, primeiro executamos:

mkdir /data

Depois, podemos iniciar o software da seguinte forma, mas não é boa prática, pois pode-se aceder com o utilizador por defeito minioadmin e palavra-passe minioadmin:

./minio server /data

Para evitar o acima, pode executá-lo definindo utilizador e palavra-passe com as variáveis de ambiente definidas para esse fim:
Ou seja:

MINIO_ROOT_USER=usuario MINIO_ROOT_PASSWORD=senha ./minio server /data

Por exemplo:

root@MinIO:~# MINIO_ROOT_USER=AprendeIT MINIO_ROOT_PASSWORD=102371209673jhdef ./minio server /data 
MinIO Object Storage Server
Copyright: 2015-2023 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2023-10-16T04-13-43Z (go1.21.3 linux/amd64)

Status: 1 Online, 0 Offline. 
S3-API: http://146.255.69.234:9000 http://127.0.0.1:9000 
RootUser: AprendeIT 
RootPass: 102371209673jhdef

Console: http://146.255.69.234:46267 http://127.0.0.1:46267 
RootUser: AprendeIT 
RootPass: 102371209673jhdef

Command-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart
$ mc alias set 'myminio' 'http://146.255.69.234:9000' 'AprendeIT' '102371209673jhdef'

Documentation: https://min.io/docs/minio/linux/index.html
Aviso: A paridade padrão está definida para 0. Isto pode levar à perda de dados.

Esta forma de iniciar é mais segura, mas o software fica a executar-se em primeiro plano. Pode colocá-lo em background das seguintes formas:

  • Utilize um software como screen e execute-o.
  • Pode usar o nohup.
  • Outra opção é configurar um serviço com systemd.

Aceda e explore:

Agora pode ir ao seu navegador e escrever o endereço IP do servidor onde instalou o minIO e a porta 9000. Por exemplo, se o instalou localmente, pode escrever http://localhost:9000. Com as credenciais que configurou, poderá começar a explorar o mundo do MinIO.

Alta Disponibilidade com MinIO

Ter um servidor é bom, mas se queremos que seja fiável, devemos pensar em termos de alta disponibilidade.

MinIO distribuído, a arte de expandir

Se tem vários servidores, o MinIO tem-no coberto! Pode fazer com que trabalhem juntos num cluster distribuído. Imagine quatro servidores a trabalhar em conjunto, criando um robusto sistema de armazenamento distribuído.

Codificação de Borrado, ou como o MinIO protege os seus dados

Graças a esta técnica, o MinIO divide os seus dados em fragmentos distribuídos por todos os servidores. Se um falhar, não há problema; os dados podem ser reconstruídos a partir dos fragmentos nos outros servidores.

Balanceador de carga? Sim, por favor

Com vários servidores a aceitar pedidos, é aconselhável usar um balanceador de carga, como NGINX ou HAProxy. Assim, garante que o tráfego é distribuído adequadamente e de lidar com possíveis problemas de um dos nós.

Alternativas ao MinIO

Claro, o mundo do armazenamento de objetos é vasto e o MinIO não está sozinho. Vamos ver algumas alternativas:

Ceph com o seu Gateway S3

Vantagens:

  • Muito escalável.
  • Pode gerir não só armazenamento de objetos, mas também de blocos e sistemas de ficheiros.

Desvantagens:

  • Mais complexo de configurare instalar do que o MinIO.
  • Requer mais recursos para executar.

OpenStack Swift

Vantagens:

  • Projetado especificamente para escala e desempenho.
  • Integra-se bem com o ecossistema OpenStack.

Desvantagens:

  • Assim como o Ceph, pode ser complexo de configurar.
  • Dependente do ecossistema OpenStack para muitas funcionalidades.

Conclusão

Ter um servidor S3 personalizado não é só para gigantes da tecnologia. Com ferramentas como MinIO, você pode criar o seu próprio espaço de armazenamento de objetos no ciberespaço. Seja pela economia, personalização, ou simplesmente pelo desafio técnico, a capacidade de criar o seu próprio sistema de armazenamento pode ser extremamente gratificante. Investigue, experimente e, acima de tudo, divirta-se com este projeto!
Espero que este guia o tenha ajudado a dar os primeiros passos. Se tiver mais perguntas ou precisar de assistência adicional, estou aqui para ajudar!

Deixe um comentário