Storage Transfer Service mendukung transfer dari sistem penyimpanan objek cloud atau lokal yang kompatibel dengan Amazon S3 API.
Storage Transfer Service mengakses data Anda di penyimpanan yang kompatibel dengan S3 menggunakan agen transfer yang di-deploy di VM yang dekat dengan sumber data. Agen ini berjalan dalam container Docker dan termasuk dalam kumpulan agen, yang merupakan kumpulan agen yang menggunakan konfigurasi yang sama dan yang secara kolektif memindahkan data Anda secara paralel.
Dengan fitur ini, Anda dapat bermigrasi dari penyimpanan objek lokal atau cloud ke Cloud Storage, mengarsipkan data untuk mengosongkan kapasitas penyimpanan lokal, mereplikasi data keGoogle Cloud untuk kelangsungan bisnis, atau mentransfer data keGoogle Cloud untuk analisis dan pemrosesan. Untuk pelanggan yang bermigrasi dari AWS S3 ke Cloud Storage, fitur ini memberikan opsi untuk mengontrol rute jaringan ke Google Cloud, sehingga menghasilkan biaya transfer data keluar yang jauh lebih rendah.
Sebelum memulai
Sebelum mengonfigurasi transfer, selesaikan langkah-langkah berikut:
- Instal gcloud CLI.
- Penuhi persyaratan untuk transfer sistem file, termasuk menginstal Docker di mesin agen transfer.
Mendapatkan kredensial sumber
Mentransfer dari penyimpanan yang kompatibel dengan S3 memerlukan ID kunci akses dan kunci akses rahasia.
Langkah-langkah untuk mendapatkannya bergantung pada penyedia penyimpanan Anda.
Akun tempat ID dan kunci dibuat memerlukan salah satu izin berikut:
- Izin hanya baca pada objek sumber, jika Anda tidak ingin menghapus objek di sumber.
- Akses penuh ke objek sumber, jika Anda memilih untuk menghapus objek di sumber sebagai bagian dari transfer.
Setelah membuat akun, menambahkan izin, dan mendownload ID kunci akses dan kunci akses rahasia, simpan ID dan kunci di tempat yang aman.
Mengonfigurasi izin Google Cloud
Sebelum membuat transfer, Anda harus mengonfigurasi izin untuk entitas berikut:
Akun pengguna yang digunakan untuk membuat transfer. Akun ini adalah akun yang login ke konsol Google Cloud , atau akun yang ditentukan saat melakukan autentikasi ke CLI `gcloud`. Akun pengguna dapat berupa akun pengguna biasa, atau akun layanan yang dikelola pengguna. | |
Akun layanan yang dikelola Google, yang juga dikenal sebagai agen
layanan, yang digunakan oleh Storage Transfer Service. Akun ini umumnya diidentifikasi berdasarkan
alamat emailnya, yang menggunakan format
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com .
|
|
![]() |
Akun agen transfer yang memberikan Google Cloud izin untuk agen transfer. Akun agen transfer menggunakan kredensial pengguna yang menginstalnya, atau kredensial akun layanan yang dikelola pengguna, untuk melakukan autentikasi. |
Lihat Izin transfer berbasis agen untuk mengetahui petunjuknya.
Opsi transfer
Fitur Storage Transfer Service berikut tersedia untuk transfer dari penyimpanan yang kompatibel dengan S3 ke Cloud Storage:
- Mentransfer file tertentu menggunakan manifes
- Anda dapat meneruskan daftar file agar Storage Transfer Service dapat bertindak. Lihat Mentransfer file atau objek tertentu menggunakan file manifes untuk mengetahui detailnya.
- Tentukan kelas penyimpanan
- Anda dapat menentukan
kelas penyimpanan Cloud Storage yang akan digunakan untuk data Anda di bucket
tujuan. Lihat opsi
StorageClass
untuk detail REST, atau gunakan flag--custom-storage-class
dengan Google Cloud CLI.Perhatikan bahwa setelan kelas penyimpanan apa pun akan diabaikan jika bucket tujuan mengaktifkan Autoclass. Jika Autoclass diaktifkan, objek yang ditransfer ke dalam bucket awalnya ditetapkan ke penyimpanan Standard.
- Penyimpanan metadata
-
Saat mentransfer file dari penyimpanan yang kompatibel dengan S3, Storage Transfer Service dapat secara opsional menyimpan atribut tertentu sebagai metadata kustom.
Lihat bagian Amazon S3 atau penyimpanan yang kompatibel dengan S3 ke Cloud Storage di Mempertahankan metadata untuk mengetahui detail tentang metadata yang dapat dipertahankan, dan cara mengonfigurasi transfer Anda.
- Logging dan pemantauan
- Transfer dari penyimpanan yang kompatibel dengan S3 dapat dilihat di Cloud Logging dan Cloud Monitoring. Lihat Cloud Logging untuk Storage Transfer Service dan Memantau tugas transfer untuk mengetahui detailnya. Anda juga dapat mengonfigurasi notifikasi Pub/Sub.
Membuat kumpulan agen
Untuk membuat kumpulan agen:
Google Cloud console
Di konsol Google Cloud , buka halaman Agent pools.
Halaman Kumpulan agen akan ditampilkan, yang mencantumkan kumpulan agen yang ada.
Klik Buat pool lain.
Beri nama pool Anda, dan jika perlu, deskripsikan.
Anda dapat memilih untuk menetapkan batas bandwidth yang akan berlaku untuk pool secara keseluruhan. Bandwidth yang ditentukan dalam MB/dtk akan dibagi di antara semua agen dalam pool. Lihat Mengelola bandwidth jaringan untuk mengetahui informasi selengkapnya.
Klik Buat.
REST API
Gunakan projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
Dengan:
PROJECT_ID
: ID project tempat Anda membuat kumpulan agen.AGENT_POOL_ID
: ID pool agen yang Anda buat.
Jika kumpulan agen macet dalam status Creating
selama lebih dari 30 menit,
sebaiknya hapus kumpulan agen dan buat lagi.
Mencabut izin Storage Transfer Service yang diperlukan dari project saat
kumpulan agen berada dalam status Creating
akan menyebabkan perilaku layanan yang salah.
gcloud CLI
Untuk membuat kumpulan agen dengan alat command line gcloud
, jalankan
[gcloud transfer agent-pools create
][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
Dengan opsi berikut tersedia:
AGENT_POOL adalah ID unik dan permanen untuk kumpulan ini.
--no-async
memblokir tugas lain di terminal Anda hingga pool dibuat. Jika tidak disertakan, pembuatan kumpulan akan berjalan secara asinkron.--bandwidth-limit
menentukan seberapa besar bandwidth Anda dalam MB/dtk yang akan disediakan untuk agen pool ini. Batas bandwidth berlaku untuk semua agen dalam kumpulan dan dapat membantu mencegah beban kerja transfer kumpulan mengganggu operasi lain yang menggunakan bandwidth Anda. Misalnya, masukkan '50' untuk menetapkan batas bandwidth 50 MB/dtk. Jika tidak ditentukan, agen pool ini akan menggunakan semua bandwidth yang tersedia.--display-name
adalah nama yang dapat diubah untuk membantu Anda mengidentifikasi kumpulan ini. Anda dapat menyertakan detail yang mungkin tidak sesuai dengan nama lengkap resource unik kumpulan.
Menginstal agen transfer
Agen transfer adalah agen software yang mengoordinasikan aktivitas transfer dari sumber Anda melalui Storage Transfer Service. Agen ini harus diinstal pada sistem dengan akses ke data sumber Anda.
gcloud CLI
Untuk menginstal agen yang akan digunakan dengan sumber yang kompatibel dengan S3 menggunakan gcloud
CLI,
gunakan perintah transfer agents install
.
Anda harus memberikan kredensial akses baik sebagai variabel lingkungan sebagai nilai AWS_ACCESS_KEY_ID
dan AWS_SECRET_ACCESS_KEY
, atau disimpan sebagai kredensial default dalam file konfigurasi sistem Anda.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
Untuk menjalankan agen menggunakan
kunci akun layanan, gunakan
opsi --creds-file
:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
Membuat tugas transfer
Google Cloud console
Ikuti langkah-langkah berikut untuk membuat transfer dari sumber yang kompatibel dengan S3 ke bucket Cloud Storage.
Buka halaman Storage Transfer Service di konsol Google Cloud .
Klik Buat tugas transfer. Halaman Buat tugas transfer akan ditampilkan.
Pilih S3-compatible object storage sebagai Source type. Tujuan harus berupa Google Cloud Storage.
Klik Next step.
Mengonfigurasi sumber
Tentukan informasi yang diperlukan untuk transfer ini:
Pilih kumpulan agen yang Anda konfigurasi untuk transfer ini.
Masukkan Nama bucket relatif terhadap endpoint. Misalnya, jika data Anda berada di:
https://example.com/bucket_a
Masukkan:
bucket_a
Masukkan Endpoint. Jangan sertakan protokol (
http://
atauhttps://
) atau nama bucket. Contoh:example.com
Tentukan atribut opsional untuk transfer ini:
Masukkan Wilayah penandatanganan yang akan digunakan untuk penandatanganan permintaan.
Pilih Proses penandatanganan untuk permintaan ini.
Pilih Gaya penulisan alamat. Hal ini menentukan apakah nama bucket diberikan dalam gaya jalur (misalnya,
https://example.com/bucket-name/key-name
) atau virtual hosted-style (misalnya,https://bucket-name.example.com/key-name
). Baca Virtual hosting of buckets dalam dokumentasi Amazon untuk mengetahui informasi selengkapnya.Pilih Network protocol.
Pilih versi API listingan yang akan digunakan. Lihat dokumentasi ListObjectsV2 dan ListObjects untuk mengetahui informasi selengkapnya.
Klik Next step.
Mengonfigurasi sink
Di kolom Bucket atau folder, masukkan bucket tujuan dan (opsional) nama folder, atau klik Jelajahi untuk memilih bucket dari daftar bucket yang ada di project saat ini. Untuk membuat bucket baru, klik
Buat bucket baru.
Klik Next step.
Memilih setelan transfer
Di kolom Deskripsi, masukkan deskripsi transfer. Sebagai praktik terbaik, masukkan deskripsi yang bermakna dan unik agar Anda dapat membedakan tugas.
Di bagian Opsi metadata, pilih untuk menggunakan opsi default, atau klik Lihat dan pilih opsi untuk menentukan nilai bagi semua metadata yang didukung. Lihat Penyimpanan metadata untuk mengetahui detailnya.
Di bagian Kapan menimpa, pilih salah satu opsi berikut:
Jika berbeda: Menimpa file tujuan jika file sumber dengan nama yang sama memiliki nilai ETag atau checksum yang berbeda.
Selalu: Selalu menimpa file tujuan saat file sumber memiliki nama yang sama, meskipun keduanya identik.
Di bagian Kapan harus dihapus, pilih salah satu opsi berikut:
Jangan pernah: Jangan pernah menghapus file dari sumber atau tujuan.
Hapus file dari sumber setelah ditransfer: Hapus file dari sumber setelah ditransfer ke tujuan. Jika file sumber tidak ditransfer, misalnya karena sudah ada di tujuan, file sumber tidak akan dihapus.
Hapus file dari tujuan jika di sumbernya tidak ada: Jika file di bucket Cloud Storage tujuan tidak ada di sumber, maka hapus file dari bucket Cloud Storage.
Opsi ini memastikan bahwa bucket Cloud Storage tujuan sama persis dengan sumber Anda.
Di bagian Opsi notifikasi, pilih topik Pub/Sub dan peristiwa yang akan diberi notifikasi. Lihat notifikasi Pub/Sub untuk detail selengkapnya.
Klik Next step.
Menjadwalkan transfer
Anda dapat menjadwalkan transfer agar berjalan satu kali saja, atau mengonfigurasi transfer berulang.
Klik Buat untuk membuat tugas transfer.
gcloud CLI
Sebelum menggunakan CLI gcloud
untuk membuat transfer, ikuti petunjuk di
Mengonfigurasi akses ke sink Cloud Storage.
Untuk menggunakan CLI gcloud
guna membuat transfer dari sumber yang kompatibel dengan S3 ke bucket Cloud Storage, gunakan perintah berikut.
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
Flag berikut diperlukan:
--source-agent-pool
adalah nama kumpulan agen yang akan digunakan untuk transfer ini.--source-endpoint
menentukan endpoint sistem penyimpanan Anda. Contoh,s3.us-east.example.com
. Hubungi penyedia Anda untuk mengetahui format yang benar. Jangan sertakan protokol (misalnya,https://
) atau nama bucket.
Flag lainnya bersifat opsional:
--source-signing-region
menentukan region untuk menandatangani permintaan. Hapus tanda ini jika penyedia penyimpanan Anda tidak memerlukan wilayah penandatanganan.--source-auth-method
menentukan metode autentikasi yang akan digunakan. Nilai yang valid adalahAWS_SIGNATURE_V2
atauAWS_SIGNATURE_V4
. Lihat dokumentasi SigV4 dan SigV2 Amazon untuk mengetahui informasi selengkapnya.--source-request-model
menentukan gaya penentuan alamat yang akan digunakan. Nilai yang valid adalahPATH_STYLE
atauVIRTUAL_HOSTED_STYLE
. Gaya jalur menggunakan formathttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME
. Gaya yang dihosting virtual menggunakan format `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME.--source-network-protocol
menentukan protokol jaringan yang harus digunakan agen untuk tugas ini. Nilai yang valid adalahHTTP
atauHTTPS
.--source-list-api
menentukan versi S3 Listing API untuk menampilkan objek dari bucket. Nilai yang valid adalahLIST_OBJECTS
atauLIST_OBJECTS_V2
. Lihat dokumentasi ListObjectsV2 dan ListObjects Amazon untuk mengetahui informasi selengkapnya.
Untuk opsi tugas transfer tambahan, jalankan gcloud transfer jobs create --help
atau lihat dokumentasi referensi gcloud
.
REST API
Sebelum menggunakan REST API untuk membuat transfer, ikuti petunjuk di bagian Mengonfigurasi akses ke sink Cloud Storage.
Untuk membuat transfer dari sumber yang kompatibel dengan S3 menggunakan REST API, buat objek JSON yang mirip dengan contoh berikut.
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
}
}
}
Lihat referensi API AwsS3CompatibleData
untuk mengetahui deskripsi kolom.
Library klien
Sebelum menggunakan library klien untuk membuat transfer, ikuti petunjuk di Mengonfigurasi akses ke sink Cloud Storage.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Storage Transfer Service, lihat library klien Storage Transfer Service. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Storage Transfer Service.
Untuk melakukan autentikasi ke Storage Transfer Service, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Pertanyaan umum (FAQ)
Apakah ada biaya untuk mentransfer dari penyimpanan yang kompatibel dengan S3?
Transfer dari penyimpanan yang kompatibel dengan S3 tidak dikenai biaya "Transfer Storage Transfer Service yang memerlukan agen". Lihat Harga untuk biaya lain yang mungkin dikenakan. Anda mungkin juga dikenai biaya transfer data keluar dan biaya operasional dari penyedia cloud sumber.
Apakah Cloud Logging didukung untuk transfer penyimpanan yang kompatibel dengan S3?
Ya, Anda dapat mengaktifkan Cloud Logging untuk transfer dengan mengikuti petunjuk di Cloud Logging untuk Storage Transfer Service.
Apakah transfer menggunakan manifes didukung?
Ya, file manifes didukung untuk transfer yang kompatibel dengan S3.
Jika saya menambahkan objek ke bucket sumber setelah tugas dimulai, apakah objek tersebut ditransfer?
Storage Transfer Service melakukan operasi daftar pada bucket sumber untuk menghitung perbedaan dari tujuan. Jika operasi daftar telah selesai saat objek baru ditambahkan, objek tersebut akan dilewati hingga transfer berikutnya.
Apakah Storage Transfer Service melakukan pencocokan checksum pada sumber yang kompatibel dengan S3?
Storage Transfer Service mengandalkan data checksum yang ditampilkan oleh sumber. Untuk penyimpanan yang kompatibel dengan S3, Storage Transfer Service mengharapkan ETag objek menjadi hash MD5 objek.
Namun, semua objek yang ditransfer ke penyimpanan yang kompatibel dengan S3 menggunakan upload multibagian S3 tidak memiliki ETag MD5. Dalam hal ini, Storage Transfer Service menggunakan ukuran file untuk memvalidasi objek yang ditransfer.
Berapa throughput yang dapat dicapai untuk transfer dari penyimpanan yang kompatibel dengan S3?
Throughput transfer Anda dapat diskalakan dengan menambahkan lebih banyak agen transfer. Sebaiknya gunakan 3 agen untuk toleransi fault dan untuk mengisi saluran <10 Gbps. Untuk menskalakan lebih banyak, tambahkan lebih banyak agen. Agen dapat ditambahkan dan dihapus saat transfer sedang diproses.
Di mana agen transfer harus di-deploy untuk mentransfer data dari Amazon S3 ke Cloud Storage?
Anda dapat menginstal agen di Amazon EC2 atau EKS dalam region yang sama dengan bucket Anda. Anda juga dapat menjalankan agen di Google Cloud di wilayah terdekat.