El Servicio de transferencia de almacenamiento admite transferencias desde sistemas de almacenamiento de objetos locales o en la nube que son compatibles con la API de Amazon S3.
El Servicio de transferencia de almacenamiento accede a tus datos en el almacenamiento compatible con S3 a través de agentes de transferencia implementados en VMs cercanas a la fuente de datos. Estos agentes se ejecutan en un contenedor de Docker y pertenecen a un grupo de agentes, que es una colección de agentes que usan la misma configuración y que trasladan tus datos de forma colectiva en paralelo.
Esta función te permite migrar del almacenamiento de objetos local o en la nube a Cloud Storage, archivar datos para liberar capacidad de almacenamiento local, replicar datos enGoogle Cloud para la continuidad empresarial o transferir datos aGoogle Cloud para su análisis y procesamiento. Para los clientes que migran de AWS S3 a Cloud Storage, esta función brinda una opción para controlar las rutas de red a Google Cloud, lo que genera cargos de transferencia de datos salientes considerablemente menores.
Antes de comenzar
Antes de configurar tus transferencias, completa los siguientes pasos:
- Instala la CLI de gcloud.
- Cumple con los requisitos para las transferencias del sistema de archivos, incluida la instalación de Docker en la máquina del agente de transferencia.
Obtén credenciales de origen
Para transferir datos desde un almacenamiento compatible con S3, se requiere 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 requiere uno de los siguientes permisos:
- Permiso de solo lectura en los objetos de origen, si no deseas borrarlos
- Acceso completo a los objetos de origen, si eliges borrar objetos en el origen como parte de la transferencia
Una vez que hayas creado la cuenta, agregado permisos y descargado el ID de clave de acceso y la clave de acceso secreta, almacena el ID y la clave en un lugar seguro.
Configura Google Cloud permisos
Antes de crear una transferencia, debes configurar los permisos para las siguientes entidades:
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 .
|
|
![]() |
La cuenta del agente de transferencia que proporciona permisos de Google Cloud para los agentes de transferencia. Las cuentas de los agentes de transferencia usan las credenciales del usuario que los instala o las credenciales de una cuenta de servicio administrada por el usuario para autenticarse. |
Consulta Permisos de transferencia basados en agentes para obtener instrucciones.
Opciones de transferencia
Las siguientes funciones del Servicio de transferencia de almacenamiento están disponibles para las transferencias desde almacenamiento compatible con 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.
- 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 un almacenamiento compatible con S3, el Servicio de transferencia de almacenamiento puede conservar de manera opcional ciertos atributos como metadatos personalizados.
Consulta la sección Almacenamiento compatible con Amazon S3 o S3 a Cloud Storage de Conservación de metadatos para obtener detalles sobre qué metadatos se pueden conservar y cómo configurar tu transferencia.
- Registro y supervisión
- Las transferencias desde almacenamiento compatible con 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.
Crea un grupo de agentes
Para crear un grupo de agentes, haz lo siguiente:
Google Cloud console
En la consola de Google Cloud , ve a la página Grupos de agentes.
Se mostrará la página Grupos de agentes, que enumera tus grupos de agentes existentes.
Haz clic en Crear otro grupo.
Asigna un nombre a tu grupo y, de manera opcional, una descripción.
Puedes optar por establecer un límite de ancho de banda que se aplicará al grupo en general. El ancho de banda especificado en MB/s se dividirá entre todos los agentes del grupo. Para obtener más información, consulta Administrar el ancho de banda de red.
Haga clic en Crear.
API de REST
Usa projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Aquí:
PROJECT_ID
: Es el ID del proyecto en el que creas el grupo de agentes.AGENT_POOL_ID
: Es el ID del grupo de agentes que creas.
Si un grupo de agentes se detuvo en el estado Creating
durante más de 30 minutos, recomendamos borrar el grupo de agentes y volver a crearlo.
Revocar los permisos necesarios del Servicio de transferencia de almacenamiento de un proyecto mientras un grupo de agentes está en el estado Creating
genera un comportamiento de servicio incorrecto.
gcloud CLI
Para crear un grupo de agentes con la herramienta de línea de comandos de gcloud
, ejecuta [gcloud transfer agent-pools create
][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
Las siguientes opciones están disponibles:
AGENT_POOL es un identificador único y permanente para este grupo.
--no-async
bloquea otras tareas en tu terminal hasta que se cree el grupo. Si no se incluye, la creación de grupos se ejecuta de forma asíncrona.--bandwidth-limit
define cuánto ancho de banda de MB/s debe estar disponible para los agentes de este grupo. Un límite de ancho de banda se aplica a todos los agentes de un grupo y puede ayudar a evitar que la carga de trabajo de transferencia del grupo interrumpa otras operaciones que comparten el ancho de banda. Por ejemplo, ingresa “50” para establecer un límite de ancho de banda de 50 MB/s. Si dejas esta marca sin especificar, los agentes del grupo usarán todo el ancho de banda disponible para ellos.--display-name
es un nombre modificable que te ayuda a identificar este grupo. Puedes incluir detalles que podrían no caber en el nombre completo del recurso del grupo.
Instala agentes de transferencia
Los agentes de transferencia son agentes de software que coordinan las actividades de transferencia desde tu fuente a través del Servicio de transferencia de almacenamiento. Deben instalarse en un sistema con acceso a tus datos de origen.
gcloud CLI
Para instalar agentes que se usarán con una fuente compatible con S3 a través de la CLI de gcloud
, usa el comando transfer agents install
.
Debes proporcionar credenciales de acceso como variables de entorno con los valores de AWS_ACCESS_KEY_ID
y AWS_SECRET_ACCESS_KEY
, o almacenadas como credenciales predeterminadas en los archivos de configuración de tu sistema.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Para ejecutar agentes mediante 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 un trabajo de transferencia
Google Cloud console
Sigue estos pasos para crear una transferencia desde una fuente compatible con S3 a un bucket de Cloud Storage.
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.
Selecciona Almacenamiento de objetos compatible con S3 como el Tipo de fuente. El destino debe ser Google Cloud Storage.
Haz clic en Próximo paso.
Configura la fuente
Especifica la información requerida para esta transferencia:
Selecciona el grupo de agentes que configuraste para esta transferencia.
Ingresa el Nombre del bucket en relación con el extremo. Por ejemplo, si tus datos residen en la siguiente ubicación:
https://example.com/bucket_a
Ingresa:
bucket_a
Ingresa el extremo. No incluyas el protocolo (
http://
ohttps://
) ni el nombre del bucket. Por ejemplo:example.com
Especifica los atributos opcionales para esta transferencia:
Ingresa la Región de firma que se usará para firmar las solicitudes.
Elige el Proceso de firma para esta solicitud.
Selecciona el Estilo de asignación. Esto determina si el nombre del bucket se proporciona en formato de ruta (p.ej.,
https://example.com/bucket-name/key-name
) o de alojamiento virtual (p.ej.,https://bucket-name.example.com/key-name
). Para obtener más información, consulta Alojamiento virtual de buckets en la documentación de Amazon.Selecciona el Protocolo de red.
Selecciona la versión de la API de la ficha que deseas usar. Consulta la documentación de ListObjectsV2 y ListObjects para obtener más información.
Haz clic en Próximo paso.
Configura tu receptor
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.
Haz clic en Próximo paso.
Elige la configuración 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.
Programa la transferencia
Puedes programar la transferencia para que se ejecute solo una vez o configurar una transferencia recurrente.
Haz clic en Crear para crear el trabajo de transferencia.
gcloud CLI
Antes de usar la CLI de gcloud
para crear una transferencia, sigue las instrucciones que se indican en Configura el acceso a un receptor de Cloud Storage.
Para usar la CLI de gcloud
y crear una transferencia desde una fuente compatible con S3 a un bucket 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
Las siguientes marcas son obligatorias:
--source-agent-pool
es el nombre del grupo de agentes que se usará para esta transferencia.--source-endpoint
especifica el extremo de tu sistema de almacenamiento. Por ejemplo,s3.us-east.example.com
Consulta con tu proveedor para obtener el formato correcto. No incluyas el protocolo (p.ej.,https://
) o el nombre del bucket.
Las marcas restantes 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 usará. Los valores válidos sonAWS_SIGNATURE_V2
oAWS_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 direccionamiento que se usará. Los valores válidos sonPATH_STYLE
oVIRTUAL_HOSTED_STYLE
. El estilo de ruta usa 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 los agentes deben usar para este trabajo. Los valores válidos sonHTTP
oHTTPS
.--source-list-api
especifica la versión de la API de S3 para devolver objetos del bucket. Los valores válidos sonLIST_OBJECTS
oLIST_OBJECTS_V2
. Consulta la documentación de ListObjectsV2 y ListObjects de Amazon para obtener más información.
Para obtener más opciones de trabajos de transferencia, ejecuta gcloud transfer jobs create --help
o consulta la documentación de referencia de gcloud
.
API de REST
Antes de usar la API de REST para crear una transferencia, sigue las instrucciones que se indican en Configura el acceso a un receptor de Cloud Storage.
Para crear una transferencia desde una fuente compatible con S3 con la API de REST, crea un objeto JSON similar al 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 la referencia de la API de AwsS3CompatibleData
para ver las descripciones de los campos.
Bibliotecas cliente
Antes de usar las bibliotecas cliente para crear una transferencia, sigue las instrucciones que se indican en Cómo configurar el acceso a un receptor de Cloud Storage.
Go
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Storage Transfer Service Go.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Storage Transfer Service Java.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Storage Transfer Service Node.js.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener información sobre cómo instalar y usar la biblioteca cliente del Servicio de transferencia de almacenamiento, consulta las bibliotecas cliente del Servicio de transferencia de almacenamiento. Si deseas obtener más información, consulta la documentación de referencia de la API de Storage Transfer Service Python.
Para autenticarte en el Servicio de transferencia de almacenamiento, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Preguntas frecuentes
¿Hay un costo por transferir datos desde un almacenamiento compatible con S3?
Las transferencias desde almacenamiento compatible con S3 no generan la comisión de "transferencias del Servicio de transferencia de almacenamiento que requieren agentes". Consulta la sección Precios para conocer otras tarifas que se puedan aplicar. Es posible que el proveedor de servicios en la nube de origen también aplique cargos operativos y de 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 en Cloud Logging para el Servicio de transferencia de almacenamiento.
¿Se admiten las transferencias con manifiesto?
Sí, los archivos de manifiesto son compatibles con las transferencias compatibles con S3.
Si agrego un objeto al bucket de origen después de que se inició el trabajo, ¿se transferirá ese objeto?
El Servicio de transferencia de almacenamiento realiza una operación de lista en el bucket de origen para calcular la diferencia con el destino. Si la operación de lista ya se completó cuando se agregó el objeto nuevo, se omitirá ese objeto hasta la próxima transferencia.
¿El Servicio de transferencia de almacenamiento realiza la coincidencia de sumas de verificación en fuentes compatibles con S3?
El Servicio de transferencia de almacenamiento depende de que la fuente devuelva datos de suma de verificación. En el caso del almacenamiento compatible con S3, el Servicio de transferencia de almacenamiento espera que el ETag del objeto sea el hash MD5 del objeto.
Sin embargo, los objetos que se transfirieron al almacenamiento compatible con S3 a través de la carga multiparte de S3 no tienen etiquetas ETag de MD5. En este caso, el Servicio de transferencia de almacenamiento usa el tamaño del archivo para validar el objeto transferido.
¿Qué capacidad de procesamiento se puede lograr para las transferencias desde el almacenamiento compatible con S3?
La capacidad de procesamiento de la transferencia se puede ajustar agregando más agentes de transferencia. Recomendamos usar 3 agentes para la tolerancia a errores y para llenar una canalización de <10 Gbps. Para escalar más, agrega más agentes. Se pueden agregar y quitar agentes mientras se procesa una transferencia.
¿Dónde se deben implementar los agentes de transferencia para transferir datos de Amazon S3 a Cloud Storage?
Puedes instalar agentes en Amazon EC2 o EKS dentro de la misma región que tu bucket. También puedes ejecutar agentes en Google Cloud en la región más cercana.