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-kompatiblem Speicher 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. Für Kunden, die von AWS S3 zu Cloud Storage migrieren, bietet diese Funktion die Möglichkeit, Netzwerkrouten zu Google Cloud zu steuern, was zu deutlich geringeren Gebühren für ausgehende Datenübertragungen führt.
Hinweise
Führen Sie vor der Konfiguration der Übertragungen die folgenden Schritte aus:
- Installieren Sie das gcloud-CLI.
- Die Anforderungen für die Dateisystemübertragung erfüllen, einschließlich der Installation von Docker auf dem Computer des Übertragungs-Agents.
Quellanmeldedaten abrufen
Für die Übertragung von S3-kompatiblen Speichern 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.
Google Cloud-Berechtigungen konfigurieren
Bevor Sie eine Übertragung erstellen, müssen Sie Berechtigungen für die folgenden Entitäten konfigurieren:
Das Nutzerkonto, mit dem die Übertragung erstellt wird. Das ist das Konto, mit dem Sie in der Google Cloud Console angemeldet sind, oder das Konto, das bei der Authentifizierung in der gcloud CLI angegeben wird. Das Nutzerkonto kann ein reguläres Nutzerkonto oder ein nutzerverwaltetes Dienstkonto sein. | |
Das von Google verwaltete Dienstkonto, auch als Dienst-Agent bezeichnet, das vom Storage Transfer Service verwendet wird. Dieses Konto wird in der Regel anhand seiner E-Mail-Adresse identifiziert, die das Format project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com hat.
|
|
Das Konto des Migrations-Agents, das Google Cloud-Berechtigungen für Migrations-Agents bereitstellt. Für die Authentifizierung von Transfer-Agent-Konten werden die Anmeldedaten des Nutzers verwendet, der sie installiert, oder die Anmeldedaten eines nutzerverwalteten Dienstkontos. |
Eine Anleitung finden Sie unter Agentbasierte Berechtigungen für die Weiterleitung.
Übertragungsoptionen
Die folgenden Storage Transfer Service-Funktionen sind für Übertragungen von S3-kompatiblem Speicher zu Cloud Storage verfügbar:
- Bestimmte Dateien mithilfe eines Manifests übertragen
- Sie können eine Liste von Dateien an den Storage Transfer Service übergeben. Weitere Informationen finden Sie unter Bestimmte Dateien oder Objekte mithilfe eines Manifests übertragen.
- Speicherklasse angeben
- Sie können die
Cloud Storage-Speicherklasse angeben, die für Ihre Daten im Ziel-Bucket verwendet werden soll. REST-Details finden Sie in den Optionen für
StorageClass
. Sie können auch das Flag--custom-storage-class
mit der Google Cloud CLI verwenden.Alle Speicherklasseneinstellungen werden ignoriert, wenn für den Zielbucket Autoclass aktiviert ist. Wenn Autoclass aktiviert ist, werden Objekte, die in den Bucket übertragen werden, anfangs auf „Standard Storage“ gesetzt.
- Metadaten beibehalten
-
Wenn Sie Dateien aus S3-kompatiblem Speicher übertragen, kann Storage Transfer Service optional bestimmte Attribute als benutzerdefinierte Metadaten beibehalten.
Weitere Informationen dazu, welche Metadaten aufbewahrt werden können und wie Sie die Übertragung konfigurieren, finden Sie im Abschnitt Von Amazon S3 oder S3-kompatiblem Speicher zu Cloud Storage des Artikels Metadatenaufbewahrung.
- Logging und Monitoring
- Übertragungen von S3-kompatiblem Speicher können in Cloud Logging und Cloud Monitoring eingesehen werden. Weitere Informationen finden Sie unter Cloud Logging für Storage Transfer Service und Übertragungsjobs überwachen. Sie können auch Pub/Sub-Benachrichtigungen konfigurieren.
Agent-Pool erstellen
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
Wenn Sie Agents für die Verwendung mit einer S3-kompatiblen Quelle mit der Befehlszeile gcloud
installieren möchten, verwenden Sie den Befehl transfer agents install
.
Sie müssen Anmeldedaten entweder als Umgebungsvariablen als Werte von AWS_ACCESS_KEY_ID
und AWS_SECRET_ACCESS_KEY
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
Ü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 weder das Protokoll (
http://
oderhttps://
) noch den Bucket-Namen an. 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 mit der gcloud
CLI eine Übertragung 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. Lassen Sie dabei das Protokoll weg (z.B.https://
) oder den Bucket-Namen.
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 mit der REST API eine Übertragung erstellen, 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 mit den Clientbibliotheken eine Übertragung erstellen, folgen Sie der Anleitung unter Zugriff auf einen Cloud Storage-Sink 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 die Standardanmeldedaten für Anwendungen ein, um sich beim 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 die Standardanmeldedaten für Anwendungen ein, um sich beim 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 die Standardanmeldedaten für Anwendungen ein, um sich beim 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 die Standardanmeldedaten für Anwendungen ein, um sich beim 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 von S3-kompatiblem Speicher wird keine Gebühr für „Storage Transfer Service-Übertragungen, die Agents erfordern“ berechnet. Alle weiteren anfallenden Gebühren finden Sie unter Preise. Der Quell-Cloud-Anbieter kann Kosten für ausgehende Datenübertragung und Vorgänge in Rechnung stellen.
Wird die Cloud-Protokollierung 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.