Existe-t-il un moyen de récupérer des suppressions accidentelles d'un compartiment Amazon S3?
Nous avons des informations critiques dans nos compartiments et je dois atténuer le risque de suppressions accidentelles ou malveillantes du compartiment lui-même.
Je sais que je peux synchroniser l'ensemble du compartiment localement, mais ce n'est pas trop pratique si la taille de mon compartiment est de 100 Go.
Des idées sur les stratégies de sauvegarde?
Une autre approche consiste à activer la version S3 sur votre compartiment. Vous pouvez ensuite restaurer les fichiers supprimés, etc. Voir la documentation S3 pour savoir comment l'activer
L'utilisation d'outils tiers tels que BucketExplorer rend le travail de versioning assez trivial (par rapport à l'appel direct de l'API).
Vous pouvez également activer la suppression de l'authentification multifacteur pour vos compartiments S3 - ce qui rend la "suppression accidentelle" un peu plus difficile;)
Plus d'informations sur la suppression de l'authentification multifacteur
Plus d'informations sur la suppression d'objets
Vous pouvez utiliser s3cmd http://s3tools.org/s3cmd
Donc, pour sauvegarder un compartiment appelé mybucket
s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
Ce n'est pas une solution bon marché, mais si vos compartiments sont vraiment critiques, voici comment procéder: démarrez un instance Amazon EC2 et synchronisez-y le contenu régulièrement.
Amazon EC2 est leur fournisseur d'hébergement de virtualisation. Vous pouvez faire tourner des instances de Linux, Windows, etc. et exécuter tout ce que vous voulez. Vous payez à l'heure et vous obtenez un assez grand espace de stockage localement pour ce serveur. Par exemple, j'utilise l'instance de "grande" taille, fournie avec 850 Go d'espace disque local.
La partie intéressante est qu'il se trouve sur le même réseau que S3, et vous obtenez des transferts illimités entre S3 et EC2. J'utilise le logiciel $ 20 Jungle Disk sur une instance Windows EC2, qui me permet d'accéder à mes compartiments S3 comme s'il s'agissait de dossiers de disques locaux. Ensuite, je peux faire des fichiers batch planifiés pour copier des trucs hors de S3 et sur mon espace disque EC2 local. Vous pouvez l'automatiser pour conserver des sauvegardes toutes les heures si vous le souhaitez, ou si vous voulez jouer, configurer JungleDisk (ou ses équivalents Linux) pour se synchroniser une fois par heure environ. Si quelqu'un supprime un fichier, vous avez au moins quelques minutes pour le récupérer d'EC2. Je recommanderais cependant les sauvegardes scriptées régulières - il est facile de conserver quelques jours de sauvegardes si vous les compressez sur un volume de 850 Go.
C'est vraiment utile pour l'envoi de journaux SQL Server, mais je peux voir comment cela permettrait également d'atteindre votre objectif.
Une solution possible pourrait être de simplement créer un "compartiment de sauvegarde" et d'y dupliquer vos informations sensibles. En théorie, vos données sont plus sûres dans S3 que sur votre disque dur.
De plus, je ne sais pas si les suppressions accidentelles sont un vrai problème car vous devrez accidentellement supprimer toutes vos clés de compartiment avant de pouvoir supprimer le compartiment.
Pour modifier un peu la réponse de Brent (excellente); vous ne devriez pas avoir besoin de maintenir l'instance en cours d'exécution. Créez une AMI EC2 qui tire vos données vers le bas, les synchronise avec un volume EBS, prend des instantanés de ce volume et s'arrête.
Vous pouvez également maintenir le volume en cours d'exécution, mais la capture instantanée devrait suffire pour une sauvegarde. Si votre AMI personnalisée fait tout cela (y compris en s'arrêtant une fois terminé) sans interaction, alors votre script de `` sauvegarde '' doit simplement `` ec2run -n 1 -t m1.small AMI- '' et déclencher et oublier.
Une autre solution possible consiste à répliquer votre bucket vers la zone Europe en S3. Cela peut persister le compartiment après votre suppression accidentelle suffisamment longtemps pour récupérer.