Amazone S3 : Sauvegarde propres et automatisées avec Amazon S3
Contents
1 Introduction
Pour ceux qui ne connaissent pas, Amazon S3 est un service de sauvegarde à distance. Les avantages sont :
- le prix
- la bande passante
- le stockage
Je vous laisse regarder la liste des prix pour vous en rendre compte.
Il n'y a pas vraiment de logiciel fourni, mais plutôt une API. Et avec la bouteille que ça a maintenant, des petits gars s'y sont frottés et nous ont pondu des trucs plutôt sympas :-)
Je vais donc ici décrire comment j'ai fait pour faire un truc assez sexy et économe.
2 Installation
On va installer déjà les commandes de bases (au cas ou) :
apt-get |
apt-get install s3cmd |
Puis on va installer le nécessaire pour Fuse qui nous permettra de naviguer sur Amazon S3 comme si c'était un filesystem monté. Nous installons ici les librairies de developpement pour la compilation :
apt-get |
apt-get install libcurl4-openssl-dev libxml2-dev libfuse-dev make g++ fuse-utils |
Note : Si vous avez déjà le binaire s3fs (donc pas de compilation à faire) installez seulement ces packages :
apt-get |
apt-get install libcurl3 libfuse2 fuse-utils |
2.1 Compilation
Il va maintenant falloir télécharger les sources de Fuse Over Amazon, puis les compiler :
wget http://s3fs.googlecode.com/files/s3fs-1.40.tar.gz tar -xzf s3fs-1.40.tar.gz cd s3fs-1.40 ./configure --bindir /usr/bin make make install |
3 Configuration
Nous allons tout d'abord utiliser s3cmd afin de créer notre bucket (dossier perso pour amazon s3), puis l'utiliser avec Fuse.
3.1 s3cmd
Configurons d'abord notre compte en lançant la commande suivante :
s3cmd |
s3cmd --configure |
Remplissez tous les champs à l'aide des informations sur votre compte. Le plus important est l'access key et la secret key. Puis une fois fait, nous allons créer notre bucket :
s3cmd |
s3cmd mb monbucket_avec_un_nom_unique |
Il est important de créer un bucket avec un nom bien spécifique car tout le monde se retrouve en gros sur le même filesystem. Donc si le nom existe déjà, vous ne pourrez pas créer ce bucket.
3.2 FuseOverAmazon
Créons le fichier /etc/passwd-s3fs et renseignons les infos comme suit :
/etc/passwd-s3fs |
access_key:secret_key |
Entrez ici votre access key, suivit de ':', puis votre secret key.
Puis nous allons appliquer les droits qui vont bien :
chmod |
chmod 600 /etc/passwd-s3fs |
Pour finir, nous allons pouvoir monter tout ça dans /mnt par exemple (adaptez selon vos besoins) :
s3fs |
s3fs monbucket_avec_un_nom_unique /mnt -ouse_cache=/tmp |
Et voilà :-). Vous pouvez faire des ls, mkdir, cp, rm etc... dans /mnt et ça tapera sur votre backup d'amazon S3 :-).
3.3 Fstab
Et si on souhaites mettre tout ce beau monde dans fstab ? Ceci est biensure optionnel, mais très pratique :
/etc/fstab |
s3fs#monbucket_avec_un_nom_unique /mnt fuse ouse_cache=/tmp,noatime,allow_other 0 0 |
Voici donc la ligne à rajouter.
3.4 AutoFS
Le fin du fin, c'est avec autofs ! Je vous invite à lire cette doc d'abord pour ne pas être trop dérouter, puis ajoutez cette ligne dans un fichier auto.as3 par exemple :
/etc/auto.as3 |
amazons3 -fstype=fuse,ouse_cache=/tmp,noatime,allow_other :s3fs\#monbucket_avec_un_nom_unique |
Puis modifiez le fichier auto.master :
auto.master |
/mnt /etc/auto.as3 --timeout=60 |
Redémarrer le service autofs pour que celà fonctionne.
4 Sauvegardes avec des logiciels précis
Avec certains logiciels, il faut ruser pour outrepasser les 5Go de limitation par fichier imposé par Amazon S3 ou de multiples fichiers en en trop grand nombre qui vont nous couter cher.
4.1 Sbackup
Pour Sbackup, c'est assez simple, il va falloir regarder si la taille du fichier est suppérieure à 5 Go et découper le fichier files.tgz.
4.2 BackupPc
Pour BackupPc, il est conseillé de faire une compression de l'existant avant de l'uploader car il y a souvent beaucoup trop de petits fichiers.
5 Ressources
http://code.google.com/p/s3fs/wiki/FuseOverAmazon
http://s3tools.org/s3cmd