Storage Transfer Service unterstützt Übertragungen von cloudbasierten oder lokalen Objektspeichersystemen, die mit der Amazon S3 API kompatibel sind.
Storage Transfer Service greift auf Ihre Daten in S3-kompatiblen Quellen zu, indem Sie Übertragungs-Agents verwenden, die auf VMs in der Nähe der Datenquelle bereitgestellt werden. Diese Agents werden in einem Docker-Container ausgeführt und gehören zu einem Agent-Pool, also einer Sammlung von Agents, die dieselbe Konfiguration verwenden und Ihre Daten parallel verschieben.
Mit diesem Feature können Sie von einem lokalen oder Cloud-Objektspeicher zu Cloud Storage migrieren, Daten archivieren, um lokale Speicherkapazität freizugeben, Daten zur Geschäftskontinuität in Google Cloud zu replizieren oder Daten zur Analyse und Verarbeitung in Google Cloud zu übertragen. Kunden, die von AWS S3 zu Cloud Storage migrieren, bietet dieses Feature die Möglichkeit, die Netzwerkrouten zu Google Cloud zu steuern, was zu erheblich geringeren Kosten für die ausgehende Datenübertragung führt.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie Ihre Übertragungen konfigurieren:
- Weisen Sie Ihrem Nutzerkonto die Rolle Storage Transfer Admin zu.
- Installieren Sie das gcloud-CLI.
- Die Anforderungen für Dateisystemübertragungen erfüllen, einschließlich der Installation von Docker auf dem Übertragungs-Agent-Computer.
Nehmen Sie keine vertraulichen Informationen wie personenidentifizierbare Informationen oder Sicherheitsdaten in das Agent-ID-Präfix, den Agent-Pool-Namen oder den Namen des Übertragungsjobs auf. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und für Google-interne Systeme außerhalb Ihres Projekts bereitgestellt werden.
Quellanmeldedaten abrufen
Für die Übertragung von S3-kompatiblen Quellen sind eine Zugriffsschlüssel-ID und ein geheimer Zugriffsschlüssel erforderlich.
Die Schritte zum Abrufen dieser Daten hängen vom Speicheranbieter ab.
Für das Konto, aus dem die ID und der Schlüssel generiert werden, ist eine der folgenden Berechtigungen erforderlich:
- Leseberechtigung für Quellobjekte, wenn Sie Objekte an der Quelle nicht löschen möchten.
- Vollständiger Zugriff auf Quellobjekte, wenn Sie Objekte im Rahmen der Übertragung in der Quelle löschen möchten.
Wenn Sie das Konto erstellt, die Berechtigungen hinzugefügt und die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel heruntergeladen haben, speichern Sie die ID und den Schlüssel an einem sicheren Ort.
Zugriff auf den Ziel-Bucket konfigurieren
Folgen Sie der Anleitung unter Zugriff auf eine Senke konfigurieren: Cloud Storage, um den Zugriff auf den Ziel-Bucket zu konfigurieren.
Agent-Pool erstellen
Der Name des Agent-Pools darf keine vertraulichen Informationen wie personenidentifizierbare Informationen oder Sicherheitsdaten enthalten. Ressourcennamen können an die Namen anderer Google Cloud-Ressourcen weitergegeben und für Google-interne Systeme außerhalb Ihres Projekts bereitgestellt werden.So erstellen Sie einen Agent-Pool:
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Agent-Pools auf.
Die Seite Agent-Pools wird angezeigt, auf der die vorhandenen Agent-Pools aufgeführt sind.
Klicken Sie auf Weiteren Pool erstellen.
Benennen Sie den Pool und beschreiben Sie ihn eventuell.
Sie können ein Bandbreitenlimit festlegen, das für den gesamten Pool gilt. Die angegebene Bandbreite in MB/s wird zwischen allen Agents im Pool aufgeteilt. Weitere Informationen finden Sie unter Netzwerkbandbreite verwalten.
Klicken Sie auf Erstellen.
REST API
Verwenden Sie projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Wobei:
PROJECT_ID
: die Projekt-ID ist, in der Sie den Agent-Pool erstellen.AGENT_POOL_ID
: die Agent-Pool-ID ist, die Sie erstellen.
Wenn ein Agent-Pool länger als 30 Minuten im Status Creating
verbleibt, empfehlen wir, den Agent-Pool zu löschen und neu zu erstellen.
Der Widerruf der erforderlichen Storage Transfer Service-Berechtigungen aus einem Projekt, während sich ein Agent-Pool im Status Creating
befindet, führt zu einem falschen Dienstverhalten.
gcloud-CLI
Führen Sie [gcloud transfer agent-pools create
][agent-pools-create] aus, um einen Agent-Pool mit dem gcloud
-Befehlszeilentool zu erstellen.
gcloud transfer agent-pools create AGENT_POOL
Folgende Optionen sind verfügbar:
AGENT_POOL ist eine eindeutige, permanente Kennzeichnung für diesen Pool.
--no-async
blockiert andere Aufgaben in Ihrem Terminal, bis der Pool erstellt wurde. Wenn nicht enthalten, wird die Poolerstellung asynchron ausgeführt.--bandwidth-limit
legt fest, wie viel von Ihrer Bandbreite in MB/s den Agents dieses Pools zur Verfügung gestellt werden soll. Ein Bandbreitenlimit gilt für alle Agents in einem Pool und kann verhindern, dass die Übertragungsarbeitslast des Pools andere Vorgänge unterbricht, die die Bandbreite ebenfalls nutzen. Geben Sie beispielsweise „50” ein, um ein Bandbreitenlimit von 50 MB/s festzulegen. Wenn Sie dieses Flag nicht angeben, verwenden die Agents dieses Pools die gesamte verfügbare Bandbreite.--display-name
ist ein änderbarer Name, mit dem Sie diesen Pool identifizieren können. Sie können Details angeben, die möglicherweise nicht in den eindeutigen vollständigen Ressourcennamen des Pools passen.
Übertragungs-Agents installieren
Übertragungs-Agents sind Software-Agents, die Übertragungsaktivitäten von Ihrer Quelle über Storage Transfer Service koordinieren. Sie müssen auf einem System installiert sein, das Zugriff auf Ihre Quelldaten hat.
gcloud-CLI
Verwenden Sie den Befehl transfer agents install
, um Agents für die Verwendung mit einer S3-kompatiblen Quelle über die gcloud
-Befehlszeile zu installieren.
Sie müssen Anmeldedaten entweder als Umgebungsvariablen als Werte von AWS_ACCESS_KEY_ID
und AWS_SECRET_ACCESS_KEY
angeben oder als Standardanmeldedaten in den Konfigurationsdateien Ihres Systems speichern.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Verwenden Sie die Option --creds-file
, um Agents mit einem Dienstkontoschlüssel auszuführen:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
Sie müssen dem Nutzer- oder Dienstkonto, das zum Ausführen der Übertragungs-Agents verwendet wird, die folgenden IAM-Rollen zuweisen:
- Storage Transfer Agent (
roles/storagetransfer.transferAgent
) für das Projekt. Eine Anleitung finden Sie in der IAM-Dokumentation unter Einzelne Rolle zuweisen. - Storage-Objekt-Administrator (
roles/storage.objectAdmin
) für das Projekt oder den Ziel-Bucket oder eine benutzerdefinierte Rolle mit den Berechtigungen, die unter Agent-basierte Übertragungsberechtigungen aufgeführt sind. Eine Anleitung finden Sie unter Hauptkonto zu einer Richtlinie auf Bucket-Ebene hinzufügen.
Übertragungsjob erstellen
Google Cloud Console
So erstellen Sie eine Übertragung von einer S3-kompatiblen Quelle in einen Cloud Storage-Bucket:
Rufen Sie in der Google Cloud Console die Seite Storage Transfer Service auf.
Klicken Sie auf Übertragung erstellen. Die Seite Übertragungsjob erstellen wird angezeigt.
Wählen Sie als Quelltyp S3-kompatibler Objektspeicher aus. Das Ziel muss Google Cloud Storage sein.
Klicken Sie auf Next step (Nächster Schritt).
Quelle konfigurieren
Geben Sie die erforderlichen Informationen für diese Übertragung an:
Wählen Sie den Agent-Pool aus, den Sie für diese Übertragung konfiguriert haben.
Geben Sie den Bucket-Namen relativ zum Endpunkt ein. Ihre Daten befinden sich beispielsweise unter:
https://example.com/bucket_a
Eingeben:
bucket_a
Geben Sie den Endpunkt ein. Geben Sie nicht das Protokoll an (
http://
oderhttps://
). Beispiel:example.com
Geben Sie optionale Attribute für diese Übertragung an:
Geben Sie die Signaturregion für das Signieren von Anfragen ein.
Wählen Sie den Signaturprozess für diese Anfrage aus.
Wählen Sie den Adressierungsstil aus. Dadurch wird bestimmt, ob der Bucket-Name im Pfadstil angegeben wird (z. B.
https://example.com/bucket-name/key-name
) oder im virtuellen gehosteten Stil (z. B.https://bucket-name.example.com/key-name
. Weitere Informationen finden Sie in der Amazon-Dokumentation unter Virtuelles Hosting von Buckets.Wählen Sie das Netzwerkprotokoll aus.
Wählen Sie die zu verwendende API-Eintragsversion aus. Weitere Informationen finden Sie in der Dokumentation zu ListObjectsV2 und ListObjects.
Klicken Sie auf Next step (Nächster Schritt).
Senke konfigurieren
Geben Sie im Feld Bucket oder Ordner den Ziel-Bucket und optional den Ordnernamen ein. Sie können auch auf Durchsuchen klicken, um einen Bucket aus einer Liste der vorhandenen Buckets im aktuellen Projekt auszuwählen. Klicken Sie zum Erstellen eines neuen Buckets auf Neuen Bucket erstellen.
Klicken Sie auf Next step (Nächster Schritt).
Übertragungseinstellungen auswählen
Geben Sie im Feld Beschreibung eine Beschreibung der Übertragung ein. Geben Sie als Best Practice eine aussagekräftige Beschreibung ein, damit Sie die Jobs unterscheiden können.
Wählen Sie unter Metadatenoptionen die Standardoptionen aus oder klicken Sie auf Optionen auswählen und auswählen, um Werte für alle unterstützten Metadaten anzugeben. Weitere Informationen finden Sie unter Metadatenaufbewahrung.
Wählen Sie unter Wann überschreiben? eine der folgenden Optionen aus:
Falls unterschiedlich: Überschreibt Zieldateien, wenn die Quelldatei mit demselben Namen unterschiedliche ETags oder Prüfsummenwerte hat.
Immer: Zieldateien werden immer geschrieben, wenn die Quelldatei denselben Namen hat, auch wenn sie identisch sind.
Wählen Sie unter Löschzeitpunkt eine der folgenden Optionen aus:
Nie: Dateien werden niemals aus der Quelle oder dem Ziel gelöscht.
Datei nach der Übertragung aus der Quelle löschen: Dateien werden aus der Quelle gelöscht, nachdem sie an das Ziel übertragen wurden.
Dateien aus dem Ziel löschen, wenn sie nicht auch in der Quelle sind: Wenn sich Dateien im Cloud Storage-Ziel-Bucket nicht auch in der Quelle befinden, löschen Sie die Dateien aus dem Cloud Storage-Bucket.
Mit dieser Option wird sichergestellt, dass der Cloud Storage-Ziel-Bucket genau mit Ihrer Quelle übereinstimmt.
Wählen Sie unter Benachrichtigungsoptionen Ihr Pub/Sub-Thema und die Ereignisse aus, die Sie benachrichtigen möchten. Weitere Informationen finden Sie unter Pub/Sub-Benachrichtigungen.
Klicken Sie auf Next step (Nächster Schritt).
Übertragung planen
Sie können Ihre Übertragung für die einmalige Ausführung planen oder eine wiederkehrende Übertragung konfigurieren.
Klicken Sie auf Erstellen, um die Übertragung zu erstellen.
gcloud-CLI
Bevor Sie eine Übertragung mit der gcloud
-Befehlszeile erstellen, folgen Sie der Anleitung unter Zugriff auf eine Cloud Storage-Senke konfigurieren.
Verwenden Sie den folgenden Befehl, um mit der gcloud
-Befehlszeile eine Übertragung von einer S3-kompatiblen Quelle in einen Cloud Storage-Bucket zu erstellen:
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
Die folgenden Flags sind erforderlich:
--source-agent-pool
ist der Name des Agent-Pools, der für diese Übertragung verwendet werden soll.--source-endpoint
gibt den Endpunkt des Speichersystems an. Beispiel:s3.us-east.example.com
Wenden Sie sich an Ihren Anbieter, um das richtige Format zu finden.
Die verbleibenden Flags sind optional:
--source-signing-region
gibt eine Region für Signieranfragen an. Lassen Sie dieses Flag weg, wenn Ihr Speicheranbieter keine Signaturregion benötigt.--source-auth-method
gibt die zu verwendende Authentifizierungsmethode an. Gültige Werte sindAWS_SIGNATURE_V2
oderAWS_SIGNATURE_V4
. Weitere Informationen finden Sie in der Dokumentation zu SigV4 und SigV2 von Amazon.--source-request-model
gibt den zu verwendenden Adressierungsstil an. Gültige Werte sindPATH_STYLE
oderVIRTUAL_HOSTED_STYLE
. Der Pfadstil hat das Formathttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME
. Der virtuelle Hosting-Stil verwendet das Format `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME.--source-network-protocol
gibt das Netzwerkprotokoll an, das Agents für diesen Job verwenden sollen. Gültige Werte sindHTTP
undHTTPS
.--source-list-api
gibt die Version der S3 Listing API für die Rückgabe von Objekten aus dem Bucket an. Gültige Werte sindLIST_OBJECTS
oderLIST_OBJECTS_V2
. Weitere Informationen finden Sie in der Amazon-Dokumentation zu ListObjectsV2 und ListObjects.
Weitere Optionen für Übertragungsjobs finden Sie in der Datei gcloud transfer jobs create --help
oder in der Referenzdokumentation zu gcloud
.
REST API
Bevor Sie die REST API zum Erstellen einer Übertragung verwenden, folgen Sie der Anleitung unter Zugriff auf eine Cloud Storage-Senke konfigurieren.
Erstellen Sie ein JSON-Objekt ähnlich dem folgenden Beispiel, um eine Übertragung von einer S3-kompatiblen Quelle mithilfe der REST API zu erstellen.
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
}
}
}
Feldbeschreibungen finden Sie in der API-Referenz AwsS3CompatibleData
.
Clientbibliotheken
Bevor Sie die Clientbibliotheken zum Erstellen einer Übertragung verwenden, folgen Sie der Anleitung unter Zugriff auf eine Cloud Storage-Senke konfigurieren.
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Storage Transfer Service Go API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Storage Transfer Service Java API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Storage Transfer Service Node.js API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Storage Transfer Service finden Sie unter Storage Transfer Service-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Storage Transfer Service Python API.
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei Storage Transfer Service zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Häufig gestellte Fragen
Entstehen Kosten für die Übertragung von S3-kompatiblem Speicher?
Für Übertragungen aus einem S3-kompatiblen Speicher fällt die Gebühr für „Übertragungen von Storage Transfer Service, die Kundenservicemitarbeiter erfordern“ nicht an. Informationen zu allen anderen Gebühren, die anfallen können, finden Sie unter Preise. Außerdem können vom Quell-Cloud-Anbieter Kosten für ausgehende Datenübertragungen und Betriebsabläufe anfallen.
Wird Cloud Logging für S3-kompatible Speicherübertragungen unterstützt?
Ja. Sie können Cloud Logging für Ihre Übertragungen aktivieren. Folgen Sie dazu der Anleitung unter Cloud Logging für Storage Transfer Service.
Werden Übertragungen mit einem Manifest unterstützt?
Ja, Manifestdateien werden für S3-kompatible Übertragungen unterstützt.
Wird das Objekt übertragen, wenn ich dem Quell-Bucket nach dem Start des Jobs ein Objekt hinzufüge?
Storage Transfer Service führt einen Listenvorgang für den Quell-Bucket aus, um den Differenzwert vom Ziel zu berechnen. Wenn der Listenvorgang bereits abgeschlossen ist, wenn das neue Objekt hinzugefügt wird, wird dieses Objekt bis zur nächsten Übertragung übersprungen.
Führt Storage Transfer Service einen Prüfsummenabgleich für S3-kompatible Quellen aus?
Der Storage Transfer Service verwendet die Prüfsummendaten, die von der Quelle zurückgegeben werden. Bei S3-kompatiblem Speicher erwartet der Storage Transfer Service, dass das ETag des Objekts der MD5-Hash des Objekts ist.
Objekte, die mithilfe des mehrteiligen S3-Uploads in einen S3-kompatiblen Speicher übertragen wurden, haben jedoch keine MD5-ETags. In diesem Fall verwendet der Storage Transfer Service die Dateigröße, um das übertragene Objekt zu validieren.
Welcher Durchsatz kann für Übertragungen von S3-kompatiblem Speicher erreicht werden?
Der Übertragungsdurchsatz kann durch Hinzufügen weiterer Übertragungs-Agents skaliert werden. Wir empfehlen die Verwendung von drei Agents für Fehlertoleranz und das Füllen einer Pipe von < 10 Gbit/s. Fügen Sie weitere Agents hinzu, um weitere Instanzen zu skalieren. Agents können während der Übertragung hinzugefügt und entfernt werden.
Wo sollten Übertragungs-Agents bereitgestellt werden, um Daten von Amazon S3 nach Cloud Storage zu übertragen?
Sie können Agents in Amazon EC2 oder EKS in derselben Region wie Ihren Bucket installieren. Sie können Agents auch in Google Cloud in der nächsten Region ausführen.