Comment migrer un compartiment AWS S3 vers un autre compte ou service – CloudSavvy IT
Le service de stockage simple (S3) d’AWS est idéal pour stocker de grandes quantités d’objets, mais il s’agit également d’une API compatible avec de nombreux autres services concurrents. Si vous souhaitez quitter AWS, le transfert d’un compartiment S3 est facile à faire.
Sommaire
Comment cela marche-t-il?
Si les deux services vers et depuis lesquels vous transférez sont compatibles S3, vous pouvez simplement utiliser un utilitaire tel que rclone
, configuré pour accéder à chaque service, pour transférer tous les éléments. Par exemple, vous pouvez effectuer un transfert de S3 vers le service Spaces compatible de Digital Ocean, ou effectuer un transfert d’un compartiment S3 d’un compte vers un autre compte.
Pour gérer le transfert, rclone
lira à partir du compartiment source, trouvera tous les fichiers qui doivent être transférés et gérera leur clonage dans le compartiment de destination. rclone
peut également gérer les mises à jour de fichiers, ce qui peut être utile si le compartiment source est en cours d’écriture pendant le transfert.
En ce qui concerne les temps de transfert, cela prendra probablement un certain temps en fonction de la taille du seau. Le nombre de fichiers est également un problème, car rclone
ajoute des frais généraux pour chaque transfert. Si vous avez des millions de fichiers ou plusieurs téraoctets, vous devez vous préparer à des heures de transfert.
Heureusement, vous pouvez effectuer le transfert initial important pendant que le compartiment est toujours en cours d’écriture. Vous aurez probablement besoin d’un peu de temps d’arrêt pour vous assurer que les compartiments sont synchronisés avant de basculer enfin. Si cela pose un problème, il existe d’autres outils disponibles pour un transfert transparent, y compris des outils commerciaux tels que NetApp Cloud Sync qui peuvent synchroniser plusieurs compartiments ensemble.
Certains services cloud, comme Google Cloud Platform, disposent de leurs propres services capables de gérer le transfert. Si vous passez à une plate-forme qui prend en charge cela, vous voudrez probablement utiliser leur service à la place.
EN RELATION: Comment transférer un bucket S3 vers Google Cloud Platform Storage
Configuration du rclone
La méthode la plus simple est de mettre en place rclone
sur votre propre serveur pour gérer l’opération de transfert. Vous devrez l’exécuter en arrière-plan ou via un tmux
fenêtre afin que vous puissiez vous déconnecter des longs transferts.
EN RELATION: Comment utiliser tmux sur Linux pour le multitâche de terminal
rclone
est disponible auprès de la plupart des gestionnaires de packages :
apt install rclone -y
rclone
est principalement destiné à transférer des fichiers localement ou entre des serveurs compatibles SSH, il faudra donc un peu de configuration pour gérer les transferts entre les services S3. Ce fichier se trouve à :
~/.config/rclone/rclone.conf
Ajoutez un nouveau bloc avec la configuration suivante, qui le connecte à votre compte AWS (pas un compartiment spécifique) :
[s3] type = s3 env_auth = false acl = private access_key_id = ACCESS_KEY secret_access_key = SECRET_KEY region = REGION location_constraint = LOCATION_CONSTRAINT
Vous devrez remplir la configuration avec votre clé d’accès et votre secret, et entrer la région de votre bucket. Vous pouvez trouver une liste des régions dans la documentation AWS.
Vous devrez remplir un autre bloc pour l’autre service vers lequel vous effectuez le transfert. Si vous passez d’un compte AWS à un autre, vous aurez besoin d’une clé distincte avec accès à ce compte. Si vous passez à un service comme DO Spaces, vous devrez définir un autre bloc avec un nouveau point de terminaison configuré :
[spaces] type = s3 env_auth = false acl = private access_key_id = ACCESS_KEY secret_access_key = SECRET_KEY endpoint = nyc3.digitaloceanspaces.com
Dans tous les cas, vous devrez lui donner un nouveau nom sur le titre du bloc, car ce sont deux télécommandes distinctes.
Effectuer le transfert
Une fois configuré, vous pourrez visualiser toutes les télécommandes possibles
rclone listremotes s3: spaces:
Vous pouvez afficher le contenu d’un compartiment en utilisant le nom du point de terminaison suivi de deux-points et du nom du compartiment.
rclone tree s3:source-bucket
Ensuite, vous pouvez exécuter la synchronisation, avec quelques indicateurs supplémentaires pour des performances optimales :
rclone sync source:/source-bucket destination:/destination-bucket -P -v --log-file /var/log/rclone/rclone-1.log --create-empty-src-dirs --s3-chunk-size 20M --s3-upload-concurrency 64 --checksum
le -P
flag vous permettra de visualiser la progression de manière interactive dans votre terminal et vous donnera une estimation du temps que cela va prendre.
rclone sync
analysera simplement le compartiment source et mettra à jour le compartiment cible. Vous pouvez continuer à modifier le compartiment source pendant la fin du transfert. Une fois l’opération terminée, vous pouvez exécuter des transferts supplémentaires et continuer à synchroniser les compartiments ensemble.