J'ai besoin de déplacer l'ensemble des objets se trouvant dans un compartiment Amazon Simple Storage Service (S3) vers un autre compartiment S3. Comment puis-je migrer des objets d'un compartiment S3 à un autre ?

Pour copier des objets d'un compartiment S3 vers un autre, suivez la procédure suivante :

1.    Créez un nouveau compartiment S3.

2.    Installez et configurez l'interface de ligne de commande AWS (AWS CLI).

3.    Copiez les objets de l'un des compartiments S3 vers l'autre.

4.    Vérifiez que les objets sont copiés.

5.    Mettez à jour les appels d'API existants avec le nouveau nom du compartiment.

Avant de commencer, pensez à régler l'AWS CLI de manière à utiliser une plus grande concomitance pour augmenter les performances du processus de synchronisation. Pour en savoir plus concernant les options de configuration, consultez la page Configuration de l'AWS CLI S3. Pour en savoir plus concernant la tarification des transferts de données, consultez la page Tarification Amazon S3.

Si votre compartiment S3 contient un grand nombre d'objets (plus de 10 millions), pensez à utiliser les rapports d'Inventaire Amazon S3 et la surveillance des métriques d'Amazon CloudWatch pour optimiser le coût et les performances de la vérification des objets copiés. Vous pouvez également fractionner les commandes de synchronisation pour différents préfixes afin d'optimiser les performances de votre compartiment S3. Pour en savoir plus quant à l'optimisation des performances de votre charge de travail, consultez la page Considérations en matière de débit de demandes et de performances.

Création d'un nouveau compartiment S3

1.    Ouvrez la console Amazon S3.

2.    Choisissez Créer un compartiment.

3.    Choisissez un nom conforme DNS pour votre nouveau compartiment.

4.    Sélectionnez votre région AWS.
Remarque : la bonne pratique consiste à créer le nouveau compartiment dans la même région que le compartiment source pour éviter tous problèmes de performances associés à un trafic entre régions.

5.    Si nécessaire, choisissez Copier les paramètres d'un compartiment existant pour reproduire la configuration du compartiment source.

Installation et configuration de l'interface de ligne de commande AWS (AWS CLI)

1.    Installez l'interface de ligne de commande AWS.

2.    Configurez l'AWS CLI en exécutant la commande suivante :

aws configure

3.    Saisissez vos clés d'accès (ID de clé d'accès et clé d'accès secrète).

4.    Appuyez sur Entrée pour ignorer les options de région et de sortie par défaut. Pour en savoir plus concernant les paramètres de région, consultez la page Régions et points de terminaison AWS pour Amazon S3.
Remarque : les sorties de l'AWS CLI sont au format json, texte ou table, toutefois, ces derniers ne sont pas tous pris en charge par l'ensemble des commandes. Si la sortie de commande ne prend pas en charge le format choisi, celle-ci adoptera son propre format par défaut. Pour en savoir plus, consultez la page Contrôle de la sortie de commande de l'AWS Command Line Interface.

Copie des objets d'un compartiment S3 à un autre

1.    Si vous avez archivé des objets S3 dans Amazon Glacier, restaurez les objets stockés dans Amazon Glacier.

2.    Copiez les objets du compartiment source vers le compartiment cible en exécutant la commande de synchronisation suivante :

aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME

Remarque : mettez à jour la commande de manière à inclure les noms de vos compartiments source et cible.

La commande de synchronisation utilise les API CopyObject pour copier les objets d'un compartiment S3 à un autre. La commande de synchronisation répertorie le contenu des compartiments source et cible pour identifier les objets se trouvant dans le compartiment source mais pas dans le compartiment cible ou pour identifier les objets du compartiment source dont la date de dernière modification est différente de celle des objets du compartiment cible. La commande de synchronisation d'un compartiment existant en plusieurs versions copie uniquement la version actuelle de l'objet (les versions précédentes ne sont pas copiées). Par défaut, les métadonnées de l'objet sont préservées, mais les listes de contrôle d'accès de votre compte AWS sont définies sur FULL_CONTROL de manière à supprimer toute liste de contrôle d'accès supplémentaire. En cas d'échec de l'opération, vous pouvez à nouveau exécuter la commande de synchronisation sans dupliquer les objets précédemment copiés.

Vérification de la copie des objets

1.    Vérifiez le contenu des compartiments source et cible en exécutant la commande suivante :

aws s3 ls --recursive s3://SOURCE_BUCKET_NAME --summarize > bucket-contents-source.txt 
aws s3 ls --recursive s3://NEW_BUCKET_NAME --summarize > bucket-contents-new.txt

Remarque : mettez à jour la commande de manière à inclure les noms de vos compartiments source et cible.

2.    Comparez les objets des compartiments source et cible en utilisant les sorties enregistrées dans les fichiers du répertoire AWS CLI. Référez-vous à l'exemple de sortie ci-dessous :

$ aws s3 ls --recursive s3://BUCKETNAME --summarize
2017-11-20 21:17:39      15362 s3logo.png

  Total Objects: 1        Total Size: 15362

Mise à jour des appels d'API existants avec le nouveau nom du compartiment

Mettez à jour toute application ou charge de travail existante afin qu'elle utilise le nouveau nom de compartiment. Exécutez les commandes de synchronisation de manière à éviter les divergences entre les compartiments source et cible si vous êtes amené à effectuer des écritures fréquentes.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 23/01/2018

Date de mise à jour : 02/07/2018