2017-07-24 3 views
0

J'essaie de transférer 25 tb de données stockées dans s3 d'un compte aws vers un autre compartiment s3 dans un autre compte AWS (tous deux dans différentes régions) à l'aide d'AWS CLI, quelqu'un peut-il me suggérer EC2 instance est préférable d'utiliser et de traiter le transfert de données avec CLI et surtout combien de temps il faudra pour terminer le transfert.Transfert de données AWS S3 à l'aide d'AWS CLI

+0

Si les gens sont intéressés à créer un lieu pour ce type de questions, suivez la proposition pour un [site de Cloud Computing dédié sur StackExchange] (https://area51.stackexchange.com/proposals/110490/cloud-computing-aws -azure-google-openstack-etc? referrer = Gtut7wQSWPk88jFJz_zqMg2) et votez pour quelques exemples de questions. –

Répondre

1

Copie de fichiers

copie est la partie facile! Utilisez le AWS Command-Line Interface (CLI):

aws s3 sync s3://source-bucket s3://destination-bucket 

Les données seront transférées directement entre les seaux - les données ne être téléchargé téléchargé &. Par conséquent, peu importe la taille de l'instance EC2 que vous utilisez, vous pouvez même exécuter la commande à partir de votre propre ordinateur et ce sera tout aussi rapide. L'interface de ligne de commande envoie les commandes de copie nécessaires à S3 pour chaque fichier à copier. L'utilisation de la commande sync a l'avantage que la copie peut être reprise en cas de problème, car elle ne copie que les fichiers manquants ou mis à jour depuis la précédente synchronisation.

Permission

Ce que vous aurez besoin de prendre en compte est la façon de permettre l'accès à copier les fichiers. Disons que vous avez:

  • compte A avec seau A
  • compte B avec godet B
  • Vous souhaitez copier du godet A à godet B

Vous devez exécuter la commande sync de un utilisateur ("Utilisateur B") dans le compte B qui a l'autorisation d'écrire dans le compartiment B.

Vous devez également ajouter une stratégie de compartiment au compartiment A qui autorise spécifiquement l'accès par l'utilisateur B. ressemblerait à quelque chose comme:

{ 
    "Id": "Policy1", 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Sid": "ReadOnlyAccess", 
     "Action": [ 
     "s3:GetObject", 
     "s3:ListBucket" 
     ], 
     "Effect": "Allow", 
     "Resource": "arn:aws:s3:::my-bucket/*", 
     "Principal": { 
     "AWS": [ 
      "arn:aws:iam::123456789012:user/user-b" 
     ] 
     } 
    } 
    ] 
} 

La valeur arn est l'utilisateur de B. ARN

Timing

Le transfert sera plus rapide si les seaux sont dans la même région. Cependant, je n'ai aucune idée de la durée du transfert. 25To est en fait beaucoup de données! (Avez-vous déjà essayé de copier 1 To de données sur un ordinateur? C'est lent!)

La bonne chose est que vous pouvez utiliser la commande aws s3 sync plusieurs fois. Disons que vous avez besoin que le transfert se fasse au cours d'un week-end. Vous pouvez exécuter la commande pendant la semaine, puis la relancer le week-end. Seuls les fichiers qui ont été ajoutés/modifiés seront copiés, de sorte que la fenêtre de copie finale sera assez petite.