Almacenamiento S3 (Amazon y Oracle)
Descripción
Procedimientos para el uso y montaje de bucket amazon s3
Prerrequisitos
Debe crear un bucket en amazon.
Debe crear un usuario IAM con permisos en s3, ojo debe tener en cuenta el acces key y su llave, esto para poder montar el bucket desde el servidor.
Procedimiento
A. Instalación básica
S3FS
Haga una instalación basica de s3fs
→ apt-get install s3fs
cree el archivo passwd-s3fs
→ vi /etc/passwd-s3fs
en este archivo solamente debe poner el id y la llave del usuario que va realizar la conexión.
Ejemplo : AKIAICY5FFXE3TPO2UZQ:JE65BmW+j6yMJrll93C5NZuJchwpwNUyZ9QBLH3N
→ chmod 600 /etc/passwd-s3fs
ya con este archivo puede hacer la conexión al bucket
OJO
mount-s3
Hay otro mecanismo mas nuevo llamado mountpount s3
https://aws.amazon.com/blogs/storage/the-inside-story-on-mountpoint-for-amazon-s3-a-high-performance-open-source-file-client/
https://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/mountpoint-installation.html
B. Montaje del bucket
1. Comando para el montaje del bucket
S3FS
Con este comando puede hacer el montaje del bucket
→ s3fs NOMBRE_BUCKET PUNTO_MONTAJE -o passwd_file=/etc/passwd_s3fs
→ dh -f
podra ver el bucket montado.
s3fs [bucket] [destination directory] -o endpoint=[region] -o passwd_file=${HOME}/.passwd-s3fs -o url=https://[namespace].compat.objectstorage.[region].oraclecloud.com/ -onomultipart -o use_path_request_style
O Puede colocarlo en el fstab
s3fs#mybucket:/bodega /bodega fuse _netdev,allow_other,umask=0002,use_cache=/tmp/ 0 2
SI es remoto fuera de amazon, debe ser algo como
s3fs#mybucket /mnt/dest fuse _netdev,allow_other,url=https://s3.amazonaws.com 0 0
mount-s3
El nuevo mecanismo .. que es mas rapido y eficiente PERO no es un completo: No funcionan los vinculos y varios temas. Ideal para dejarlo como ReadOnly
https://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/mountpoint.html
El script de montar usando el mount-s3 para mi es
#!/bin/bash if [[ $USER != "www-data" ]]; then echo "OJO: Debe correrlo con sudo -u www-data" exit 1 fi export AWS_ACCESS_KEY_ID="AKIFM47F3UP4N" export AWS_SECRET_ACCESS_KEY="/3Wgkj/7hXVgSlb00GYabh" mount-s3 --allow-delete --allow-overwrite --allow-root --dir-mode 775 --file-mode 664 --uid 33 --gid 33 "my_bucket" /bodega # mount-s3 --allow-delete --allow-overwrite --allow-root --dir-mode 775 --file-mode 664 --uid 33 --gid 33 --cache /dk1/tmp "my_bucket" /bodega # mount-s3 --allow-delete --allow-overwrite --allow-root --dir-mode 775 --file-mode 664 --uid 33 --gid 33 --cache /dk1/tmp --prefix "bodega/" "my_bucket" /bodega
OJO: ese montaje no se muestra con df .. tocar ejecutar mount y mirar si esta
2. Comando para el automontaje del bucket
Edite el archivo /etc/fstab y agrege la siguiente linea
s3fs#skn-home:/ /home fuse defaults,_netdev,allow_other,umask=022,use_cache=/tmp/ 0 0
Pruebe la regla
→ mount -av
si todo sale bien ya debe poder ver el bucket montado.
Trucos
1. Subir muchos archivos a S3
Lo mejor y mas rapido es usar el aws cli porque RINDE MUCHO
Monte aws cli
wget "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" unzip awscli-exe-linux-x86_64.zip cd aws/ ./install /usr/local/bin/aws --version
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Ahora configurelo con el par de llaves y la zona
aws configure
Una vez tenga eso .. ya puede hacer la copia con
aws s3 cp /mnt/orig/ s3://mybucket-en-amazon/ --recursive
https://codingsight.com/upload-files-to-aws-s3-with-the-aws-cli/
Problemas
1. Si el instale_mrtg.sh no le funciona, no puede....
Referencias
Yo solo use desde instalar el s3fs ya que en debian ya viene listo para instalar
Amazon
-https://kerneltalks.com/cloud-services/how-to-mount-s3-bucket-in-linux-server/
-http://linuxroutes.com/mount-s3-bucket-linux-centos-rhel-ubuntu-using-s3fs/
Oracle
- https://blogs.oracle.com/cloud-infrastructure/post/mounting-an-object-storage-bucket-as-file-system-on-oracle-linux
- https://database-heartbeat.com/2022/10/26/mount-bucket-as-file-system/
FIN