Comment sauvegarder un compartiment AWS S3 sans contrôle de version du compartiment source [fermé]

43

Existe-t-il un moyen de récupérer des suppressions accidentelles d'un compartiment Amazon S3?

Nous avons des informations critiques dans nos seaux et je dois limiter le risque de suppressions accidentelles ou malveillantes du seau lui-même.

Je sais que je peux synchroniser l’ensemble du compartiment localement, mais cela n’est pas trop pratique si la taille de mon compartiment est de 100 Go.

Des idées sur les stratégies de sauvegarde?

anon
la source
Voici un guide de stratégie de sauvegarde S3 que j'ai écrit: eladnava.com/backing-up-your-amazon-s3-buckets-to-ec2
Elad Nava

Réponses:

23

Une autre approche consiste à activer le contrôle de version S3 sur votre compartiment. Vous pouvez ensuite restaurer les fichiers supprimés, etc. Voir la documentation S3 pour savoir comment activer cette option.

L'utilisation d'outils tiers tels que BucketExplorer rend l'utilisation de la gestion des versions assez simple (par opposition à l' appel direct de l'API).

Vous pouvez également activer la suppression de l'authentification multi-facteurs pour vos compartiments S3 - ce qui rend la "suppression accidentelle" un peu plus difficile;)

Plus d'informations sur l'authentification multifactorielle Supprimer
plus d'informations sur la suppression d'objets

contenu
la source
2
La question est d'y parvenir sans versioning.
Anuruddha
13

Vous pouvez utiliser s3cmd http://s3tools.org/s3cmd

Donc, pour sauvegarder un seau appelé mybucket

s3cmd mb s3://mybucket_backup
s3cmd --recursive cp s3://mybucket s3://mybucket_backup
Ian Purton
la source
3
Y a-t-il un moyen plus rapide de faire cela? S'il y a n clés dans le compartiment, il y a au moins n demandes de copie plus quelques-unes pour la liste (et probablement la vérification des résultats). Cela peut prendre un certain temps pour les grands seaux.
Kariem
1
Pourriez-vous détailler l'opération de sauvegarde lorsque mybucket est corrompu et qu'il est nécessaire de restaurer mybucket_backup?
Augustin Riedinger
7

Ce n'est pas une solution bon marché, mais si vos compartiments sont vraiment critiques, voici comment procéder: démarrez une instance Amazon EC2 et synchronisez-y périodiquement le contenu.

Amazon EC2 est leur fournisseur d'hébergement de virtualisation. Vous pouvez créer 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", qui dispose de 850 Go d'espace disque local.

Ce qui est cool, c’est que c’est sur le même réseau que S3 et que vous obtenez des transferts illimités entre S3 et EC2. J'utilise le logiciel Jungle Disk à 20 dollars sur une instance Windows EC2, ce qui me permet d'accéder à mes compartiments S3 comme s'il s'agissait de dossiers de disques locaux. Ensuite, je peux créer des fichiers de commandes planifiés pour copier des données 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, configurez JungleDisk (ou ses équivalents Linux) pour une synchronisation environ une fois par heure. Si quelqu'un supprime un fichier, vous avez au moins quelques minutes pour le récupérer à partir de EC2. Je recommanderais toutefois les sauvegardes scriptées habituelles: il est facile de conserver quelques jours de sauvegarde si vous les compressez sur un volume de 850 Go.

Ceci est très utile pour l'envoi de journaux SQL Server, mais je peux également voir comment cela permettrait d'atteindre votre objectif.

Brent Ozar
la source
Je suppose que vous pouvez utiliser une micro-instance et ajouter autant que vous le souhaitez EBS (Elastic Block Storage). Peut être une option moins chère.
Shawn Vader
En réalité, vous ne devriez pas, car la bande passante dédiée vers et depuis S3 dépend de la taille de l'instance EC2. Si vous voulez un débit important, vous avez besoin d'une grande instance (= $$$$). Mon ancien employeur a découvert cela à la dure.
John Cowan le
6

Une solution possible pourrait simplement consister à créer un "panier de sauvegarde" et à dupliquer vos informations sensibles à cet emplacement. En théorie, vos données sont plus sûres dans S3 que dans votre disque dur.

De plus, je ne sais pas si les suppressions accidentelles sont un réel problème, car vous devrez supprimer accidentellement toutes vos clés de compartiment avant de pouvoir supprimer le compartiment.

POINTE
la source
+1 car il serait assez difficile de supprimer "accidentellement" tout ce qui se trouve dans un seau, puis de supprimer ensuite le seau également.
10
si vous utilisez un outil tel que s3cmd, il n'est pas plus difficile d'effacer toute une arborescence de répertoires avecrm -rf
jberryman le
Qu'en est-il d'Amazon Glacier? Est-ce une option?
Tony
6

Une autre solution possible consiste à répliquer votre compartiment dans la zone Europe en S3. Cela peut persister dans le compartiment après votre suppression accidentelle suffisamment longtemps pour permettre la récupération.

Shawnswaner
la source
1
La réplication de seau est une excellente option. Pour une couche de protection supplémentaire, utilisez la réplication entre comptes pour vous assurer que toute violation du compte source n'entraînera pas de perte de données.
Gareth Oakley
6

Pour modifier (excellent) Brent répondre un peu; vous ne devriez pas avoir besoin de garder l'instance en marche. Créez une AMI EC2 qui extrait vos données, les synchronise sur un volume EBS, les instantanés de ce volume et se ferme automatiquement.

Vous pouvez également laisser le volume fonctionner seul, mais la capture instantanée devrait suffire pour une sauvegarde. Si votre AMI personnalisée fait tout cela (y compris en se fermant après l'avoir fait) sans interaction, alors votre script de sauvegarde doit simplement «ec2run -n 1 -t m1.small» et «feu et oublie».

Andrew Lusk
la source
J'aime cette idée que d'autres, c'est une solution plus raisonnable et moins chère.
BMW le