El Servicio de transferencia de Storage admite transferencias desde sistemas de almacenamiento de objetos en la nube o locales que sean compatibles con la API de Amazon S3.
El Servicio de transferencia de Storage accede a tus datos en el almacenamiento compatible con S3 mediante agentes de transferencia implementados en VMs cercanas a la fuente de datos. Estos agentes se ejecutan en un contenedor Docker y pertenecen a un grupo de agentes, que es un conjunto de agentes que usan la misma configuración y que transfieren sus datos en paralelo.
Esta función te permite migrar de un almacenamiento de objetos local o en la nube a Cloud Storage, archivar datos para liberar capacidad de almacenamiento local, replicar datos enGoogle Cloud para garantizar la continuidad del negocio o transferir datos aGoogle Cloud para analizarlos y procesarlos. Para los clientes que migren de AWS S3 a Cloud Storage, esta función ofrece una opción para controlar las rutas de red a Google Cloud, lo que se traduce en unos costes de transferencia de datos salientes considerablemente más bajos.
Antes de empezar
Antes de configurar las transferencias, completa los siguientes pasos:
- Instala gcloud CLI.
- Cumple los requisitos para las transferencias del sistema de archivos, incluido instalar Docker en la máquina del agente de transferencia.
Obtener credenciales de origen
Para transferir datos desde un almacenamiento compatible con S3, se necesitan un ID de clave de acceso y una clave de acceso secreta.
Los pasos para obtenerlos dependen de tu proveedor de almacenamiento.
La cuenta desde la que se generan el ID y la clave debe tener uno de los siguientes permisos:
- Permiso de solo lectura en los objetos de origen si no quieres eliminar objetos del origen.
- Acceso total a los objetos de origen, si decides eliminar objetos del origen como parte de la transferencia.
Una vez que hayas creado la cuenta, añadido los permisos y descargado el ID de clave de acceso y la clave de acceso secreta, guarda el ID y la clave en un lugar seguro.
Configurar Google Cloud permisos
Antes de crear una transferencia, debe configurar los permisos de las siguientes entidades:
La cuenta de usuario que se usa para crear la transferencia. Esta es la cuenta con la que se ha iniciado sesión en la consola Google Cloud o la cuenta que se ha especificado al autenticar la CLI de `gcloud`. La cuenta de usuario puede ser una cuenta de usuario normal o una cuenta de servicio gestionada por el usuario. | |
La cuenta de servicio gestionada por Google, también conocida como agente de servicio, que usa el Servicio de transferencia de Storage. Esta cuenta se identifica generalmente por su dirección de correo, que tiene el formato project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
|
![]() |
La cuenta de agente de transferencia que proporciona Google Cloud permisos a los agentes de transferencia. Las cuentas de agente de transferencia usan las credenciales del usuario que las instala o las credenciales de una cuenta de servicio gestionada por el usuario para autenticarse. |
Consulta las instrucciones en Permisos de transferencia basados en agentes.
Opciones de transferencia
Las siguientes funciones del servicio de transferencia de Storage están disponibles para las transferencias de almacenamiento compatible con S3 a Cloud Storage:
- Transferir archivos específicos mediante un manifiesto
- Puedes enviar una lista de archivos para que el Servicio de transferencia de Storage actúe sobre ellos. Para obtener más información, consulta Transferir archivos u objetos específicos mediante un archivo de manifiesto.
- Especificar una clase de almacenamiento
- Puedes especificar la
clase de almacenamiento de Cloud Storage que quieras usar para tus datos en el segmento de destino. Consulta las opciones de
StorageClass
para obtener información sobre REST o usa la marca--custom-storage-class
con la CLI de Google Cloud.Ten en cuenta que se ignorarán los ajustes de la clase de almacenamiento si el Autoclass está habilitado en el cubo de destino. Si Autoclass está habilitado, los objetos transferidos al segmento se asignan inicialmente al almacenamiento Estándar.
- Preservación de metadatos
-
Al transferir archivos desde un almacenamiento compatible con S3, el Servicio de transferencia de Storage puede conservar ciertos atributos como metadatos personalizados.
Consulta la sección Almacenamiento compatible con Amazon S3 o S3 en Cloud Storage de Conservación de metadatos para obtener información sobre los metadatos que se pueden conservar y cómo configurar la transferencia.
- Almacenamiento de registros y monitorización
- Las transferencias desde almacenamiento compatible con S3 se pueden ver en Cloud Logging y Cloud Monitoring. Para obtener más información, consulta los artículos Cloud Logging para el Servicio de transferencia de Storage y Monitorizar tareas de transferencia. También puede configurar notificaciones de Pub/Sub.
Crear un grupo de agentes
Para crear un grupo de agentes, sigue estos pasos:
Google Cloud consola
En la Google Cloud consola, ve a la página Grupos de agentes.
Se muestra la página Grupos de agentes, con los grupos de agentes que ya tienes.
Haz clic en Crear otro grupo.
Ponle un nombre a tu grupo y, si quieres, descríbelo.
Puede definir un límite de ancho de banda que se aplique a todo el grupo. El ancho de banda especificado en MB/s se dividirá entre todos los agentes del grupo. Consulta más información en el artículo Gestionar el ancho de banda de la red.
Haz clic en Crear.
API REST
Usa projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Donde:
PROJECT_ID
: el ID del proyecto en el que vas a crear el grupo de agentes.AGENT_POOL_ID
: el ID del grupo de agentes que vas a crear.
Si un grupo de agentes se queda en el estado Creating
durante más de 30 minutos, te recomendamos que lo elimines y lo vuelvas a crear.
Si se revocan los permisos necesarios del Servicio de transferencia de Storage de un proyecto mientras un grupo de agentes está en el estado Creating
, el servicio no funcionará correctamente.
CLI de gcloud
Para crear un grupo de agentes con la herramienta de línea de comandos gcloud
, ejecuta [gcloud transfer agent-pools create
][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
Donde están disponibles las siguientes opciones:
AGENT_POOL es un identificador único y permanente de este grupo.
--no-async
bloquea otras tareas en tu terminal hasta que se haya creado el grupo. Si no se incluye, la creación del grupo se ejecuta de forma asíncrona.--bandwidth-limit
define la cantidad de ancho de banda en MB/s que se va a poner a disposición de los agentes de este grupo. El límite de ancho de banda se aplica a todos los agentes de un grupo y puede ayudar a que la carga de trabajo de transferencia del grupo no afecte al resto de las operaciones que compartan tu ancho de banda. Por ejemplo, introduce "50" para definir un límite de ancho de banda de 50 MB/s. Si no se especifica esta marca, los agentes de este grupo usarán todo el ancho de banda disponible.--display-name
es un nombre modificable que te ayudará a identificar este grupo. Puedes incluir detalles que no quepan en el nombre completo único del recurso del grupo.
Instalar agentes de transferencia
Los agentes de transferencia son agentes de software que coordinan las actividades de transferencia desde tu origen a través del Servicio de transferencia de Storage. Deben instalarse en un sistema que tenga acceso a los datos de origen.
CLI de gcloud
Para instalar agentes que se usen con una fuente compatible con S3 mediante la CLI de gcloud
, usa el comando transfer agents install
.
Debe proporcionar las credenciales de acceso como variables de entorno con los valores de AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
, o bien almacenarlas como credenciales predeterminadas en los archivos de configuración de su sistema.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Para ejecutar agentes con una clave de cuenta de servicio, usa la opción --creds-file
:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
Crear una tarea de transferencia
Google Cloud consola
Sigue estos pasos para crear una transferencia desde una fuente compatible con S3 a un segmento de Cloud Storage.
Ve a la página Storage Transfer Service de la Google Cloud consola.
Haz clic en Crear tarea de transferencia. Se muestra la página Crear una tarea de transferencia.
Seleccione Almacenamiento de objetos compatible con S3 como Tipo de fuente. El destino debe ser Google Cloud Storage.
Haz clic en Siguiente paso.
Configurar una base de datos de origen
Especifica la información necesaria para esta transferencia:
Selecciona el grupo de agentes que has configurado para esta transferencia.
Introduzca el nombre del segmento en relación con el endpoint. Por ejemplo, si tus datos se encuentran en:
https://example.com/bucket_a
Introduce:
bucket_a
Introduce el Endpoint. No incluyas el protocolo (
http://
ohttps://
) ni el nombre del segmento. Por ejemplo:example.com
Especifique los atributos opcionales de esta transferencia:
Introduce la región de firma que quieras usar para firmar las solicitudes.
Elige el proceso de firma de esta solicitud.
Selecciona el Estilo de tratamiento. Esto determina si el nombre del bucket se proporciona en el estilo de ruta (por ejemplo,
https://example.com/bucket-name/key-name
) o virtual alojado (por ejemplo,https://bucket-name.example.com/key-name
). Consulta más información sobre el hosting virtual de los contenedores en la documentación de Amazon.Selecciona el protocolo de red.
Selecciona la versión de la API de fichas que quieras usar. Consulta la documentación de ListObjectsV2 y ListObjects para obtener más información.
Haz clic en Siguiente paso.
Configurar el receptor
En el campo Segmento o carpeta, introduce el nombre del segmento de destino y, opcionalmente, el de la carpeta. También puedes hacer clic en Examinar para seleccionar un segmento de la lista de segmentos de tu proyecto. Para crear un nuevo contenedor, haz clic en
Crear contenedor.
Haz clic en Siguiente paso.
Elegir la configuración de la transferencia
En el campo Descripción, introduce una descripción de la transferencia. Como práctica recomendada, introduce una descripción significativa y única para poder distinguir los trabajos.
En Opciones de metadatos, elija si quiere usar las opciones predeterminadas o haga clic en Ver y seleccionar opciones para especificar valores de todos los metadatos admitidos. Para obtener más información, consulta Conservación de metadatos.
En Cuándo sobrescribir, seleccione una de las siguientes opciones:
Si es diferente: sobrescribe los archivos de destino si el archivo de origen con el mismo nombre tiene valores de ETag o de suma de comprobación diferentes.
Siempre: siempre sobrescribe los archivos de destino cuando el archivo de origen tiene el mismo nombre, aunque sean idénticos.
En Cuándo eliminar, selecciona una de las siguientes opciones:
Nunca: no elimina nunca los archivos del origen ni del destino.
Eliminar archivos del origen cuando se hayan transferido: elimina los archivos del origen cuando se hayan transferido al destino. Si no se transfiere un archivo de origen (por ejemplo, porque ya existe en el destino), no se elimina.
Eliminar los archivos en el destino si tampoco están en el origen: si los archivos del segmento de Cloud Storage de destino no están en el origen, elimínelos del segmento de Cloud Storage.
Esta opción asegura que el segmento de destino de Cloud Storage coincida exactamente con el de origen.
En Opciones de notificación, selecciona el tema de Pub/Sub y los eventos de los que quieres recibir notificaciones. Consulta Notificaciones de Pub/Sub para obtener más información.
Haz clic en Siguiente paso.
Programar la transferencia
Puedes programar la transferencia para que se ejecute una sola vez o configurar una transferencia periódica.
Haz clic en Crear para crear la tarea de transferencia.
CLI de gcloud
Antes de usar la CLI de gcloud
para crear una transferencia, sigue las instrucciones de Configurar el acceso a un receptor de Cloud Storage.
Para usar la CLI de gcloud
para crear una transferencia desde una fuente compatible con S3 a un segmento de Cloud Storage, usa el siguiente comando.
gcloud transfer jobs create s3://SOURCE_BUCKET_NAME gs://SINK_BUCKET_NAME \
--source-agent-pool=POOL_NAME \
--source-endpoint=ENDPOINT \
--source-signing-region=REGION \
--source-auth-method=AWS_SIGNATURE_V2 | AWS_SIGNATURE_V4 \
--source-request-model=PATH_STYLE | VIRTUAL_HOSTED_STYLE \
--source-network-protocol=HTTP | HTTPS \
--source-list-api=LIST_OBJECTS | LIST_OBJECTS_V2
Se necesitan las siguientes marcas:
--source-agent-pool
es el nombre del grupo de agentes que se va a usar en esta transferencia.--source-endpoint
especifica el endpoint de tu sistema de almacenamiento. Por ejemplo,s3.us-east.example.com
. Ponte en contacto con tu proveedor para obtener el formato correcto. No incluyas el protocolo (por ejemplo,https://
) o el nombre del contenedor.
Las demás marcas son opcionales:
--source-signing-region
especifica una región para firmar solicitudes. Omite esta marca si tu proveedor de almacenamiento no requiere una región de firma.--source-auth-method
especifica el método de autenticación que se va a usar. Los valores válidos sonAWS_SIGNATURE_V2
yAWS_SIGNATURE_V4
. Consulta la documentación de SigV4 y SigV2 de Amazon para obtener más información.--source-request-model
especifica el estilo de dirección que se va a usar. Los valores válidos sonPATH_STYLE
oVIRTUAL_HOSTED_STYLE
. El estilo de ruta utiliza el formatohttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME
. El estilo de alojamiento virtual usa el formato `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME.--source-network-protocol
especifica el protocolo de red que deben usar los agentes para este trabajo. Los valores válidos sonHTTP
yHTTPS
.--source-list-api
especifica la versión de la API de listado de S3 para devolver objetos del segmento. Los valores válidos sonLIST_OBJECTS
yLIST_OBJECTS_V2
. Consulta la documentación de ListObjectsV2 y ListObjects de Amazon para obtener más información.
Para ver más opciones de trabajos de transferencia, ejecuta gcloud transfer jobs create --help
o consulta la documentación de referencia de gcloud
.
API REST
Antes de usar la API REST para crear una transferencia, sigue las instrucciones que se indican en Configurar el acceso a un receptor de Cloud Storage.
Para crear una transferencia desde una fuente compatible con S3 mediante la API REST, crea un objeto JSON similar al del siguiente ejemplo.
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
...
"transferSpec": {
"source_agent_pool_name":"POOL_NAME",
"awsS3CompatibleData": {
"region":"us-east-1",
"s3Metadata":{
"protocol": "NETWORK_PROTOCOL_HTTPS",
"requestModel": "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE",
"authMethod": "AUTH_METHOD_AWS_SIGNATURE_V4"
},
"endpoint": "example.com",
"bucketName": "BUCKET_NAME",
"path": "PATH",
},
"gcsDataSink": {
"bucketName": "SINK_NAME",
"path": "SINK_PATH"
},
"transferOptions": {
"deleteObjectsFromSourceAfterTransfer": false
}
}
}
Consulta las descripciones de los campos en la referencia de la API AwsS3CompatibleData
.
Bibliotecas de cliente
Antes de usar las bibliotecas de cliente para crear una transferencia, sigue las instrucciones que se indican en Configurar el acceso a un receptor de Cloud Storage.
Go
Para saber cómo instalar y usar la biblioteca de cliente de Servicio de transferencia de Storage, consulta Bibliotecas de cliente de Servicio de transferencia de Storage. Para obtener más información, consulta la documentación de referencia de la API Go del Servicio de transferencia de Storage.
Para autenticarte en el Servicio de transferencia de Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Java
Para saber cómo instalar y usar la biblioteca de cliente de Servicio de transferencia de Storage, consulta Bibliotecas de cliente de Servicio de transferencia de Storage. Para obtener más información, consulta la documentación de referencia de la API Java del Servicio de transferencia de Storage.
Para autenticarte en el Servicio de transferencia de Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Node.js
Para saber cómo instalar y usar la biblioteca de cliente de Servicio de transferencia de Storage, consulta Bibliotecas de cliente de Servicio de transferencia de Storage. Para obtener más información, consulta la documentación de referencia de la API Node.js del Servicio de transferencia de Storage.
Para autenticarte en el Servicio de transferencia de Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Python
Para saber cómo instalar y usar la biblioteca de cliente de Servicio de transferencia de Storage, consulta Bibliotecas de cliente de Servicio de transferencia de Storage. Para obtener más información, consulta la documentación de referencia de la API Python del Servicio de transferencia de Storage.
Para autenticarte en el Servicio de transferencia de Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.
Preguntas frecuentes
¿Tiene algún coste la transferencia desde un almacenamiento compatible con S3?
Las transferencias desde almacenamiento compatible con S3 no conllevan la tarifa "Transferencias del Servicio de transferencia de almacenamiento que requieren agentes". Consulta la página Precios para ver otras tarifas que puedan aplicarse. Es posible que el proveedor de servicios en la nube de origen aplique cargos por operaciones y de salida para la transferencia de datos salientes.
¿Se admite Cloud Logging para las transferencias de almacenamiento compatible con S3?
Sí, puedes habilitar Cloud Logging para tus transferencias siguiendo las instrucciones que se indican en Cloud Logging para el servicio de transferencia de Storage.
¿Se admiten las transferencias mediante un manifiesto?
Sí, se admiten archivos de manifiesto para las transferencias compatibles con S3.
Si añado un objeto al contenedor de origen después de que se haya iniciado el trabajo, ¿se transferirá ese objeto?
El Servicio de transferencia de Storage realiza una operación de lista en el segmento de origen para calcular la diferencia con el destino. Si la operación de lista ya se ha completado cuando se añade el nuevo objeto, se omitirá ese objeto hasta la siguiente transferencia.
¿El Servicio de transferencia de Storage realiza una comprobación de la suma de comprobación en las fuentes compatibles con S3?
El Servicio de transferencia de Storage depende de que la fuente devuelva datos de suma de comprobación. En el caso del almacenamiento compatible con S3, el Servicio de transferencia de Storage espera que el Etag del objeto sea el hash MD5 del objeto.
Sin embargo, los objetos que se hayan transferido al almacenamiento compatible con S3 mediante la subida multiparte de S3 no tendrán etiquetas ETag MD5. En este caso, el Servicio de transferencia de Storage usa el tamaño del archivo para validar el objeto transferido.
¿Qué rendimiento se puede conseguir en las transferencias desde almacenamiento compatible con S3?
Puedes aumentar el rendimiento de la transferencia añadiendo más agentes de transferencia. Recomendamos usar 3 agentes para la tolerancia a fallos y para llenar una tubería de <10 Gbps. Para ampliar la escala, añade más agentes. Los agentes se pueden añadir y quitar mientras se esté procesando una transferencia.
¿Dónde se deben implementar los agentes de transferencia para transferir datos de Amazon S3 a Cloud Storage?
Puede instalar agentes en Amazon EC2 o EKS en la misma región que su segmento. También puedes ejecutar agentes en Google Cloud en la región más cercana.