Amazone S3 : Sauvegarde propres et automatisées avec Amazon S3

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

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) :

Command 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 :

Command 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 :

Command 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 :

Command
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 :

Configuration File 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 :

Command 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 :

Configuration File /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 :

Command chmod
chmod 600 /etc/passwd-s3fs

Pour finir, nous allons pouvoir monter tout ça dans /mnt par exemple (adaptez selon vos besoins) :

Command 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 :

Configuration File /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 :

Configuration File /etc/auto.as3
amazons3        -fstype=fuse,ouse_cache=/tmp,noatime,allow_other :s3fs\#monbucket_avec_un_nom_unique

Puis modifiez le fichier auto.master :

Configuration File 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