Halaman ini menjelaskan cara memindahkan instance di Spanner.
Anda dapat memindahkan instance Spanner dari konfigurasi instance mana pun ke konfigurasi instance lainnya, termasuk antara konfigurasi regional, dual-region, dan multi-region. Memindahkan instance Anda tidak menyebabkan periode nonaktif, dan Spanner akan terus memberikan jaminan transaksi seperti biasa, termasuk konsistensi kuat, selama pemindahan.
Anda juga dapat memindahkan instance dari konfigurasi instance sumbernya ke konfigurasi instance kustom (misalnya, konfigurasi dasar nam3
dengan replika hanya baca us-west2
). Karena Anda tidak dapat memperbarui topologi konfigurasi instance yang ada, Anda harus membuat konfigurasi instance kustom baru dengan topologi yang Anda inginkan terlebih dahulu. Setelah membuat konfigurasi instance kustom baru, Anda dapat memindahkan instance dari konfigurasi instance sumber ke konfigurasi instance kustom baru.
Mengapa Anda perlu memindahkan instance Spanner?
Manfaat memindahkan instance Anda meliputi:
- Meningkatkan ketersediaan: Dapatkan ketersediaan 99,999% dengan periode nonaktif nol setelah melakukan pemindahan dari regional ke dual-region atau multi-region.
- Mengurangi latensi: Kurangi latensi dan tingkatkan cakupan geografis dengan replika hanya baca tambahan melalui pemindahan dari regional ke dual-region atau multi-region atau dari multi-region ke multi-region.
- Mengurangi biaya: Kurangi biaya per jam dengan beralih dari konfigurasi dual-region atau multi-region ke konfigurasi regional.
- Menempatkan database secara bersamaan: Tempatkan database Spanner bersama dengan aplikasi klien dengan memindahkan instance ke lokasi yang lebih dioptimalkan.
Harga
Saat memindahkan instance, konfigurasi instance sumber dan tujuan dikenai biaya komputasi dan penyimpanan per jam. Setelah pemindahan selesai, Anda akan ditagih untuk penyimpanan instance pada konfigurasi tujuan.
Jika memindahkan instance ke konfigurasi instance regional, dual-region, atau multi-region baru, Anda mungkin dikenai biaya transfer data keluar. Untuk mengetahui informasi selengkapnya, lihat Harga Spanner.
Batasan
- Untuk memindahkan instance, instance harus memiliki minimal 1 node (1.000 unit pemrosesan).
- Anda tidak dapat memindahkan instance di seluruh project dan akun Google Cloud .
- Anda tidak dapat memindahkan instance yang menggunakan edisi Standard langsung dari konfigurasi instance regional ke konfigurasi instance multi-region atau multi-region. Anda harus mengupgrade edisi instance Anda ke edisi Enterprise Plus terlebih dahulu, lalu memindahkan instance.
- Jika Anda memiliki permintaan aktif yang menggunakan endpoint layanan regional di salah satu resource instance, pemindahan instance akan memengaruhi semua permintaan yang menggunakan endpoint regional karena penegakan regional memblokir akses ke instance lintas-region. Permintaan yang menggunakan endpoint global tidak terpengaruh.
- Pencadangan Spanner khusus untuk konfigurasi instance dan tidak disertakan saat memindahkan instance. Untuk mengetahui informasi selengkapnya, lihat Pencadangan.
- API berikut dinonaktifkan selama pemindahan instance:
InstanceAdmin.DeleteInstance
InstanceAdmin.UpdateInstance
DatabaseAdmin.CreateDatabase
DatabaseAdmin.UpdateDatabaseDdl
(Dinonaktifkan jikadefault_leader
ditentukan dalam permintaan.)DatabaseAdmin.RestoreDatabase
DatabaseAdmin.CreateBackup
DatabaseAdmin.CreateBackupSchedule
DatabaseAdmin.CopyBackup
- Jika database memiliki pemimpin default yang diubah, pilihan akan dipertahankan jika memilih region baca-tulis dalam konfigurasi instance tujuan, dan konfigurasi tersebut adalah multi-region. Jika konfigurasi tujuan bersifat regional, atau tidak mencakup region baca-tulis bernama, pemilihan pemimpin default akan dihapus.
- Memindahkan instance akan mengubah atribut konfigurasi instance dari instance Anda. Jika Anda mengelola resource Spanner melalui
otomatisasi, pastikan untuk menyiapkan dan mengatasi inkonsistensi yang mungkin
muncul.
- Misalnya, jika Anda menggunakan Terraform untuk mengelola instance dan database Spanner, dan Anda mengaktifkan
terraform apply --auto-approve
agar resource tetap disinkronkan, semua instance dan resource turunan akan dihapus saat kita memindahkan instance. Perbarui konfigurasi yang sesuai untuk menghindari penghapusan dan kehilangan data. Lihat Opsi Penerapan Terraform untuk mengetahui informasi selengkapnya tentang perintahapply
.
- Misalnya, jika Anda menggunakan Terraform untuk mengelola instance dan database Spanner, dan Anda mengaktifkan
- Saat instance dipindahkan, metrik dan diagram pemantauan Spanner mungkin menampilkan data dalam konfigurasi instance sumber dan tujuan, atau hanya mencerminkan performa dalam satu konfigurasi instance.
- Jika Anda telah mengonfigurasi alat Autoscaler open source, Anda tidak perlu menonaktifkannya. Hal ini gagal karena
InstanceAdmin.UpdateInstance
(digunakan untuk perubahan node dan unit pemrosesan) dinonaktifkan. - Anda tidak dapat memindahkan instance jika fitur
autoscaler terkelola Spanner
diaktifkan di instance tersebut. Untuk memindahkan instance, Anda harus menonaktifkan
autoscaler terkelola, memindahkan instance, lalu mengaktifkan kembali
autoscaler terkelola.
- Selain itu, jika Anda menggunakan penskalaan otomatis, Anda harus menyediakan node yang cukup untuk penggunaan CPU puncak sesuai dengan rekomendasi maksimum yang tercantum, lalu menonaktifkan penskalaan otomatis sebelum memindahkan instance.
- Anda tidak dapat memindahkan instance uji coba gratis Spanner. Anda dapat memindahkan instance setelah mengupgrade ke instance berbayar.
Pertimbangan performa
Saat dipindahkan, instance mengalami latensi baca-tulis yang lebih tinggi dan tingkat pembatalan transaksi yang lebih tinggi. Penggunaan CPU selama pemindahan dapat meningkat hingga 100% karena pemindahan instance dilakukan menggunakan CPU cadangan yang disediakan oleh pengguna. Namun, memindahkan instance tidak menyebabkan periode nonaktif. Waktu yang diperlukan untuk memindahkan instance bergantung pada berbagai faktor, termasuk ukuran database, jumlah node, dan jenis pemindahan (misalnya, regional ke multi-regional).
Setelah memindahkan instance, performa instance bervariasi bergantung pada detail konfigurasi instance. Misalnya, konfigurasi dual-region dan multi-region umumnya memiliki latensi penulisan yang lebih tinggi dan latensi pembacaan yang lebih rendah daripada konfigurasi regional.
Cadangan
Saat Anda memindahkan instance, cadangan di instance sumber tidak akan otomatis dipindahkan ke konfigurasi tujuan baru. Pemindahan instance dibatalkan jika ada cadangan dalam konfigurasi instance sumber saat Anda memulai pemindahan instance. Penting bagi Anda untuk menyalin cadangan dan mempertimbangkan rencana pemulihan data sebelum memindahkan instance.
Jika ada cadangan di instance sumber yang perlu Anda simpan, sebaiknya salin cadangan Anda ke konfigurasi instance tujuan dan instance lain dengan konfigurasi instance yang sama seperti instance sumber yang akan dipindahkan. Hal ini agar:
- Anda dapat menyalin cadangan ke konfigurasi instance tujuan segera setelah pemindahan instance selesai.
- Jika perlu membatalkan pemindahan instance, Anda juga dapat memulihkan cadangan dengan cepat dari instance dengan konfigurasi yang sama seperti konfigurasi instance sumber.
Setelah menyalin cadangan ke instance lain, Anda harus menghapus cadangan yang ada di instance sumber sebelum dapat memindahkan instance. Kemudian, setelah pemindahan instance selesai, Anda sudah memiliki salinan cadangan dalam konfigurasi tujuan. Anda juga dapat membuat cadangan baru.
Untuk mempelajari lebih lanjut cara menyalin cadangan dan biaya terkait, lihat Menyalin cadangan.
Cara memindahkan instance
Anda dapat memindahkan instance dengan Google Cloud Cloud Shell konsol dan
gcloud CLI menggunakan perintah gcloud
.
Prasyarat
Sebelum memindahkan konfigurasi instance, pastikan Anda telah membaca bagian Batasan dan Pertimbangan performa. Kemudian, ikuti langkah-langkah berikut:
- Pastikan Anda memiliki izin IAM
spanner.instances.update
pada instance sumber. - Jika berlaku, pindahkan instance non-produksi Anda (seperti pengujian dan penyiapan) sebelum memindahkan instance produksi Anda untuk membantu menilai dan memahami dampak performa pada beban kerja selama pemindahan instance.
- Saat Anda memindahkan instance Spanner, proses pemindahan akan menghapus tag instance yang Anda buat di Data Catalog. Untuk mempertahankan tag, Anda harus mengekspor tag sebelum pemindahan dan mengimpornya setelah pemindahan. Untuk mengetahui informasi selengkapnya, lihat Mengekspor dan mengimpor tag.
Untuk praktik terbaik, ikuti juga panduan berikut:
- Uji workload performa di instance non-produksi dalam konfigurasi instance tujuan sebelum memindahkan instance produksi Anda. Coba pindahkan instance staging yang mirip dengan instance produksi Anda untuk mengetahui berapa lama waktu yang dibutuhkan untuk memindahkan instance produksi Anda.
- Periksa apakah ada hotspot di database Anda menggunakan Key Visualizer.
- Tinjau untuk memastikan Anda memiliki kuota node yang cukup dalam konfigurasi instance tujuan untuk mendukung perkiraan penggunaan puncak instance. Untuk mengetahui informasi selengkapnya, lihat Kuota & Batas Spanner.
- Pastikan pemanfaatan CPU puncak instance Anda kurang dari 40% untuk konfigurasi instance yang Anda pindahkan dan jumlah penyimpanan per node kurang dari 1 Tebibyte (TiB).
- Jangan melakukan perubahan pada instance selama pemindahan. Hal ini mencakup perubahan jumlah node instance, perubahan skema database, pembuatan atau penghapusan database, serta pembuatan atau penghapusan cadangan.
Jika Anda memindahkan instance sesuai dengan rekomendasi ini, pemindahan biasanya akan selesai dalam waktu 24 jam. Namun, bergantung pada beban kerja aplikasi, waktu penyelesaian mungkin lebih lama atau lebih singkat.
Memindahkan instance
Google Cloud console
Buka halaman Instances di konsol Google Cloud .
Pilih instance yang ingin Anda pindahkan.
Di halaman Ringkasan instance, di samping Konfigurasi, klik edit Pindahkan instance ke konfigurasi baru.
Di panel Move database to new configuration, pilih konfigurasi instance baru untuk instance Anda.
Klik Simpan.
gcloud CLI
Gunakan perintah gcloud spanner instances move
untuk memindahkan instance.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG
Ganti kode berikut:
- INSTANCE_ID: ID permanen untuk instance yang ingin Anda pindahkan.
- TARGET_CONFIG: ID permanen konfigurasi instance tempat Anda ingin memindahkan instance. Lokasi geografis baru instance Anda. Konfigurasi ini dapat berupa konfigurasi instance regional, dual-region, atau multi-region (misalnya,
nam3
,us-central1
, ataucustom-nam3-us-west2
).
Misalnya, untuk memindahkan instance test-instance
dari konfigurasi
instance saat ini ke nam3
, jalankan perintah berikut:
gcloud spanner instances move test-instance --target-config=nam3
Opsional: Jika Anda ingin menambahkan replika hanya baca di region us-west2
ke
konfigurasi instance dasar di nam3
, lakukan hal berikut:
Clone konfigurasi dasar dan tambahkan replika hanya baca ke konfigurasi instance kustom baru
custom-nam3-us-west2
:gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Pindahkan instance
test-instance
dari konfigurasi instance saat ini ke konfigurasi instancecustom-nam3-us-west2
baru ini:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Opsional: Memindahkan instance dengan database yang mendukung CMEK
Gunakan perintah gcloud spanner instances move
untuk memindahkan instance dengan database yang mendukung CMEK.
Anda harus menyertakan flag --target-database-move-configs
dan nilai kunci KMS
dalam perintah atau mengonfigurasi file JSON atau YAML dengan kunci KMS yang diperlukan.
Catatan penggunaan:
- Jika Anda memiliki beberapa database yang diaktifkan untuk CMEK di instance yang ingin dipindahkan, Anda harus menentukan
-—target-database-move-configs
untuk setiap database tersebut. Anda dapat menggunakan kunci yang sama untuk setiap database, tetapi Anda harus menentukan kunci untuk setiap database yang mendukung CMEK. - Kunci Anda harus mencakup semua region dalam konfigurasi instance tujuan. Misalnya, jika konfigurasi instance tujuan Anda berada di
nam3
, Anda harus menetapkan kunci dius-east4
,us-east1
, danus-central1
. - Anda tidak dapat menetapkan kunci KMS untuk database yang tidak mendukung CMEK saat memindahkan instance.
- Anda tidak boleh menonaktifkan atau menghancurkan kunci CMEK dalam konfigurasi instance sumber atau tujuan saat memindahkan instance. Migrasi tidak akan dilanjutkan jika Anda mencoba.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=^:^database-id=DATABASE_ID_1:kms-key-names=KMS_KEY_1[, KMS_KEY_2 ... ] \
[--target-database-move-configs=^:^database-id=DATABASE_ID_2:kms-key-names=KMS_KEY_1 ... ]
atau
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=CONFIG_FILE_PATH
Konfigurasi file CONFIG_FILE_PATH dengan ID database dan kunci KMS Anda. Contoh file konfigurasi berikut berisi kunci KMS untuk dua database, database-1
dan database-2
, dengan kunci yang sama di us-east4
, us-east1
, dan us-central1
untuk mencakup semua region di nam3
.
[
{
database-id: database-1,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
{
database-id: database-2,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
]
Cara memantau progres pemindahan dan pembatalan instance
Anda dapat menggunakan gcloud spanner operations describe
atau membuat dasbor Cloud Monitoring kustom untuk memantau progres pemindahan instance.
Melihat progres operasi pemindahan dan pembatalan
Untuk melacak progres operasi pemindahan instance atau pembatalan pemindahan instance, gunakan perintah gcloud spanner operations describe
. Perintah ini memerlukan ID operasi pemindahan instance yang sedang berlangsung.
Dapatkan ID operasi untuk operasi pemindahan instance Anda dengan menjalankan:
gcloud spanner operations list --instance="INSTANCE_ID"
Ganti kode berikut:
- INSTANCE_ID: ID permanen untuk instance yang ingin Anda pindahkan.
Output menampilkan daftar operasi yang berjalan lama, termasuk operasi pemindahan instance.
Jalankan perintah
gcloud spanner operations describe
untuk melihat persentase dan status progres:gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
Ganti kode berikut:
- OPERATION_ID: ID operasi dari operasi pemindahan instance yang ingin Anda periksa.
- INSTANCE_ID: ID instance untuk instance yang ingin Anda periksa.
Memantau operasi pemindahan instance
Anda dapat membuat dasbor Cloud Monitoring kustom untuk menampilkan dan memantau metrik selama pemindahan instance, operasi yang berjalan lama dengan potensi implikasi layanan.
Grafik Total penyimpanan dan Total penyimpanan database menurut database di dasbor akan membantu memantau progres pemindahan. Anda dapat melihat penyimpanan dalam konfigurasi sumber menurun secara bertahap, sementara penyimpanan dalam konfigurasi tujuan meningkat.
Google Cloud console
- Download file
move-instance-dashboard.json
. File ini memiliki informasi yang diperlukan untuk mengisi dasbor kustom di Monitoring. -
Di konsol Google Cloud , buka halaman
Dasbor:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.
- Di halaman Dashboards Overview, klik Create dashboard.
- Di toolbar dasbor, klik drop-down Setelan dasbor. Kemudian pilih JSON, lalu Editor JSON.
- Di panel JSON Editor, salin konten file
move-instance-dashboard.json
yang Anda download dan tempelkan di editor. - Untuk menerapkan perubahan pada dasbor, klik Terapkan perubahan. Jika Anda tidak ingin menggunakan dasbor ini, kembali ke halaman Ringkasan Dasbor.
- Setelah dasbor dibuat, klik Tambahkan Filter. Kemudian, pilih
project_id
atauinstance_id
untuk memantau progres pemindahan instance.
gcloud CLI
- Download file
move-instance-dashboard.json
. File ini memiliki informasi yang diperlukan untuk mengisi dasbor kustom di Monitoring. Untuk membuat dasbor dalam project, gunakan perintah
gcloud monitoring dashboards create
:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
Untuk informasi selengkapnya, lihat referensi
gcloud monitoring dashboards create
Cara membatalkan pemindahan instance
Anda hanya dapat membatalkan pemindahan instance yang masih dalam proses. Jika ingin mengembalikan pemindahan instance yang sudah selesai, Anda harus memulai pemindahan baru.
Anda dapat menggunakan gcloud spanner operations cancel
untuk membatalkan operasi pemindahan instance. Pembatalan tidak terjadi secara instan
dan memerlukan waktu yang hampir sama dengan waktu yang telah berlalu sejak
dimulainya pemindahan. Hal ini karena data harus dipindahkan kembali ke konfigurasi instance sumber.
Perintah ini memerlukan ID operasi pemindahan instance yang sedang berlangsung.
Dapatkan ID operasi dengan menjalankan:
gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID" --filter="done:False AND metadata.@type:MoveInstanceMetadata
Ganti kode berikut:
- INSTANCE_ID: ID permanen untuk instance yang ingin Anda pindahkan.
Output menampilkan daftar operasi pemindahan instance yang sedang berlangsung.
Jalankan perintah
gcloud spanner operations cancel
untuk membatalkan pemindahan instance:gcloud spanner operations cancel OPERATION_ID
Ganti kode berikut:
- OPERATION_ID: ID operasi dari operasi pemindahan instance yang ingin Anda batalkan.
Langkah berikutnya
- Pelajari lebih lanjut konfigurasi regional, dual-region, dan multi-region Spanner.
- Pelajari lebih lanjut Google Cloud region dan zona.