En esta página, se muestra cómo crear y, luego, iniciar trabajos de transferencia de Amazon S3 a Cloud Storage.
Configura permisos
Antes de crear una transferencia, debes configurar los permisos en tu bucket de Amazon S3. Consulta Configura el acceso a una fuente: Amazon S3 para obtener más detalles.
También debes configurar los permisos para las siguientes entidades deGoogle Cloud :
La cuenta de usuario que se usa para crear la transferencia. Esta es la cuenta con la que se accedió a la consola de Google Cloud o la cuenta que se especificó cuando se realizó la autenticación en la CLI de "gcloud". La cuenta de usuario puede ser una cuenta de usuario normal o una cuenta de servicio administrada por el usuario. | |
La cuenta de servicio administrada por Google, también conocida como agente de servicio, que usa el Servicio de transferencia de almacenamiento. Por lo general, esta cuenta se identifica por su dirección de correo electrónico, que usa el formato project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
Consulta Permisos de transferencia sin agente para obtener instrucciones.
Opciones de salida
El Servicio de transferencia de almacenamiento ofrece varias opciones para transferir tus datos de S3 a Cloud Storage.
Opción de salida | Descripción |
---|---|
Predeterminado sin agente | Esta opción usa una transferencia administrada y sin agentes desde S3. Amazon te cobra la salida.
Sigue las instrucciones de esta página para usar esta opción. |
Distribución de CloudFront | Usa una distribución de Amazon CloudFront como ruta de salida. Las transferencias de datos a través de CloudFront pueden beneficiarse de costos de salida de AWS más bajos en comparación con la transferencia directa desde S3. Consulta los precios de CloudFront y los cargos de salida de S3 para obtener más detalles.
Sigue las instrucciones en Transferencia desde S3 a través de CloudFront para configurar tu distribución y crear una transferencia. |
Red privada administrada | Transfiere tus datos a través de una red administrada por Google. No pagas cargos de salida de S3. En cambio, pagas una tarifa por GiB aGoogle Cloud. Consulta la página de Precios para obtener más detalles. Es posible que AWS te cobre cargos operativos (p.ej., Llamadas a LIST o GET : Consulta sus precios para obtener más detalles.
Todas las transferencias de los proyectos a través de la red privada administrada comparten el mismo ancho de banda. En momentos de uso intenso, es posible que la transferencia se ralentice. Las transferencias con archivos grandes se ven más afectadas que las que tienen archivos pequeños. Sigue las instrucciones de esta página para usar esta opción. Especifica la opción Red privada administrada en la consola de Google Cloud o el campo managedPrivateNetwork en la API de REST. Gcloud CLI y las bibliotecas cliente no admiten transferencias de redes privadas administradas. Consulta las regiones admitidas. |
Impulsado por el agente | Es válido para todo el almacenamiento compatible con S3, incluido Amazon S3. Si instalas software de agente en máquinas con acceso a tus buckets de S3, puedes controlar la ruta de red y el ancho de banda. Esta opción requiere agentes y grupos de agentes.
Sigue las instrucciones en Transfiere desde fuentes compatibles con S3 para usar esta opción. |
Regiones admitidas
El Servicio de transferencia de almacenamiento admite las siguientes regiones de Amazon S3:
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ap-southeast-2 ap-southeast-3 |
ap-southeast-4 ca-central-1 ca-west-1 eu-central-1 eu-central-2 eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2
|
eu-west-3 il-central-1 me-central-1 me-south-1 sa-east-1 us-east-1 us-east-2 us-west-1 us-west-2
|
ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ca-central-1 ca-west-1 eu-central-1 eu-central-2 |
eu-north-1 eu-south-1 eu-south-2 eu-west-1 eu-west-2 eu-west-3 us-east-1 us-east-2 us-west-1 us-west-2
|
Opciones de transferencia
Las siguientes funciones del Servicio de transferencia de almacenamiento están disponibles para las transferencias de S3 a Cloud Storage
- Transfiere archivos específicos con un manifiesto
- Puedes pasar una lista de archivos para que el Servicio de transferencia de almacenamiento actúe sobre ellos. Consulta Transfiere objetos o archivos específicos con un manifiesto para obtener más detalles.
- Filtra objetos de origen por prefijo o por hora de última modificación
-
Puedes incluir o excluir objetos de la transferencia según el nombre de archivo y la ruta de acceso, o bien según la fecha y hora de la última modificación.
Los filtros de prefijo se describen en Filtros de prefijo.
Los filtros basados en el tiempo incluyen los siguientes:
- Tiempo mínimo y máximo transcurrido desde la última modificación. Ambos aceptan un valor en segundos para filtrar los objetos que se modificaron o no dentro de un período determinado.
- Última modificación desde y Última modificación antes del, que aceptan un valor de fecha y hora.
Ten en cuenta que los filtros basados en el tiempo para las transferencias de S3 dependen de la definición de AWS de "hora de la última modificación", que es la hora en la que un objeto comienza su carga. Dado que un objeto no está disponible hasta que finaliza la carga, es posible que encuentres objetos cuya hora de última modificación cumpla con tus criterios de filtro, pero que aún se estén subiendo. Estos objetos no se incluirán en tu trabajo de transferencia. Para evitar problemas, te recomendamos lo siguiente:
- En lugar de filtros basados en el tiempo, usa [transferencias basadas en eventos](/storage-transfer/docs/event-driven-aws) para transferir objetos a medida que estén disponibles.
- Para evitar que falten objetos en las transferencias recurrentes, el período de observación de la "fecha y hora de la última modificación" debe ser mayor que la programación recurrente. Por ejemplo, para un trabajo que se ejecuta cada hora, un período de dos horas proporciona un búfer.
- Especifica la clase de almacenamiento
- Puedes especificar la
clase de almacenamiento de Cloud Storage que se usará para tus datos en el bucket de destino. Consulta las opciones de
StorageClass
para obtener detalles sobre REST o usa la marca--custom-storage-class
con Google Cloud CLI.Ten en cuenta que se ignorará cualquier parámetro de configuración de la clase de almacenamiento si el bucket de destino tiene habilitada la opción Autoclass. Si Autoclass está habilitada, los objetos transferidos al bucket se establecen inicialmente en Standard Storage.
- Conservación de metadatos
-
Cuando se transfieren archivos desde S3, el Servicio de transferencia de almacenamiento puede conservar de manera opcional ciertos atributos como metadatos personalizados.
Consulta la sección Amazon S3 a Cloud Storage de Conservación de metadatos para obtener detalles sobre qué metadatos se pueden conservar y cómo configurar tu transferencia.
- Transferencias basadas en eventos
- El Servicio de transferencia de almacenamiento puede escuchar las notificaciones de eventos de Amazon S3 que se envían a Amazon SQS para transferir automáticamente los datos que se agregaron o actualizaron en la ubicación de origen. Consulta Transferencias controladas por eventos para obtener más información.
- Registro y supervisión
- Las transferencias desde S3 se pueden ver en Cloud Logging y Cloud Monitoring. Consulta Cloud Logging para el Servicio de transferencia de almacenamiento y Supervisa los trabajos de transferencia para obtener más detalles. También puedes configurar notificaciones de Pub/Sub.
Crear una transferencia
El Servicio de transferencia de almacenamiento proporciona varias interfaces a través de las cuales se puede crear una transferencia.
No incluyas información sensible, como información de identificación personal (PII) ni datos de seguridad en el nombre de tu trabajo de transferencia. Los nombres de recursos se pueden propagar a los nombres de otros recursos de Google Cloud y se pueden exponer a los sistemas internos de Google fuera de tu proyecto.
Google Cloud console
Ve a la página Servicio de transferencia de almacenamiento en la Google Cloud consola.
Haz clic en Crear trabajo de transferencia. Se muestra la página Crea un trabajo de transferencia.
En Tipo de fuente, selecciona Amazon S3.
Como Tipo de destino, selecciona Google Cloud Storage.
Selecciona tu Modo de programación. Las transferencias por lotes se ejecutan de forma única o programada. Las transferencias basadas en eventos supervisan continuamente la fuente y transfieren datos cuando se agregan o modifican.
Para configurar una transferencia basada en eventos, sigue las instrucciones que se indican en Transferencias basadas en eventos.
Haz clic en Próximo paso.
En el campo Nombre del bucket o la carpeta, ingresa el nombre del bucket de origen.
El nombre del depósito es el nombre que aparece en la consola de administración de AWS.
Si usas una distribución de CloudFront para transferir datos desde S3, ingresa el nombre de dominio de la distribución en el campo Dominio de CloudFront. Por ejemplo,
https://dy1h2n3l4ob56.cloudfront.net
Consulta Transferencia desde S3 a través de CloudFront para configurar una distribución de CloudFront.Para usar una red privada administrada para esta transferencia, selecciona la casilla de verificación. Consulta Opciones de salida para obtener más detalles.
Selecciona el método de autenticación de Amazon Web Services (AWS). Consulta Configura el acceso a una fuente: Amazon S3 para obtener más información.
Clave de acceso: Ingresa tu clave de acceso en el ID de la clave de acceso el secreto asociado con tu clave de acceso en Clave de acceso secreta.
Rol de IAM de AWS para la federación de identidades: Ingresa tu ARN en el campo Rol de IAM de AWS con la siguiente sintaxis:
arn:aws:iam::ACCOUNT:role/ROLE-NAME-WITH-PATH
Aquí:
ACCOUNT
: El ID de la cuenta de AWS sin guiones.ROLE-NAME-WITH-PATH
: El nombre del rol de AWS, incluida la ruta de acceso.
Para obtener más información sobre los ARN, consulta ARN de IAM.
Recurso de Secret: Selecciona esta opción para usar una credencial de Amazon guardada en Secret Manager. Selecciona un secreto de la lista o ingresa uno manualmente en el formato
projects/PROJECT_NUMBER/secrets/SECRET_NAME
.
Si se trata de una transferencia basada en eventos, ingresa el ARN de la cola de Amazon SQS, que tiene el siguiente formato:
arn:aws:sqs:us-east-1:1234567890:event-queue
- De manera opcional, elige filtrar objetos por prefijo o por fecha de última modificación. Si especificaste una carpeta como ubicación de origen, los filtros de prefijo son relativos a esa carpeta. Por ejemplo, si tu fuente es
my-test-bucket/path/
, un filtro de inclusión defile
incluye todos los archivos que comienzan conmy-test-bucket/path/file
. Haz clic en Próximo paso.
En el campo Bucket o carpeta, ingresa el bucket de destino y el nombre de la carpeta (opcional) o haz clic en Explorar para seleccionar un bucket de una lista de buckets existentes en tu proyecto actual. Para crear un bucket nuevo, haz clic en
Crear nuevo bucket.
Haga clic en Siguiente paso.
Elige la configuración del trabajo de transferencia.
En el campo Descripción, ingresa una descripción de la transferencia. Como práctica recomendada, ingresa una descripción que sea significativa y única para que puedas distinguir los trabajos.
En Opciones de metadatos, selecciona las opciones predeterminadas o haz clic en Ver y seleccionar opciones para especificar los valores de todos los metadatos admitidos. Consulta Conservación de metadatos para obtener más información.
En Cuándo reemplazar, selecciona una de las siguientes opciones:
Si es diferente: Reemplaza los archivos de destino si el archivo de origen con el mismo nombre tiene diferentes ETags o valores de suma de verificación.
Siempre: Siempre escribe archivos de destino cuando el archivo de origen tiene el mismo nombre, incluso si son idénticos.
En Cuándo borrar, selecciona una de las siguientes opciones:
Nunca: Nunca borres archivos de origen o de destino.
Borrar archivos de la fuente después de la transferencia: Borra los archivos de la fuente después de transferirlos al destino. Si no se transfiere un archivo fuente, por ejemplo, porque ya existe en el destino, no se borrará.
Borra los archivos del destino si no están también en el origen: Si los archivos en el bucket de Cloud Storage de destino no están también en el origen, borra los archivos del bucket de Cloud Storage.
Esta opción garantiza que el bucket de destino de Cloud Storage coincida exactamente con tu fuente.
En Opciones de notificación, selecciona tu tema de Pub/Sub y los eventos a los que deseas notificar. Consulta las notificaciones de Pub/Sub para obtener más detalles.
Haz clic en Próximo paso.
Elige tus opciones de programación:
En la lista desplegable Ejecutar una vez, selecciona una de las siguientes opciones:
Ejecutar una vez: Ejecuta una sola transferencia, a la vez a una hora seleccionada.
Ejecutar todos los días: Ejecuta una transferencia a diario a partir de la hora que selecciones.
Puedes ingresar una Fecha de finalización opcional o dejar en blanco Fecha de finalización para ejecutar la transferencia de forma continua.
Ejecutar cada semana: Ejecuta una transferencia semanal, a la hora que seleccionas.
Ejecutar con frecuencia personalizada: Ejecuta una transferencia a la frecuencia que seleccionas. Puedes elegir repetir la transferencia a un intervalo regular de horas, días o semanas.
Puedes ingresar una Fecha de finalización opcional o dejar en blanco Fecha de finalización para ejecutar la transferencia de forma continua.
En la lista desplegable A partir de ahora, selecciona una de las siguientes opciones:
Inicio ahora: Inicia la transferencia después de hacer clic en Crear.
A partir del: inicia la transferencia en la fecha y hora que seleccionaste. Haz clic en Calendario para mostrar un calendario y seleccionar la fecha de inicio.
Para crear tu trabajo de transferencia, haz clic en Crear.
CLI de gcloud
Para crear un nuevo trabajo de transferencia, usa el comando gcloud transfer jobs create
. La creación de un trabajo nuevo inicia la transferencia especificada, a menos que se especifique un programa o --do-not-run
.
Gcloud CLI no admite transferencias a través de CloudFront ni de redes privadas administradas.
gcloud transfer jobs create \
s3://S3_BUCKET_NAME gs://STORAGE_BUCKET_NAME \
--source-creds-file="relative_path/to/creds.json"
Aquí:
S3_BUCKET_NAME es la fuente de datos de esta transferencia. De manera opcional, puedes incluir una ruta:
s3://S3_BUCKET_NAME/S3_FOLDER_PATH
STORAGE_BUCKET_NAME es el bucket de Cloud Storage al que se transferirán los datos. Para transferir a un directorio en particular, especifica
gs://STORAGE_BUCKET_NAME/STORAGE_FOLDER_PATH/
, incluida la barra diagonal final.--source-creds-file
especifica la ruta relativa a un archivo local en tu máquina que incluye credenciales de AWS para la fuente de transferencia. El contenido debe estar en el siguiente formato JSON:{ "accessKeyId": string, "secretAccessKey": string }
Las opciones adicionales incluyen:
--do-not-run
evita que el Servicio de transferencia de almacenamiento ejecute el trabajo cuando se envía el comando. Si deseas ejecutar el trabajo, actualízalo para agregar una programación o usajobs run
a fin de iniciarlo de forma manual.--manifest-file
especifica la ruta a un archivo CSV en Cloud Storage, que contiene una lista de archivos para transferir de tu fuente. Para formatear archivos de manifiesto, consulta Transfiere archivos o objetos específicos con un manifiesto.Información del trabajo: puedes especificar
--name
y--description
.Programa: Especifica
--schedule-starts
,--schedule-repeats-every
, y--schedule-repeats-until
o--do-not-run
.Condiciones de objetos: Usa condiciones para determinar qué objetos se transfieren. Estos incluyen
--include-prefixes
y--exclude-prefixes
, y las condiciones basadas en el tiempo en--include-modified-[before | after]-[absolute | relative]
. Si especificaste una carpeta con tu fuente, los filtros de prefijo son relativos a esa carpeta. Consulta Filtra objetos de origen por prefijo para obtener más información.Opciones de transferencia: Especifica si deseas reemplazar los archivos de destino (
--overwrite-when=different
oalways
) y si deseas borrar ciertos archivos durante o después de la transferencia (--delete-from=destination-if-unique
osource-after-transfer
). Especifica qué valores de metadatos se deben conservar (--preserve-metadata
) y, de manera opcional, puedes configurar una clase de almacenamiento en los objetos transferidos (--custom-storage-class
).Notificaciones: Configura las notificaciones de Pub/Sub para transferencias con
--notification-pubsub-topic
,--notification-event-types
y--notification-payload-format
.Cloud Logging: Habilita Cloud Logging con
--log-actions
y--log-action-states
. Consulta Cloud Logging para el Servicio de transferencia de almacenamiento para obtener más información.
Para ver todas las opciones, ejecuta gcloud transfer jobs create --help
o consulta la documentación de referencia de gcloud
.
REST
En los siguientes ejemplos, se muestra cómo usar el Servicio de transferencia de almacenamiento a través de la API de REST.
Cuando configures o edites trabajos de transferencia con la API del Servicio de transferencia de almacenamiento, la hora debe estar en UTC. Para obtener más información sobre cómo especificar la programación de un trabajo de transferencia, consulta Programación.
Cuando crees trabajos de transferencia, no incluyas el prefijo s3://
para bucketName
en los nombres de fuentes de bucket de Amazon S3.
Transferencia sin agente
En el siguiente ejemplo, se crea un trabajo de transferencia con la configuración estándar sin agente. Consulta la referencia de transferJobs.create para obtener más detalles.
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Consulta Configura el acceso a una fuente: Amazon S3 para conocer otras opciones de autenticación.
Distribución de CloudFront
Si transfieres datos desde S3 a través de una distribución de CloudFront, especifica el nombre de dominio de la distribución como el valor del campo transferSpec.awsS3DataSource.cloudfrontDomain
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "cloudfrontDomain": "https://dy1h2n3l4ob56.cloudfront.net", "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Red privada administrada
Para realizar transferencias desde S3 con una red privada administrada por Google, especifica el campo transferSpec.awsS3DataSource.managedPrivateNetwork
:
POST https://storagetransfer.googleapis.com/v1/transferJobs { "description": "DESCRIPTION", "status": "ENABLED", "projectId": "PROJECT_ID", "transferSpec": { "awsS3DataSource": { "bucketName": "AWS_SOURCE_NAME", "managedPrivateNetwork": TRUE, "awsAccessKey": { "accessKeyId": "AWS_ACCESS_KEY_ID", "secretAccessKey": "AWS_SECRET_ACCESS_KEY" } }, "gcsDataSink": { "bucketName": "GCS_SINK_NAME" } } }
Bibliotecas cliente
En los siguientes ejemplos, se muestra cómo usar el Servicio de transferencia de almacenamiento de forma programática con Go, Java, Node.js y Python.
Cuando configures o edites trabajos de transferencia de manera programática, la hora debe estar en UTC. Para obtener más información sobre cómo especificar la programación de un trabajo de transferencia, consulta Programación.
Para obtener más información sobre las bibliotecas cliente del Servicio de transferencia de almacenamiento, consulta Comienza a usar las bibliotecas cliente del Servicio de transferencia de almacenamiento.
Transferencias desde Amazon S3 a Cloud Storage
En este ejemplo, aprenderás cómo mover archivos desde Amazon S3 a un bucket de Cloud Storage.
Cuando crees trabajos de transferencia, no incluyas el prefijo s3://
para bucketName
en los nombres de fuentes de bucket de Amazon S3.
Las bibliotecas cliente del Servicio de transferencia de almacenamiento no admiten transferencias a través de CloudFront ni de redes privadas administradas.
Go
Java
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.
Node.js
Python
¿Buscas muestras anteriores? Consulta la Guía de migración del Servicio de transferencia de almacenamiento.