Storage Transfer Service supporta i trasferimenti da sistemi di archiviazione di oggetti cloud o on-premise compatibili con l'API Amazon S3.
Storage Transfer Service accede ai tuoi dati nello spazio di archiviazione compatibile con S3 utilizzando agenti di trasferimento di cui è stato eseguito il deployment su VM vicine all'origine dati. Questi agenti vengono eseguiti in container e appartengono a un pool di agenti, ovvero un insieme di agenti che utilizzano la stessa configurazione e che trasferiscono collettivamente i dati in parallelo.
Questa funzione consente di di archiviazione di oggetti on-premise o su cloud a Cloud Storage, per liberare capacità di archiviazione on-premise, replicare i dati Google Cloud per la continuità aziendale o trasferire dati a Google Cloud per l'analisi e l'elaborazione. Per i clienti che eseguono la migrazione da AWS S3 a Cloud Storage, questa funzionalità offre la possibilità di controllare i percorsi di rete verso Google Cloud, con un conseguente calo significativo degli addebiti per il trasferimento di dati in uscita.
Prima di iniziare
Prima di configurare i trasferimenti, completa i seguenti passaggi:
- Installa gcloud CLI.
- Soddisfa le requisiti per i trasferimenti di file system, compresa l'installazione di Docker sulla macchina dell'agente di trasferimento.
Ottenere le credenziali di origine
Il trasferimento da uno spazio di archiviazione compatibile con S3 richiede un ID chiave di accesso e una chiave di accesso segreta.
I passaggi per ottenerli dipendono dal tuo fornitore di spazio di archiviazione.
L'account da cui vengono generati l'ID e la chiave richiede uno dei seguenti elementi: le seguenti autorizzazioni:
- Autorizzazione di sola lettura per gli oggetti di origine, se non vuoi eliminare gli oggetti in origine.
- Accesso completo agli oggetti di origine, se scegli di eliminare gli oggetti nell'origine come parte del trasferimento.
Una volta creato l'account, aggiunto le autorizzazioni e scaricato il ID chiave di accesso e chiave di accesso segreta, memorizzano l'ID e la chiave in un luogo sicuro posto.
Configura le autorizzazioni Google Cloud
Prima di creare un trasferimento, devi configurare le autorizzazioni per: entità:
L'account utente utilizzato per creare il trasferimento. Si tratta dell'account con cui hai eseguito l'accesso alla console Google Cloud o dell'account specificato durante l'autenticazione all'interfaccia a riga di comando "gcloud". L'account utente può essere un normale account utente o un account di servizio gestito dall'utente. | |
L'account di servizio gestito da Google, chiamato anche servizio
usato da Storage Transfer Service. Questo account è generalmente identificato da
il suo indirizzo email, che utilizza il formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
|
L'account agente di trasferimento che fornisce le autorizzazioni Google Cloud per gli agenti di trasferimento. Gli account agente di trasferimento utilizzano le credenziali dell'utente che le installano oppure le credenziali account di servizio dall'utente, per eseguire l'autenticazione. |
Per istruzioni, consulta la sezione Autorizzazioni di trasferimento basate su agenti.
Opzioni di trasferimento
Le seguenti funzionalità di Storage Transfer Service sono disponibili per i trasferimenti da archiviazione compatibile con S3 a Cloud Storage:
- Trasferire file specifici utilizzando un manifest
- Puoi trasmettere un elenco di file su cui Storage Transfer Service deve intervenire. Consulta Trasferisci file specifici o utilizzando un file manifest.
- Specifica la classe di archiviazione
- Puoi specificare la
classe di archiviazione Cloud Storage da utilizzare per i dati nel
bucket di destinazione. Consulta le
StorageClass
per i dettagli REST oppure utilizza il metodo--custom-storage-class
con Google Cloud CLI.Tieni presente che tutte le impostazioni della classe di archiviazione vengono ignorate se la destinazione in cui è abilitato Autoclass. Se Autoclass è abilitato, gli oggetti trasferiti nel bucket vengono inizialmente impostata su Standard Storage.
- Conservazione dei metadati
-
Quando si trasferiscono file dallo spazio di archiviazione compatibile con S3, Storage Transfer Service può facoltativamente conservare alcuni attributi come metadati personalizzati.
Consulta la sezione Spazio di archiviazione Amazon S3 o compatibile con S3 in Cloud Storage di Conservazione dei metadati per informazioni dettagliate sui metadati che possono essere conservati e su come configurare il trasferimento.
- Logging e monitoraggio
- I trasferimenti dallo spazio di archiviazione compatibile con S3 possono essere visualizzati in Cloud Logging e e configurazione in Cloud Monitoring. Per maggiori dettagli, consulta Cloud Logging per Storage Transfer Service e Monitorare i job di trasferimento. Puoi anche configurare Pub/Sub notifiche.
Crea un pool di agenti
Per creare un pool di agenti:
Console Google Cloud
Nella console Google Cloud, vai alla pagina Pool di agenti.
Viene visualizzata la pagina Pool di agenti, che elenca i pool di agenti esistenti.
Fai clic su Crea un altro pool.
Assegna un nome al pool e, facoltativamente, descrivilo.
Puoi scegliere di impostare un limite di larghezza di banda da applicare al pool come tutto. La larghezza di banda specificata in MB/s verrà suddivisa tra tutti gli agenti del pool. Consulta Gestione della larghezza di banda della rete per ulteriori informazioni.
Fai clic su Crea.
API REST
Utilizza le funzionalità di projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Dove:
PROJECT_ID
: l'ID progetto che stai creando dal pool di agenti.AGENT_POOL_ID
: l'ID pool di agenti che sei è in fase di creazione.
Se un pool di agenti è bloccato nello stato Creating
per più di 30 minuti,
consigliamo di eliminare e creare di nuovo il pool di agenti.
Revoca le autorizzazioni richieste di Storage Transfer Service da un progetto durante
un pool di agenti è in stato Creating
causa un comportamento errato del servizio.
Interfaccia a riga di comando gcloud
Per creare un pool di agenti con lo strumento a riga di comando gcloud
, esegui
[gcloud transfer agent-pools create
][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
Dove sono disponibili le seguenti opzioni:
AGENT_POOL è un identificatore univoco e permanente per questo pool.
--no-async
blocca altre attività nel terminale finché il pool non è stato è stato creato. Se non viene incluso, la creazione del pool viene eseguita in modo asincrono.--bandwidth-limit
definisce la quantità di larghezza di banda in MB/s che deve essere disponibili per gli agenti di questo pool. Un limite di larghezza di banda si applica a tutti gli agenti un pool e può contribuire a impedire che il carico di lavoro di trasferimento del pool interrompa altre operazioni che condividono la larghezza di banda. Ad esempio, inserisci "50" per impostare un limite di larghezza di banda di 50 MB/s. Se lasci questo flag non specificato, gli agenti di questo pool utilizzeranno tutta la larghezza di banda a loro disposizione.--display-name
è un nome modificabile per aiutarti a identificare questo pool. Tu può includere dettagli che potrebbero non essere adatti alla risorsa completa unica del pool nome.
Installa agenti di trasferimento
Gli agenti di trasferimento sono agenti software che coordinano le attività di trasferimento la tua origine tramite Storage Transfer Service. Devono essere installati su un impianto con l'accesso ai dati di origine.
Interfaccia a riga di comando gcloud
Per installare gli agenti da utilizzare con un'origine compatibile con S3 utilizzando l'interfaccia a riga di comando gcloud
,
utilizza il comando transfer agents install
.
Devi fornire le credenziali di accesso come variabili di ambiente
valori di AWS_ACCESS_KEY_ID
e AWS_SECRET_ACCESS_KEY
o archiviati come
credenziali predefinite nei file di configurazione del tuo sistema.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Per eseguire gli agenti utilizzando
chiave dell'account di servizio, utilizza
l'opzione --creds-file
:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
Creare un job di trasferimento
Console Google Cloud
Segui questi passaggi per creare un trasferimento da un'origine compatibile con S3 a un nel bucket Cloud Storage.
Vai alla pagina Storage Transfer Service nella console Google Cloud.
Fai clic su Crea job di trasferimento. Viene visualizzata la pagina Crea un job di trasferimento.
Seleziona Archiviazione di oggetti compatibile con S3 come Tipo di origine. La deve essere Google Cloud Storage.
Fai clic su Passaggio successivo.
Configura l'origine
Specifica le informazioni richieste per questo trasferimento:
Seleziona il pool di agenti che hai configurato per questo trasferimento.
Inserisci il Nome bucket relativo all'endpoint. Ad esempio, se i tuoi dati si trovano all'indirizzo:
https://example.com/bucket_a
Inserisci:
bucket_a
Inserisci l'endpoint. Non includere il protocollo (
http://
ohttps://
). Ad esempio:example.com
Specifica eventuali attributi facoltativi per questo trasferimento:
Inserisci la regione di firma da utilizzare per la firma delle richieste.
Scegli la procedura di firma per questa richiesta.
Seleziona lo Stile di indirizzamento. Questo determina se il nome del bucket viene fornito in stile percorso (ad es.
https://example.com/bucket-name/key-name
) o in stile ospitato virtuale (ad es.https://bucket-name.example.com/key-name
). Letto Hosting virtuale dei bucket nella documentazione Amazon per ulteriori informazioni informazioni.Seleziona il Protocollo di rete.
Seleziona la versione dell'API elenco da utilizzare. Consulta le ListObjectsV2 e ListObjects per ulteriori informazioni.
Fai clic su Passaggio successivo.
Configura il sink
Nel campo Bucket o cartella, inserisci il bucket di destinazione. e (facoltativamente) del nome della cartella oppure fai clic su Sfoglia per selezionare un bucket da un elenco di bucket esistenti nel tuo progetto attuale. Per creare un nuovo bucket, fai clic su Crea nuovo bucket.
Fai clic su Passaggio successivo.
Scegli le impostazioni di trasferimento
Nel campo Descrizione, inserisci una descrizione del trasferimento. Come best practice, inserisci una descrizione significativa univoci in modo da poter distinguere i job.
In Opzioni metadati, scegli di utilizzare le opzioni predefinite, o fai clic su Visualizza e seleziona le opzioni per specificare i valori per tutti metadati supportati. Consulta Conservazione dei metadati per maggiori dettagli.
In Quando sovrascrivere, seleziona una delle seguenti opzioni:
Se diverso: sovrascrive i file di destinazione se il file di origine. con lo stesso nome hanno valori Etag o checksum diversi.
Sempre: sovrascrive sempre i file di destinazione quando il file di origine. hanno lo stesso nome, anche se sono identici.
In Quando eliminare, seleziona una delle seguenti opzioni:
Mai: non eliminare mai i file dall'origine o dalla destinazione.
Elimina file dall'origine dopo il trasferimento: elimina i file dall'origine dopo il trasferimento alla destinazione.
Elimina i file dalla destinazione se non sono anche nell'origine: se anche i file nel bucket Cloud Storage di destinazione l'origine, quindi elimina i file da Cloud Storage di sincronizzare la directory di una VM con un bucket.
Questa opzione garantisce che il bucket Cloud Storage di destinazione corrisponde esattamente alla fonte.
In Opzioni di notifica, seleziona l'argomento Pub/Sub e le per i quali inviare notifiche. Consulta Notifiche Pub/Sub per ulteriori dettagli.
Fai clic su Passaggio successivo.
Programma il trasferimento
Puoi pianificare il trasferimento in modo che venga eseguito una sola volta oppure configurare un trasferimento.
Fai clic su Crea per creare il job di trasferimento.
Interfaccia a riga di comando gcloud
Prima di utilizzare l'interfaccia a riga di comando di gcloud
per creare un trasferimento, segui le istruzioni in
Configura l'accesso a un sink di Cloud Storage.
Per utilizzare l'interfaccia a riga di comando gcloud
per creare un trasferimento da un'origine compatibile con S3 a
un bucket Cloud Storage, utilizza il comando seguente.
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
I seguenti flag sono obbligatori:
--source-agent-pool
è il nome del pool di agenti da utilizzare per questa richiesta trasferimento.--source-endpoint
specifica l'endpoint del tuo sistema di archiviazione. Ad esempio:s3.us-east.example.com
. Verifica con il tuo fornitore il corretto formattazione.
I flag rimanenti sono facoltativi:
--source-signing-region
specifica una regione per la firma delle richieste. Ometti questo flag se il tuo fornitore di spazio di archiviazione non richiede una regione di firma.--source-auth-method
specifica il metodo di autenticazione da utilizzare. Valido sonoAWS_SIGNATURE_V2
oAWS_SIGNATURE_V4
. Consulta Per saperne di più, consulta la documentazione di Amazon SigV4 e SigV2.--source-request-model
specifica lo stile di indirizzamento da utilizzare. Valori validi sonoPATH_STYLE
oVIRTUAL_HOSTED_STYLE
. Lo stile del percorso utilizza il formatohttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME
. Lo stile con hosting virtuale utilizza il formato `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME.--source-network-protocol
specifica il protocollo di rete che gli agenti per questo lavoro. I valori validi sonoHTTP
oHTTPS
.--source-list-api
specifica la versione dell'API di elenco S3 per che restituiscono oggetti dal bucket. I valori validi sonoLIST_OBJECTS
oLIST_OBJECTS_V2
. Per saperne di più, consulta la documentazione di Amazon su ListObjectsV2 e ListObjects.
Per ulteriori opzioni del job di trasferimento, esegui gcloud transfer jobs create --help
oppure consulta la documentazione di riferimento gcloud
.
API REST
Prima di utilizzare l'API REST per creare un trasferimento, segui le istruzioni in Configura l'accesso a un sink di Cloud Storage.
Per creare un trasferimento da un'origine compatibile con S3 utilizzando l'API REST, crea un oggetto JSON simile all'esempio seguente.
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
}
}
}
Per le descrizioni dei campi, consulta la documentazione di riferimento dell'API AwsS3CompatibleData
.
Librerie client
Prima di utilizzare le librerie client per creare un trasferimento, segui le istruzioni in Configura l'accesso a un sink di Cloud Storage.
Go
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, consulta Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta API Storage Transfer Service Go documentazione di riferimento.
Per autenticarti a Storage Transfer Service, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, vedi Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta API Storage Transfer Service Java documentazione di riferimento.
Per eseguire l'autenticazione a Storage Transfer Service, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, vedi Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta API Storage Transfer Service Node.js documentazione di riferimento.
Per eseguire l'autenticazione a Storage Transfer Service, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Storage Transfer Service, vedi Librerie client di Storage Transfer Service. Per ulteriori informazioni, consulta API Storage Transfer Service Python documentazione di riferimento.
Per eseguire l'autenticazione a Storage Transfer Service, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Domande frequenti
È previsto un costo per il trasferimento da uno spazio di archiviazione compatibile con S3?
I trasferimenti dallo spazio di archiviazione compatibile con S3 non sono soggetti al "Storage Transfer Service" trasferimenti che richiedono agenti" a pagamento. Consulta la sezione Prezzi per eventuali altre commissioni. Potrebbe verificarsi anche un trasferimento di dati in uscita e sui costi operativi del provider cloud di origine.
Cloud Logging è supportato per i trasferimenti dello spazio di archiviazione compatibili con S3?
Sì, puoi abilitare Cloud Logging per i tuoi trasferimenti seguendo le istruzioni in Cloud Logging per Storage Transfer Service.
I trasferimenti tramite un manifest sono supportati?
Sì, i file manifest sono supportati per Trasferimenti compatibili con S3.
Se aggiungo un oggetto al bucket di origine dopo l'avvio del job, trasferito?
Storage Transfer Service esegue un'operazione list sul bucket di origine per calcolare la differenza rispetto alla destinazione. Se l'operazione di elenco è già stata completata quando viene aggiunto un nuovo oggetto, che viene ignorato fino al trasferimento successivo.
Storage Transfer Service esegue la corrispondenza del checksum sulle origini compatibili con S3?
Storage Transfer Service si basa sui dati di checksum restituiti dall'origine. Per compatibile con S3, Storage Transfer Service prevede che l'Etag dell'oggetto sia Hash MD5 dell'oggetto.
Tuttavia, gli oggetti trasferiti in uno spazio di archiviazione compatibile con S3 Il caricamento multiparte S3 non ha ETag MD5. In questo caso, Storage Transfer Service utilizza le dimensioni del file per convalidare l'oggetto trasferito.
Quale throughput può essere raggiunto per i trasferimenti dallo spazio di archiviazione compatibile con S3?
Puoi scalare la velocità effettiva di trasferimento aggiungendo altri agenti di trasferimento. Me Consigliamo di usare tre agenti per la tolleranza di errore e per riempire una pipe <10 Gbps. A scalare di più e aggiungere altri agenti. Gli agenti possono essere aggiunti e rimossi durante un trasferimento in fase di elaborazione.
Dove occorre eseguire il deployment degli agenti di trasferimento per trasferire i dati da Amazon S3 a Cloud Storage?
Puoi installare gli agenti in Amazon EC2 o EKS all'interno della stessa regione del tuo di sincronizzare la directory di una VM con un bucket. Puoi anche eseguire agenti su Google Cloud nella regione più vicina.