Rsync vers le compartiment AWS S3

26

Pour un serveur sur lequel j'héberge un site Web, je souhaite sauvegarder les données et les paramètres dans un compartiment S3. J'ai découvert que vous ne pouvez pas utiliser directement rsync pour effectuer une sauvegarde sur un compartiment S3. Existe-t-il un autre moyen d'obtenir la commande rsync suivante pour sauvegarder les données dans un compartiment S3?

rsync -­av ­/Data /s3bucket

Je veux également sauvegarder la base de données mysql sur ce serveur dans le compartiment S3. Quelle est la meilleure façon d'y parvenir?

Dernière question, si j'ai réussi à tout sauvegarder sur le S3. Quelle est la meilleure façon de restaurer le serveur en cas de plantage ou, dans le pire des cas, d'essuyage complet? Dois-je noter moi-même les paramètres du serveur et reconfigurer le serveur ou existe-t-il un moyen de sauvegarder également cela?

Bart Bergmans
la source

Réponses:

35

Pour communiquer avec s3, vous devez avoir 2 choses

  1. Informations d'identification utilisateur IAM disposant d'un accès en lecture-écriture au compartiment s3.
  2. Un client comme aws-cli pour bash, bibliothèque boto pour python etc.

une fois que vous avez les deux, vous pouvez transférer n'importe quel fichier de votre machine vers s3 et de s3 vers votre machine. Voici l'exemple de aws-cli.

  1. pour synchroniser tous les fichiers d'un dossier

    aws s3 sync source_folder s3://your_bucket_name/destination_folder/

  2. copier un fichier sur s3

    aws s3 cp source_file s3://your_bucket_name/destination_folder/

remplacez simplement source & destination dans la commande pour télécharger n'importe quel fichier depuis s3.

pour plus d'informations suivez aws docs

Gaurav Pundir
la source
1
Remarque: vous voudrez probablement exécuter "aws configure" en premier, afin de stocker vos informations d'identification, afin que vous n'ayez pas à les saisir à chaque synchronisation.
Tim Burch
1
Il convient de souligner que rsynccalcule les sommes de contrôle, côté client et côté serveur, puis les compare pour décider avec précision si un fichier a changé. Alors aws s3 syncque non - il utilise des tailles de fichier et des horodatages. Quelqu'un, s'il vous plaît, corrigez-moi si je me trompe?
Lqueryvg
13

Vous pouvez essayer rclone .

Configuration ( documents ):

rclone config

Synchronisation ( documents ):

rclone sync /my/local/folder s3service:bucket-name
Keith
la source
2
rcloneest un fantastique petit utilitaire!
Andrew Odendaal
1
1+ rclone, je l'ai trouvé v. Facile à utiliser et le développeur semble incroyablement actif et engageant
adampski
Cela semble bien, mais pouvez-vous expliquer quel est l'avantage par rapport à la synchronisation avec aws s3?
Kutzi
Il répond à l'exigence d'OP d'utiliser rsync. Je n'ai pas utilisé la synchronisation s3 ou rclone avec s3, donc je n'en sais plus.
Keith