O Serviço de transferência de armazenamento suporta transferências de sistemas de armazenamento de objetos na nuvem ou nas instalações que sejam compatíveis com a API Amazon S3.
O Serviço de transferência de armazenamento acede aos seus dados no armazenamento compatível com S3 através de agentes de transferência implementados em VMs perto da origem de dados. Estes agentes são executados num contentor do Docker e pertencem a um conjunto de agentes, que é uma coleção de agentes que usam a mesma configuração e que movem os seus dados em paralelo.
Esta funcionalidade permite-lhe migrar do armazenamento de objetos na nuvem ou no local para o Cloud Storage, arquivar dados para libertar capacidade de armazenamento no local, replicar dados para Google Cloud para continuidade da empresa ou transferir dados para Google Cloud para análise e processamento. Para os clientes que migram do AWS S3 para o Cloud Storage, esta funcionalidade oferece uma opção para controlar as rotas de rede para Google Cloud, o que resulta em custos de transferência de dados de saída consideravelmente mais baixos.
Antes de começar
Antes de configurar as transferências, conclua os seguintes passos:
- Instale a CLI gcloud.
- Satisfazer os requisitos para transferências do sistema de ficheiros, incluindo a instalação do Docker na máquina do agente de transferência.
Obtenha credenciais de origem
A transferência a partir de armazenamento compatível com o S3 requer um ID da chave de acesso e uma chave de acesso secreta.
Os passos para os obter dependem do seu fornecedor de armazenamento.
A conta a partir da qual o ID e a chave são gerados requer uma das seguintes autorizações:
- Autorização só de leitura nos objetos de origem, se não quiser eliminar objetos na origem.
- Acesso total aos objetos de origem, se optar por eliminar objetos na origem como parte da transferência.
Depois de criar a conta, adicionar autorizações e transferir o ID da chave de acesso e a chave de acesso secreta, armazene o ID e a chave num local seguro.
Configure as Google Cloud autorizações
Antes de criar uma transferência, tem de configurar as autorizações para as seguintes entidades:
A conta de utilizador que está a ser usada para criar a transferência. Esta é a conta com sessão iniciada na consola ou a conta especificada quando se autentica na CLI `gcloud`. Google Cloud A conta de utilizador pode ser uma conta de utilizador normal ou uma conta de serviço gerida pelo utilizador. | |
A conta de serviço gerida pela Google, também conhecida como agente de serviço, usada pelo Serviço de Transferência de Armazenamento. Geralmente, esta conta é identificada pelo
respetivo endereço de email, que usa o formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
|
![]() |
A conta de agente de transferência que concede Google Cloud autorizações aos agentes de transferência. As contas de agente de transferência usam as credenciais do utilizador que as instala ou as credenciais de uma conta de serviço gerida pelo utilizador para autenticar. |
Consulte as autorizações de transferência baseadas em agentes para ver instruções.
Opções de transferência
As seguintes funcionalidades do Serviço de transferência de armazenamento estão disponíveis para transferências de armazenamento compatível com S3 para o Cloud Storage:
- Transfira ficheiros específicos através de um manifesto
- Pode transmitir uma lista de ficheiros para o serviço de transferência de armazenamento agir. Consulte o artigo Transfira ficheiros ou objetos específicos através de um manifesto para ver detalhes.
- Especifique a classe de armazenamento
- Pode especificar a
classe de armazenamento do Cloud Storage a usar para os seus dados no contentor
de destino. Consulte as opções
StorageClass
para ver detalhes do REST ou use a flag--custom-storage-class
com a CLI do Google Cloud.Tenha em atenção que todas as definições da classe de armazenamento são ignoradas se o contentor de destino tiver o Autoclass ativado. Se o Autoclass estiver ativado, os objetos transferidos para o contentor são inicialmente definidos como armazenamento padrão.
- Preservação de metadados
-
Quando transfere ficheiros de armazenamento compatível com S3, o Serviço de transferência de armazenamento pode preservar opcionalmente determinados atributos como metadados personalizados.
Consulte a secção Amazon S3 ou armazenamento compatível com S3 para o Cloud Storage da secção Preservação de metadados para ver detalhes sobre os metadados que podem ser preservados e como configurar a transferência.
- Registo e monitorização
- As transferências de armazenamento compatível com S3 podem ser vistas nos Registos na nuvem e no Cloud Monitoring. Consulte os artigos Cloud Logging para o Serviço de transferência de armazenamento e Monitorize tarefas de transferência para ver detalhes. Também pode configurar notificações do Pub/Sub.
Crie um conjunto de agentes
Para criar um conjunto de agentes:
Google Cloud consola
Na Google Cloud consola, aceda à página Pools de agentes.
É apresentada a página Conjuntos de agentes, que lista os conjuntos de agentes existentes.
Clique em Criar outro conjunto.
Atribua um nome ao conjunto e, opcionalmente, descreva-o.
Pode optar por definir um limite de largura de banda que se aplica ao conjunto como um todo. A largura de banda especificada em MB/s é dividida entre todos os agentes no conjunto. Consulte o artigo Faça a gestão da largura de banda da rede para mais informações.
Clique em Criar.
API REST
Use projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Onde:
PROJECT_ID
: o ID do projeto no qual está a criar o conjunto de agentes.AGENT_POOL_ID
: o ID do conjunto de agentes que está a criar.
Se um conjunto de agentes estiver bloqueado no estado Creating
durante mais de 30 minutos,
recomendamos que elimine o conjunto de agentes e o crie novamente.
A revogação das autorizações necessárias do serviço de transferência de armazenamento de um projeto enquanto um conjunto de agentes está no estado Creating
leva a um comportamento incorreto do serviço.
CLI gcloud
Para criar um conjunto de agentes com a ferramenta de linha de comandos gcloud
, execute [gcloud transfer agent-pools create
][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
Onde estão disponíveis as seguintes opções:
AGENT_POOL é um identificador exclusivo e permanente deste conjunto.
--no-async
bloqueia outras tarefas no terminal até que o conjunto seja criado. Se não for incluído, a criação do grupo é executada de forma assíncrona.--bandwidth-limit
define a quantidade de largura de banda em MB/s a disponibilizar aos agentes deste conjunto. É aplicado um limite de largura de banda a todos os agentes num conjunto e pode ajudar a impedir que a carga de trabalho de transferência do conjunto interrompa outras operações que partilham a sua largura de banda. Por exemplo, introduza "50" para definir um limite de largura de banda de 50 MB/s. Se não especificar este indicador, os agentes deste conjunto usam toda a largura de banda disponível.--display-name
é um nome modificável para ajudar a identificar este conjunto. Pode incluir detalhes que podem não caber no nome completo do recurso exclusivo do conjunto.
Instale agentes de transferência
Os agentes de transferência são agentes de software que coordenam as atividades de transferência a partir da sua origem através do Serviço de transferência de armazenamento. Têm de ser instalados num sistema com acesso aos dados de origem.
CLI gcloud
Para instalar agentes para usar com uma origem compatível com S3 através da CLI gcloud
, use o comando transfer agents install
.
Tem de fornecer credenciais de acesso como variáveis de ambiente, como os valores de AWS_ACCESS_KEY_ID
e AWS_SECRET_ACCESS_KEY
, ou armazenadas como credenciais predefinidas nos ficheiros de configuração do seu sistema.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Para executar agentes com uma chave de conta de serviço, use a opção --creds-file
:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
Crie uma tarefa de transferência
Google Cloud consola
Siga estes passos para criar uma transferência de uma origem compatível com S3 para um contentor do Cloud Storage.
Aceda à página Serviço de transferência de armazenamento na Google Cloud consola.
Clique em Criar tarefa de transferência. É apresentada a página Criar tarefa de transferência.
Selecione Armazenamento de objetos compatível com S3 como o Tipo de origem. O destino tem de ser o Google Cloud Storage.
Clique em Passo seguinte.
Configure a sua origem
Especifique as informações necessárias para esta transferência:
Selecione o conjunto de agentes que configurou para esta transferência.
Introduza o Nome do contentor relativo ao ponto final. Por exemplo, se os seus dados residirem em:
https://example.com/bucket_a
Introduza:
bucket_a
Introduza o ponto final. Não inclua o protocolo (
http://
ouhttps://
) nem o nome do contentor. Por exemplo:example.com
Especifique quaisquer atributos opcionais para esta transferência:
Introduza a Região de assinatura a usar para a assinatura de pedidos.
Escolha o Processo de assinatura para este pedido.
Selecione o Estilo de morada. Isto determina se o nome do contentor é fornecido no estilo de caminho (por exemplo,
https://example.com/bucket-name/key-name
) ou virtual de estilo alojado (por exemplo,https://bucket-name.example.com/key-name
). Leia o artigo Alojamento virtual de contentores na documentação da Amazon para mais informações.Selecione o Protocolo de rede.
Selecione a versão da API de fichas a usar. Consulte a documentação de ListObjectsV2 e ListObjects para mais informações.
Clique em Passo seguinte.
Configure o lava-louças
No campo Bucket ou pasta, introduza o bucket de destino e (opcionalmente) o nome da pasta, ou clique em Procurar para selecionar um bucket numa lista de buckets existentes no seu projeto atual. Para criar um novo contentor, clique em
Criar novo contentor.
Clique em Passo seguinte.
Escolha as definições de transferência
No campo Descrição, introduza uma descrição da transferência. Como prática recomendada, introduza uma descrição significativa e única para poder distinguir os trabalhos.
Em Opções de metadados, opte por usar as opções predefinidas ou clique em Ver e selecionar opções para especificar valores para todos os metadados suportados. Consulte o artigo Preservação de metadados para ver detalhes.
Em Quando substituir, selecione uma das seguintes opções:
Se for diferente: substitui os ficheiros de destino se o ficheiro de origem com o mesmo nome tiver valores de Etags ou de soma de verificação diferentes.
Sempre: substitui sempre os ficheiros de destino quando o ficheiro de origem tem o mesmo nome, mesmo que sejam idênticos.
Em Quando eliminar, selecione uma das seguintes opções:
Nunca: nunca elimina ficheiros da origem nem do destino.
Eliminar ficheiro da origem após a transferência: elimine os ficheiros da origem após a transferência para o destino. Se um ficheiro de origem não for transferido, por exemplo, porque já existe no destino, o ficheiro de origem não é eliminado.
Eliminar ficheiros do destino se também não estiverem na origem: se os ficheiros no contentor do Cloud Storage de destino também não estiverem na origem, elimine os ficheiros do contentor do Cloud Storage.
Esta opção garante que o contentor do Cloud Storage de destino corresponde exatamente à sua origem.
Em Opções de notificação, selecione o tópico do Pub/Sub e os eventos para os quais quer receber notificações. Consulte as notificações do Pub/Sub para mais detalhes.
Clique em Passo seguinte.
Agende a transferência
Pode agendar a transferência para ser executada apenas uma vez ou configurar uma transferência recorrente.
Clique em Criar para criar a tarefa de transferência.
CLI gcloud
Antes de usar a CLI gcloud
para criar uma transferência, siga as instruções em
Configure o acesso a um destino do Cloud Storage.
Para usar a CLI gcloud
para criar uma transferência de uma origem compatível com S3 para um contentor do Cloud Storage, use o seguinte 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
As seguintes flags são obrigatórias:
--source-agent-pool
é o nome do conjunto de agentes a usar para esta transferência.--source-endpoint
especifica o ponto final do seu sistema de armazenamento. Por exemplo,s3.us-east.example.com
. Consulte o seu fornecedor para saber qual é a formatação correta. Não inclua o protocolo (por exemplo,https://
) ou o nome do contentor.
As restantes flags são opcionais:
--source-signing-region
especifica uma região para pedidos de assinatura. Omita esta flag se o seu fornecedor de armazenamento não exigir uma região de assinatura.--source-auth-method
especifica o método de autenticação a usar. Os valores válidos sãoAWS_SIGNATURE_V2
ouAWS_SIGNATURE_V4
. Consulte a documentação SigV4 e SigV2 da Amazon para mais informações.--source-request-model
especifica o estilo de endereçamento a usar. Os valores válidos sãoPATH_STYLE
ouVIRTUAL_HOSTED_STYLE
. O estilo de caminho usa o formatohttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME
. O estilo alojado virtualmente usa o formato `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME.--source-network-protocol
especifica o protocolo de rede que os agentes devem usar para esta tarefa. Os valores válidos sãoHTTP
ouHTTPS
.--source-list-api
especifica a versão da API de listagem do S3 para devolver objetos do contentor. Os valores válidos sãoLIST_OBJECTS
ouLIST_OBJECTS_V2
. Consulte a documentação ListObjectsV2 e ListObjects da Amazon para mais informações.
Para opções adicionais de tarefas de transferência, execute gcloud transfer jobs create --help
ou consulte a gcloud
documentação de referência.
API REST
Antes de usar a API REST para criar uma transferência, siga as instruções em Configure o acesso a um destino do Cloud Storage.
Para criar uma transferência a partir de uma origem compatível com S3 através da API REST, crie um objeto JSON semelhante ao seguinte exemplo.
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
}
}
}
Consulte a AwsS3CompatibleData
referência da API para ver descrições dos campos.
Bibliotecas cliente
Antes de usar as bibliotecas de cliente para criar uma transferência, siga as instruções em Configure o acesso a um destino do Cloud Storage.
Go
Para saber como instalar e usar a biblioteca cliente do Serviço de transferência de armazenamento, consulte o artigo Bibliotecas cliente do Serviço de transferência de armazenamento. Para mais informações, consulte a documentação de referência da API Go do Storage Transfer Service.
Para se autenticar no serviço de transferência de armazenamento, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Serviço de transferência de armazenamento, consulte o artigo Bibliotecas cliente do Serviço de transferência de armazenamento. Para mais informações, consulte a documentação de referência da API Java do Storage Transfer Service.
Para se autenticar no serviço de transferência de armazenamento, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Serviço de transferência de armazenamento, consulte o artigo Bibliotecas cliente do Serviço de transferência de armazenamento. Para mais informações, consulte a documentação de referência da API Node.js do Storage Transfer Service.
Para se autenticar no serviço de transferência de armazenamento, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Serviço de transferência de armazenamento, consulte o artigo Bibliotecas cliente do Serviço de transferência de armazenamento. Para mais informações, consulte a documentação de referência da API Python do Storage Transfer Service.
Para se autenticar no serviço de transferência de armazenamento, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Perguntas frequentes
Existe um custo para transferir do armazenamento compatível com S3?
As transferências de armazenamento compatível com S3 não incorrem na taxa de "transferências do Serviço de transferência de armazenamento que requerem agentes". Consulte os preços para ver outras taxas que possam ser aplicadas. Também pode incorrer em custos de transferência de dados de saída e operacionais por parte do seu fornecedor de nuvem de origem.
O Cloud Logging é suportado para transferências de armazenamento compatíveis com S3?
Sim, pode ativar o Cloud Logging para as suas transferências seguindo as instruções em Cloud Logging para o Serviço de transferência de armazenamento.
As transferências que usam um manifesto são suportadas?
Sim, os ficheiros de manifesto são suportados para transferências compatíveis com o S3.
Se adicionar um objeto ao contentor de origem após o início da tarefa, esse objeto é transferido?
O Storage Transfer Service executa uma operação de listagem no contentor de origem para calcular a diferença em relação ao destino. Se a operação de listagem já tiver sido concluída quando o novo objeto for adicionado, esse objeto é ignorado até à próxima transferência.
O Serviço de transferência de armazenamento realiza a correspondência de checksums em origens compatíveis com o S3?
O Serviço de transferência de armazenamento depende dos dados de soma de verificação devolvidos pela origem. Para o armazenamento compatível com S3, o Serviço de transferência de armazenamento espera que o Etag do objeto seja o hash MD5 do objeto.
No entanto, os objetos que foram transferidos para armazenamento compatível com S3 através do carregamento multipartes do S3 não têm ETags MD5. Neste caso, o Serviço de transferência de armazenamento usa o tamanho do ficheiro para validar o objeto transferido.
Que débito é possível alcançar para transferências a partir de armazenamento compatível com S3?
Pode aumentar a taxa de transferência adicionando mais agentes de transferência. Recomendamos a utilização de 3 agentes para tolerância a falhas e para preencher um canal de <10 Gbps. Para aumentar a escala, adicione mais agentes. Os agentes podem ser adicionados e removidos enquanto uma transferência está em processamento.
Onde devem ser implementados os agentes de transferência para transferir dados do Amazon S3 para o Cloud Storage?
Pode instalar agentes no Amazon EC2 ou EKS na mesma região que o seu contentor. Também pode executar agentes no Google Cloud na região mais próxima.