Halaman ini memberikan ringkasan replikasi lintas bucket dan petunjuk cara menggunakan fitur tersebut.
Ringkasan replikasi lintas bucket
Dalam beberapa kasus, Anda mungkin ingin menyalin data dari satu bucket Cloud Storage ke bucket lainnya. Replikasi lintas bucket menyalin objek baru dan yang diperbarui secara asinkron dari bucket sumber ke bucket tujuan.
Replikasi lintas bucket berbeda dengan replikasi default dan replikasi turbo karena data Anda ada di dua bucket, masing-masing dengan konfigurasinya sendiri seperti lokasi penyimpanan, enkripsi, akses, dan class penyimpanan. Oleh karena itu, layanan ini menawarkan pemulihan dan ketersediaan data, tetapi juga cocok untuk:
- Kedaulatan data: Mengelola data di seluruh wilayah yang berjauhan secara geografis.
- Memelihara versi pengembangan dan produksi yang terpisah: Buat bucket dan namespace yang berbeda, sehingga pengembangan tidak memengaruhi beban kerja produksi Anda.
- Membagikan data: Mereplikasi data ke bucket yang dimiliki oleh vendor atau partner.
- Agregasi Data: Menggabungkan data dari berbagai bucket ke dalam satu bucket untuk menjalankan beban kerja analisis.
- Mengelola biaya, keamanan, dan kepatuhan: Mengelola data Anda berdasarkan kepemilikan, kelas penyimpanan, dan periode retensi yang berbeda.
Replikasi lintas bucket menggunakan Storage Transfer Service untuk mereplikasi objek dan Pub/Sub untuk mendapatkan pemberitahuan tentang perubahan pada bucket sumber dan tujuan. Replikasi lintas bucket dapat diaktifkan di bucket baru yang Anda buat dan di bucket yang ada. Sebagian besar objek dapat direplikasi dalam hitungan menit, sedangkan objek yang lebih besar dari satu GiB dapat memerlukan waktu beberapa jam.
Sebelum memulai
Sebelum memulai, selesaikan langkah-langkah berikut.
Mengaktifkan Storage Transfer Service API
Jika Anda belum melakukannya, aktifkan Storage Transfer Service API.
Mendapatkan peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna menggunakan replikasi lintas bucket,
minta administrator untuk memberi Anda
peran IAM Storage Transfer User (roles/storagetransfer.user
) di bucket atau project.
Peran bawaan ini berisi izin yang diperlukan untuk menggunakan replikasi lintas bucket. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menggunakan replikasi lintas bucket:
-
storagetransfer.jobs.create
-
storagetransfer.jobs.delete
-
storagetransfer.jobs.get
-
storagetransfer.jobs.list
-
storagetransfer.jobs.run
-
storagetransfer.jobs.update
Untuk petunjuk cara memberikan peran pada bucket, lihat Menggunakan IAM dengan bucket. Untuk mengetahui petunjuk cara memberikan peran pada project, lihat Mengelola akses ke project.
Memberikan peran yang diperlukan
Replikasi lintas bucket menggunakan Pub/Sub untuk menerima notifikasi perubahan pada bucket sumber dan Storage Transfer Service untuk mereplikasi objek dari bucket sumber ke bucket tujuan. Untuk menggunakan replikasi lintas bucket, Anda juga harus memberikan izin yang diperlukan ke agen layanan yang digunakan oleh Storage Transfer Service untuk mereplikasi data dan agen layanan yang digunakan oleh Pub/Sub untuk menulis notifikasi.
Memberikan peran yang diperlukan ke agen layanan Storage Transfer Service
Storage Transfer Service menggunakan agen layanan yang dikelola Google untuk mereplikasi data. Alamat email agen layanan ini mengikuti format penamaan project-PROJECT_NUMBER@storage-transfer-service.
.
Anda bisa mendapatkan alamat email agen layanan Storage Transfer Service dengan menggunakan Storage Transfer Service googleServiceAccounts.get
API.
Agen layanan Storage Transfer Service memerlukan izin berikut untuk mereplikasi objek Anda dan menyiapkan notifikasi Pub/Sub untuk bucket sumber Anda:
Izin yang diperlukan
storage.buckets.get
pada bucket sumber dan tujuanstorage.buckets.update
pada bucket sumberstorage.objects.list
pada bucket sumberstorage.objects.get
pada bucket sumberstorage.objects.rewrite
pada bucket tujuanpubsub.topics.create
pada project
Izin ini dapat diberikan melalui peran Pub/Sub Editor
(roles/pubsub.editor
) dan peran Storage Admin (roles/storage.admin
).
Untuk peran yang kurang permisif daripada peran Storage Admin, Anda juga dapat menggunakan
peran khusus.
Memberikan peran yang diperlukan ke agen layanan Cloud Storage
Cloud Storage menggunakan agen layanan yang dikelola Google untuk mengelola
notifikasi Pub/Sub. Alamat email agen layanan ini mengikuti
format penamaan
service-PROJECT_NUMBER@gs-project-accounts.
.
Agen layanan Cloud Storage memerlukan izin berikut untuk menyiapkan Pub/Sub dan memublikasikan pesan ke topik:
Izin yang diperlukan
pubsub.topics.publish
di topik Pub/Subpubsub.subscriptions.consume
di topik Pub/Subpubsub.subscriptions.create
pada project
Izin ini dapat diberikan melalui peran Pub/Sub Publisher
(roles/pubsub.publisher
).
Membuat tugas replikasi
Konsol
Untuk petunjuk konsol Google Cloud tentang cara membuat tugas replikasi, baca Membuat tugas replikasi menggunakan konsol Google Cloud.
Command line
Saat menggunakan Google Cloud CLI, Anda dapat membuat tugas replikasi untuk bucket yang ada.
Untuk membuat tugas replikasi, gunakan perintah
gcloud alpha transfer jobs create
dengan flag
--replication
:
gcloud alpha transfer jobs create gs://SOURCE_BUCKET_NAME gs://DESTINATION_BUCKET_NAME --replication
Ganti:
SOURCE_BUCKET_NAME
dengan nama bucket sumber yang ingin Anda replikasi. Contoh,my-source-bucket
.DESTINATION_BUCKET_NAME
dengan nama bucket tujuan. Contoh,my-destination-bucket
.
REST API
JSON API
Saat menggunakan JSON API, Anda dapat membuat tugas replikasi untuk bucket yang ada.
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi objek
TransferJob
dengan resourceReplicationSpec
yang diinisialisasi:TransferJob { "name": "TRANSFER_JOB_NAME", ... ReplicationSpec: { "gcsDataSource": { "bucketName": "SOURCE_BUCKET_NAME" }, "gcsDataSink" { "bucketName": "DESTINATION_BUCKET_NAME" }, "objectConditions": { }, "transferOptions": { "overwriteWhen": "OVERWRITE_OPTION" } } ... }
Ganti:
TRANSFER_JOB_NAME
dengan nama yang ingin Anda tetapkan untuk tugas replikasi. Lihat dokumentasi referensitransferJobs
untuk mengetahui persyaratan pemberian nama.SOURCE_BUCKET_NAME
dengan nama bucket sumber yang berisi objek yang ingin Anda replikasi. Contoh,example-source-bucket
.DESTINATION_BUCKET_NAME
dengan nama bucket tujuan tempat objek Anda akan direplikasi. Contoh,example-destination-bucket
.OVERWRITE_OPTION
dengan opsi untuk cara objek yang ada di bucket tujuan dapat ditimpa sebagai hasil dari tugas replikasi, yang dapat terjadi jika objek tujuan dan objek sumber memiliki nama yang sama. Nilainya harus berupa salah satu dari berikut:ALWAYS
: Selalu timpa objek di bucket tujuanDIFFERENT
: Hanya menimpa objek di bucket tujuan jika data objek tujuan berbeda dengan data objek sumberNEVER
: Jangan pernah menimpa objek di bucket tujuan
Gunakan cURL untuk memanggil Storage Transfer Service REST API dengan permintaan
transferJobs.create
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagetransfer.googleapis.com/v1/transferJobs"
Dengan keterangan:
JSON_FILE_NAME
adalah nama file JSON yang Anda buat di Langkah 2.
Untuk memeriksa status tugas replikasi, lihat Cloud Logging untuk log Storage Transfer Service.
Mencantumkan tugas replikasi
Konsol
Untuk petunjuk konsol Google Cloud tentang cara mencantumkan tugas replikasi, lihat Mencantumkan tugas replikasi menggunakan konsol Google Cloud.
Command line
Gunakan perintah gcloud alpha transfer jobs list
dengan
flag --job-type
:
gcloud alpha transfer jobs list --job-type=replication
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan cURL untuk memanggil Storage Transfer Service REST API dengan permintaan
transferJobs.list
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagetransfer.googleapis.com/v1/transferJobs"
Melihat tugas replikasi
Konsol
Untuk petunjuk konsol Google Cloud tentang cara melihat tugas replikasi, lihat Melihat tugas replikasi menggunakan konsol Google Cloud.
Command line
Gunakan perintah gcloud alpha transfer jobs describe
:
gcloud alpha transfer jobs describe JOB_NAME
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas transfer, cantumkan tugas replikasi Anda.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil Storage Transfer Service REST API dengan permintaantransferJobs.get
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagetransfer.googleapis.com/v1/transferJobs/JOB_NAME"
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas replikasi, cantumkan tugas replikasi.
Memperbarui tugas replikasi
Anda dapat memperbarui kolom berikut dari tugas replikasi:
Deskripsi tugas replikasi
Konfigurasi untuk menjalankan tugas replikasi
Konfigurasi notifikasi yang dipublikasikan ke Pub/Sub
Perilaku logging untuk operasi tugas replikasi
Status tugas replikasi (baik diaktifkan, dinonaktifkan, atau dihapus)
Konsol
Untuk petunjuk konsol Google Cloud tentang cara memperbarui tugas replikasi, lihat Memperbarui tugas replikasi menggunakan konsol Google Cloud.
Command line
Gunakan perintah gcloud alpha transfer jobs update
dengan flag
yang mengontrol properti tugas replikasi yang ingin Anda perbarui. Untuk daftar kemungkinan flag, lihat dokumentasi gcloud alpha transfer jobs update
.
Misalnya, untuk memperbarui perilaku penggantian objek tugas replikasi, jalankan perintah gcloud alpha transfer jobs update
dengan flag --overwrite-when
:
gcloud alpha transfer jobs update JOB_NAME --overwrite-when=OVERWRITE_OPTION
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas transfer, cantumkan atau lihat tugas transfer Anda.OVERWRITE_OPTION
dengan opsi untuk cara objek yang ada di bucket tujuan dapat ditimpa sebagai hasil dari tugas replikasi, yang dapat terjadi jika objek tujuan dan objek sumber memiliki nama yang sama. Nilainya harus berupa salah satu dari berikut:always
: Selalu timpa objek tujuan.different
: Hanya menimpa objek di bucket tujuan jika data objek tujuan berbeda dengan data objek sumber.never
: Jangan pernah menimpa objek tujuan.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi struktur berikut yang menyertakan kolom objek
TransferJob
yang ingin diupdate:{ "projectId": string, "transferJob": { object (TransferJob) }, "updateTransferJobFieldMask": UPDATE_MASK }
Dengan keterangan:
object (TransferJob)
diganti dengan kolom tugas replikasi yang ingin Anda perbarui. Lihat representasi resourceTransferJob
untuk mengetahui informasi selengkapnya.UPDATE_MASK
adalah daftar nama kolom yang dipisahkan koma yang ingin Anda perbarui. Nilai dapat berupa satu atau beberapa hal berikut:description
,transferSpec
,notificationConfig
,loggingConfig
,status
.
Untuk mengetahui informasi selengkapnya tentang nama kolom yang dapat Anda sertakan, lihat isi permintaan
transferJobs.patch
.Gunakan cURL untuk memanggil Storage Transfer Service REST API dengan permintaan
transferJobs.patch
:curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagetransfer.googleapis.com/v1/transferJobs/JOB_NAME"
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas replikasi, cantumkan tugas replikasi.
Menghapus tugas replikasi
Konsol
Untuk petunjuk konsol Google Cloud tentang cara menghapus tugas replikasi, baca Menghapus tugas replikasi menggunakan konsol Google Cloud.
Command line
Gunakan perintah gcloud alpha transfer jobs delete
:
gcloud alpha transfer jobs delete JOB_NAME
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas replika, cantumkan tugas replika Anda.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan cURL untuk memanggil Storage Transfer Service REST API dengan permintaan
transferJobs.delete
:curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storagetransfer.googleapis.com/v1/transferJobs/JOB_NAME"
Ganti:
JOB_NAME
dengan ID unik tugas replikasi. Contoh,1234567890
. Untuk menemukan ID tugas replikasi, cantumkan tugas replikasi.