Mover un bucket de Amazon S3 de una cuenta de AWS a otra suena sencillo... hasta que lo pruebes con de los datos. 4–5 terabytes En esta escala, los métodos habituales - o replicación de cuentas cruzadas: siente como enviar cada archivo a través de la paloma del portador.Están bien para gigabytes, pero estará esperando días (y pagando más de lo que desearía) por terabytes. aws s3 cp Eso es donde En mi caso, fue más que la forma “normal”, totalmente automatizada y segura. AWS DataSync 10× faster ¿Por qué DataSync para grandes migraciones? AWS DataSync está construido para el movimiento masivo de datos - piensan terabytes a petabytes. Mueve datos directamente entre los servicios de AWS (o desde on-prem a AWS) sin almacenamiento de intermediarios. Paraleliza las transferencias, haciendolas mucho más rápidas. Gestiona metadatos, etiquetas de objetos y ACL automáticamente. Se puede ejecutar de forma incremental para que pueda hacer un corte con un tiempo de inactividad mínimo. Cuando te estás moviendo Entre las cuentas de AWS, estos beneficios importan. 4–5 TB Paso 1: Prepárate para las bolsas Necesitamos dos botellas: El bucket de fuente en la cuenta original de AWS (la que contiene sus 5 TB de datos). El bucket de destino en la cuenta de AWS de destino. Ambos deben: Existe antes de comenzar. Estar en la misma región de AWS si desea máxima velocidad y menor coste. Tener la versión opcional (DataSync no lo requiere como la replicación). Paso 2: Roles y permisos IAM DataSync necesita permiso para leer desde la fuente y escribir hasta el destino, a través de cuentas. (Permitir que la función DataSync de la cuenta de destino y el usuario conectado lean y listen objetos) Source Bucket Policy { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role", "arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user" ] }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::source_bucket" }, { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role", "arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user" ] }, "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:PutObject" ], "Resource": "arn:aws:s3:::source_bucket/*" } ] } (Este es el papel que utiliza DataSync para acceder al bucket de fuente) Destination Account Role Policy { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::source_bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:ListBucket", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::source_bucket/*" } ] } (Permitir que el usuario de la función y la cuenta de destino de DataSync escriba datos) Destination Bucket Policy { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role", "arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user" ] }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::dist_bucket", "arn:aws:s3:::dist_bucket/*" ] } ] } Paso 3: Crear las ubicaciones de DataSync Necesitamos dos “lugares” – uno para el cubo de fuente, uno para el destino. Ejemplo de AWS CLI para bucket de fuente: aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::s3-source-01 \ --s3-storage-class STANDARD \ --s3-config BucketAccessRoleArn="arn:aws:iam::1234567890:role/datasync-role" \ --region us-east-1 Repita para el bucket de destino con su propio bucket ARN. Paso 4: Crear la Tarea de DataSync Una vez que se hayan creado ambas ubicaciones, configure una tarea de DataSync para copiar objetos de la ubicación de origen a la ubicación de destino. Usted puede: Permite copiar metadatos (preserva timestamps, etiquetas). Realice sincronizaciones incrementales hasta el corte final. Utilice la consola para monitorear la velocidad de transferencia y la finalización. Paso 5: Executar y monitorear la transferencia por , no está terminando en minutos, pero todavía verá una gran mejora en comparación con los métodos tradicionales. En mi migración, la diferencia de velocidad fue dramática - horas en lugar de días. 4–5 TB Tips para grandes transferencias La misma región es más barata y más rápida: los traslados transregionales pueden duplicar la factura. Las ejecuciones incrementales son su amigo: ejecute DataSync varias veces antes del corte final para que solo copie los cambios en la última ejecución. Mantenga el IAM apertado: está abriendo el acceso a la cuenta; elimine el IAM después de la migración. Marque la migración para que pueda rastrear los costes de transferencia en AWS Cost Explorer. Pensamientos finales Migración entre las cuentas de AWS que se utilizan para significar la elección entre o DataSync cambia esa ecuación, dando Sin script manual ni tiempo de inactividad. 5 TB of S3 data Lento y libre-ish Rápido y caro fast, secure, repeatable migrations Piense en ello como una actualización desde el transporte de vasos de agua hasta la instalación de un tubo de alta presión.Una vez que lo haya utilizado, no volverá.