Faire un backup de son blog sur Amazon S3
On utilise Amazon S3 depuis 3 mois pour les fichiers statiques de 64k. Il s’agit d’un service d’hébergement très performant et bon marché utilisant l’infrastructure de serveurs d’Amazon. Mais S3 sert également à faire des backups, ce qui nous intéresse plus particulièrement dans ce billet.
J’avais déjà vu cet article de Paul Stamatiou qui explique comment faire un backup de son site avec ce service, mais je n’avais pas vraiment pris le temps de tester. Je suis tombé sur un billet de Christina Warren qui m’a décidé, puisqu’il décrit toute la procédure pour faire un backup d’un (gs) Grid-Service de Media Temple sur Amazon S3. Justement le même hébergement que 64k.
La procédure devrait également fonctionner si votre hébergement dispose d’un accès SSH et de Ruby On Rails, mais elle est principalement destinée aux (gs) Grid-Service. Mais bon comme presque tout le monde en a un ^-^
Pour commencer, connectez-vous en SSH à votre serveur :
ssh serveradmin%monblog.com@monblog.com
Récupérez S3Sync avec wget :
wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
Décompressez l’archive
tar xvzf s3sync.tar.gz
Excécutez cette série de commande :
rm s3sync.tar.gz cd s3sync mkdir certs cd certs wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar sh ssl.certs.shar cd .. mkdir s3backup
Cela va supprimer l’archive, créer les différents dossiers et mettre en place les certificats SSL nécessaires à S3.
Maintenant il faut aller dans le dossier /users/.home/s3sync que vous venez de créer et éditer le fichier s3config.yml.sample avec vos aws_access_key et aws_secret_access_key.
aws_access_key_id: XXXXXXXXXXXXXXXXXXXX aws_secret_access_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ssl_cert_dir: /home/XXXXX/users/.home/s3sync/certs AWS_CALLING_FORMAT: SUBDOMAIN
ssl_cert_dir correspond au chemin vers votre dossier SSL, c’est-à-dire /home/xxxxx/users/.home/s3sync/certs où xxxx est le nom de votre serveur. Vous pouvez connaitre ce dernier en tapant pwd en mode console. Il faut également ajouter cette ligne : AWS_CALLING_FORMAT: SUBDOMAIN.
Sauvez ce fichier et renommer le en s3config.yml.
Editez le fichier __s3config.rb __et remplacer la ligne avec confpath = [xxxxx] par
confpath = ["./", "#{ENV['S3CONF']}", "#{ENV['HOME']}/.s3conf", "/etc/s3conf"]
Maintenant téléchargez le script backup_server.sh et modifiez-le avec vos paramètres (le dossier de votre blog à sauvegarder, le nom de votre serveur à la place de xxxxx, vos paramètres MySQL, le nom de votre bucket S3, etc).
Placer ce fichier dans le dossier /data et modifier ses permissions (755) :
chmod a+x backup_server.sh
Vous pouvez maintenant testez le script :
cd data ./backup_server.sh
Si tout fonctionne vous devriez trouver les backups sous forme d’archive gzip sur votre bucket Amazon S3.
[caption id=“attachment_914” align=“aligncenter” width=“400” caption=“Backup Amazon S3”][/caption]
Pour peaufiner le tout, il ne reste plus qu’à configurer une tâche journalière qui va s’occuper de faire ça automatiquement. Il faut vous rendre dans l’interface de votre (gs) Grid-System et cliquer sur Cron Jobs. Le chemin de votre est script est :
/home/xxxxx/data/backup_server.sh
Et voilà, votre blog sera désormais sauvegardé chaque jour !
1 reply on “Bonjour tout le monde !”