Como Montar um Bucket “S3” da Clouds2Africa

Às vezes, nos deparamos com a necessidade de compartilhar o armazenamento entre várias instâncias na nuvem ou on-premise no estilo do Amazon Elastic File System (EFS). Ou podemos hospedar os dados do nosso site em um bucket sem a necessidade de uma API, garantindo que o desempenho não seja significativamente afetado.

Antes de começarmos, vamos entender o que é o Object Storage é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e desempenho.

Um grande diferencial do Object Storage da Clouds2Africa para empresas/indivíduos nos países: Angola 🇦🇴 , Brasil 🇧🇷 , Nigéria 🇳🇬 e África do Sul 🇿🇦 é que os dados residem no país, garantindo baixa latência, desempenho excelente e conformidade com LGPD, GDPR e ANPD ou similares.

vamos para a instalação…

Aceda sua instancia via ssh, eu uso o Termius mas podes usar qualquer outro, mas o termius é o melhor 😎.

Atualização do Sistema

Antes de qualquer instalação, atualize a VM com os comandos (para Ubuntu):

sudo apt update && sudo apt upgrade -y

Instalação do s3fs

Vamos usar o s3fs no servidor , para isto, na vm digite o comando

sudo apt-get install s3fs

Crie um arquivo /etc/passwd-s3fs contendo suas credenciais do S3 no seguinte formato: ACCESS_KEY:SECRET_KEY

sudo nano /etc/passwd-s3fs

Substitua ACCESS_KEY and SECRET_KEY pelos valores reais de suas credenciais S3

ACCESS_KEY:SECRET_KEY

Defina as permissões do arquivo de credenciais passwd-s3fs

sudo chmod 600 /etc/passwd-s3fs

Crie uma pasta com o nome s3, ela será usado nos próximos passos para montar o object storage.

sudo mkdir /mnt/s3

Feito isto, mbora montar o nosso s3

s3fs s3-central /mnt/s3 -o passwd_file=/etc/passwd-s3fs -o allow_other -o url=https://obj-lad01.clouds2africa.com/ -o use_path_request_style

PS: não esqueça de alterar o nome do bucket s3-central para o seu bucket.

Após o comando. acima, não receberás qualquer resposta, use o comando df -h ou mount para verificar se o object storage foi montado corretamente:

root@ac-vm-tests3:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 98M 980K 97M 1% /run
/dev/vda1 15G 2.0G 13G 14% /
tmpfs 486M 0 486M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 6.1M 99M 6% /boot/efi
tmpfs 98M 4.0K 98M 1% /run/user/1000
s3fs 16E 0 16E 0% /mnt/s3

Conseguimos ver o último elemento da lista, é o nosso s3, mostrando que foi devidamente montado.

Vamos aceder o object storage e criar uma pasta, um arquivo .txt e lista-los, de igual modo verificar na console do object storage da clouds2africa a existência.

root@ac-vm-tests3:~# cd /mnt/s3/
root@ac-vm-tests3:/mnt/s3# ls
root@ac-vm-tests3:/mnt/s3# mkdir s3clouds2africa
root@ac-vm-tests3:/mnt/s3# cd s3clouds2africa/
root@ac-vm-tests3:/mnt/s3/s3clouds2africa# nano s3.txt
root@ac-vm-tests3:/mnt/s3/s3clouds2africa# ls
s3.txt
root@ac-vm-tests3:/mnt/s3/s3clouds2africa#

via cli é possível aceder o object storage, bem como fazer as operações anteriormente citadas.

Acedendo a console do object storage, é possível visualizar a pasta e os arquivos criados pela vm:

s3 console / pasta
s3 console / arquivos

Neste momento temos o storage montado como drive, o que permite o seu normal acesso e partilha de files como se de uma pasta partilhada na rede se trata-se.

No entanto com a configuração feita ate aqui, se desligarmos ou reinicializarmos a vm, o Storage será desmontado e teríamos de refazer o Mount toda vez que isto acontecesse.

Para resolver isto, vamos editar o ficheiro fstab e adicionar uma linha no final, isto garantirá que o s3 seja montado automaticamente durante a inicialização da VM:

sudo nano /etc/fstab

Com o ficheiro fstab aberto adicione os parâmetros do Storage:

s3fs#s3-central /mnt/s3 fuse _netdev,allow_other,passwd_file=/etc/passwd-s3fs,url=https://obj-lad01.clouds2africa.com/,use_path_request_style 0 0

A nova linha no arquivo deve ter a aparência da imagem abaixo:

faça reboot na VM para validar se a configuração esta a funcionar como definido.

root@ac-vm-tests3:/mnt/s3/s3clouds2africa# sudo reboot

PS: Não faça isto em produção, caso não sejas o Rambo 😎

Após a VM reiniciar, use o comando df -h ou mount para verificar se o Storage foi novamente montado corretamente:

ubuntu@ac-vm-tests3:~$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 96M 984K 95M 2% /run
/dev/vda1 15G 1.9G 13G 14% /
tmpfs 479M 0 479M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 6.1M 99M 6% /boot/efi
s3fs 16E 0 16E 0% /mnt/s3
tmpfs 96M 4.0K 96M 1% /run/user/1000

Como podemos ver, a penúltima linha, o nosso s3 esta montando persistentemente e somente será desmontado manualmente.