Memindahkan instance

Halaman ini menjelaskan cara memindahkan instance di Spanner.

Anda dapat memindahkan instance Spanner dari konfigurasi instance apa pun ke konfigurasi instance lainnya, termasuk antar-konfigurasi regional, dual-region, dan multi-region. Memindahkan instance Anda tidak menyebabkan periode nonaktif, dan Spanner terus menyediakan jaminan transaksi seperti biasa, termasuk konsistensi yang 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 memindahkan instance Spanner?

Manfaat memindahkan instance Anda meliputi:

  • Meningkatkan ketersediaan: Dapatkan ketersediaan 99,999% tanpa periode nonaktif setelah melakukan pemindahan dari regional ke dual-region atau multi-region.
  • Mengurangi latensi: Mengurangi latensi dan meningkatkan cakupan geografis dengan replika hanya baca tambahan melalui pemindahan regional ke dual-region atau multi-region atau multi-region ke multi-region.
  • Mengurangi biaya: Mengurangi biaya per jam dengan beralih dari konfigurasi multi-region atau wilayah ganda ke konfigurasi regional.
  • Menempatkan database secara bersama-sama: Menempatkan database Spanner bersama-sama dengan aplikasi klien dengan memindahkan instance ke lokasi yang lebih dioptimalkan.

Harga

Saat memindahkan instance, konfigurasi instance sumber dan tujuan tunduk pada biaya komputasi dan penyimpanan per jam. Setelah pemindahan selesai, Anda akan ditagih untuk penyimpanan instance di konfigurasi tujuan.

Jika memindahkan instance ke konfigurasi instance regional, region ganda, atau multi-region baru, Anda mungkin dikenai biaya transfer data keluar. Untuk mengetahui informasi selengkapnya, lihat Harga Spanner.

Batasan

  • Untuk dipindahkan, instance Anda 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 Standar langsung dari konfigurasi instance regional ke konfigurasi instance dua wilayah atau multi-wilayah. Anda harus mengupgrade edisi instance ke edisi Enterprise Plus terlebih dahulu, lalu memindahkan instance.
  • Anda tidak dapat memindahkan instance uji coba gratis Spanner. Anda dapat memindahkan instance setelah mengupgrade ke instance berbayar.
  • 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 penerapan regional memblokir akses ke instance lintas region. Permintaan yang menggunakan endpoint global tidak terpengaruh.
  • Cadangan Spanner bersifat 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 jika default_leader ditentukan dalam permintaan.)
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CreateBackupSchedule
    • DatabaseAdmin.CopyBackup
  • Anda tidak dapat memindahkan instance yang berisi database yang mengaktifkan CMEK.
  • Jika database memiliki pemimpin default yang diubah, pilihan akan dipertahankan jika database tersebut menamai region baca-tulis dalam konfigurasi instance tujuan, dan konfigurasi tersebut adalah multi-region. Jika konfigurasi tujuan bersifat regional, atau tidak menyertakan region baca-tulis yang dinamai, 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 terjadi.
    • Misalnya, jika Anda menggunakan Terraform untuk mengelola instance dan database Spanner, dan mengaktifkan terraform apply --auto-approve untuk menjaga resource tetap sinkron, semua instance dan resource turunan akan dihapus saat kami memindahkan instance. Perbarui konfigurasi sesuai kebutuhan untuk menghindari penghapusan dan kehilangan data. Lihat Opsi Penerapan Terraform untuk informasi selengkapnya tentang perintah apply.
  • Saat instance dipindahkan, metrik dan diagram pemantauan Spanner mungkin menampilkan data dalam konfigurasi instance sumber dan tujuan, atau mungkin hanya mencerminkan performa dalam satu konfigurasi instance.
  • Jika telah mengonfigurasi alat Autoscaler open source, Anda tidak perlu menonaktifkannya. Operasi 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 dalamnya. Untuk memindahkan instance, Anda harus menonaktifkan autoscaler terkelola, memindahkan instance, lalu mengaktifkan kembali autoscaler terkelola.

    Selain itu, jika menggunakan penskalaan otomatis, Anda harus menyediakan node yang cukup untuk penggunaan CPU puncak sesuai dengan rekomendasi maksimum yang dicatat, lalu menonaktifkan penskalaan otomatis sebelum Anda memindahkan instance.

Pertimbangan performa

Saat dipindahkan, instance akan mengalami latensi baca-tulis yang lebih tinggi dan rasio pembatalan transaksi yang lebih tinggi. Penggunaan CPU selama pemindahan mungkin 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-region).

Setelah memindahkan instance, performa instance bervariasi bergantung pada detail konfigurasi instance. Misalnya, konfigurasi dual-region dan multi-region umumnya memiliki latensi operasi tulis yang lebih tinggi dan latensi operasi baca 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 pencadangan ada di konfigurasi instance sumber saat Anda memulai pemindahan instance. Anda harus menyalin cadangan dan mempertimbangkan rencana pemulihan data sebelum memindahkan instance.

Jika ada cadangan di instance sumber yang perlu Anda simpan, sebaiknya salin cadangan 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 dengan cepat memulihkan cadangan 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 pencadangan di 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 Cloud Shell konsol Google Cloud 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:

  1. Pastikan Anda memiliki izin IAM spanner.instances.update di instance sumber.
  2. Jika berlaku, pindahkan instance non-produksi (seperti pengujian dan staging) sebelum memindahkan instance produksi untuk membantu menilai dan memahami dampak performa pada beban kerja selama pemindahan instance.
  3. Saat Anda memindahkan instance Spanner, proses pemindahan akan menghapus tag instance yang Anda buat di Data Catalog. Untuk mempertahankan tag, Anda perlu 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 beban kerja performa di instance non-produksi dalam konfigurasi instance tujuan sebelum memindahkan instance produksi. Coba pindahkan instance staging yang mirip dengan instance produksi untuk mengetahui berapa lama waktu yang diperlukan untuk memindahkan instance produksi.
  • Pastikan tidak ada hotspot di database Anda menggunakan Key Visualizer.
  • Tinjau untuk memastikan Anda memiliki kuota node yang cukup dalam konfigurasi instance tujuan untuk mendukung penggunaan puncak instance yang diharapkan. Untuk mengetahui informasi selengkapnya, lihat Kuota & Batas Spanner.
  • Pastikan penggunaan CPU puncak dari 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 mengubah jumlah node instance, mengubah skema database, membuat atau menghapus database, dan membuat atau menghapus cadangan.

Jika Anda memindahkan instance sesuai dengan rekomendasi ini, pemindahan tersebut biasanya akan selesai dalam waktu 24 jam. Namun, bergantung pada beban kerja aplikasi, waktu penyelesaiannya mungkin lebih lama atau lebih singkat.

Memindahkan instance

Konsol Google Cloud

  1. Klik Mengaktifkan ikon Cloud Shell Activate Cloud Shell di bagian atas konsol Google Cloud.

    Sesi Cloud Shell akan terbuka di dalam frame baru di bagian bawah Konsol Google Cloud dan menampilkan perintah command-line. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. 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. Ini dapat berupa konfigurasi instance regional, dual-region, multi-region, atau kustom (misalnya, nam3, us-central1, atau custom-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, us-west2, ke konfigurasi instance dasar nam3, lakukan tindakan berikut:

  1. Clone konfigurasi dasar dan tambahkan replika hanya baca:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Pindahkan instance test-instance dari konfigurasi instance saat ini ke konfigurasi instance custom-nam3-us-west2 baru ini:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

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. Ini dapat berupa konfigurasi instance regional, dual-region, atau multi-region (misalnya, nam3, us-central1, atau custom-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, us-west2, ke konfigurasi instance dasar nam3, lakukan tindakan berikut:

  1. Clone konfigurasi dasar dan tambahkan replika hanya baca:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Pindahkan instance test-instance dari konfigurasi instance saat ini ke konfigurasi instance custom-nam3-us-west2 baru ini:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

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 pembatalan pemindahan instance atau pemindahan instance, gunakan perintah gcloud spanner operations describe. Perintah ini memerlukan ID operasi dari operasi pemindahan instance yang sedang berlangsung.

  1. 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 pindah.

    Output menunjukkan daftar operasi yang berjalan lama, termasuk operasi pemindahan instance.

  2. Jalankan perintah gcloud spanner operations describe untuk melihat persentase progres dan status:

    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, yaitu 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.

Konsol Google Cloud

  1. Download file move-instance-dashboard.json. File ini berisi informasi yang diperlukan untuk mengisi dasbor kustom di Pemantauan.
  2. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  3. Di halaman Dashboards Overview, klik Create dashboard.
  4. Di toolbar dasbor, klik drop-down Setelan dasbor. Kemudian, pilih JSON, diikuti dengan JSON Editor.
  5. Di panel JSON Editor, salin konten file move-instance-dashboard.json yang Anda download, lalu tempelkan di editor.
  6. Untuk menerapkan perubahan ke dasbor, klik Terapkan perubahan. Jika Anda tidak ingin menggunakan dasbor ini, kembali ke halaman Ringkasan Dasbor.
  7. Setelah dasbor dibuat, klik Tambahkan Filter. Kemudian, pilih project_id atau instance_id untuk memantau progres pemindahan instance Anda.

gcloud CLI

  1. Download file move-instance-dashboard.json. File ini berisi informasi yang diperlukan untuk mengisi dasbor kustom di Pemantauan.
  2. 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 berlangsung. Jika ingin membatalkan pemindahan instance yang telah 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 kira-kira sama dengan waktu yang telah berlalu sejak awal pemindahan. Hal ini karena data harus dipindahkan kembali ke konfigurasi instance sumber.

Perintah ini memerlukan ID operasi dari operasi pemindahan instance yang sedang berlangsung.

  1. 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 pindah.

    Output menampilkan daftar operasi pemindahan instance yang sedang berlangsung.

  2. 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 selanjutnya