Men-deploy RIOT Live Migration untuk bermigrasi ke Redis Enterprise Cloud

Last reviewed 2024-01-29 UTC

Dokumen ini menjelaskan cara men-deploy Migrasi Langsung RIOT untuk bermigrasi ke Redis Enterprise Cloud. Arsitek database, tim DevOps dan SRE, atau administrator Jaringan dapat menggunakan arsitektur ini untuk menawarkan migrasi periode nonaktif nyaris nol kepada tim mereka. Dokumen ini mengasumsikan bahwa Anda sudah terbiasa menggunakan Google Cloud CLI dan Compute Engine.

Arsitektur

Diagram berikut menunjukkan arsitektur referensi yang menggunakan Layanan Migrasi Live RIOT untuk memigrasikan sumber yang kompatibel dengan Redis ke Redis Enterprise Cloud.

Sumber yang kompatibel dengan Redis dimigrasikan melalui RIOT ke Redis Enterprise Cloud.

Untuk mengetahui detail tentang arsitektur, lihat Migrasi Langsung RIOT untuk bermigrasi ke Redis Enterprise Cloud.

Contoh deployment dalam dokumen ini menggunakan arsitektur berikut dengan sumbernya adalah Redis OSS di VM Compute Engine:

OSS Redis dimigrasikan melalui peering RIOT dan VPC ke Redis Enterprise Cloud.

Dalam diagram, instance Redis OSS dan RIOT digabungkan menjadi satu VM Compute Engine agar lebih praktis. Dalam lingkungan produksi, sebaiknya RIOT selalu berjalan di VM-nya sendiri untuk membantu memastikan performa yang lebih baik.

Contoh arsitektur deployment berisi komponen berikut:

  • Sumber: Instance Redis OSS yang berjalan di VM Compute Engine.
  • Target: Redis Enterprise Cloud yang berjalan di VPC yang dikelola Redis.
  • Layanan Migrasi: RIOT berjalan pada VM Compute Engine yang sama dengan Redis OSS.
  • Penyiapan Jaringan: Peering VPC antara VPC terkelola dan VPC yang dikelola Redis.

Alat migrasi RIOT memiliki periode nonaktif hampir nol. Selama migrasi dari Redis OSS (sumber) ke Redis Enterprise Cloud (target), aplikasi Anda masih dapat mengakses Redis OSS tanpa dampak atau gangguan layanan. Selama proses migrasi, setelah pemuatan awal data dari Redis OSS, RIOT Live Migration akan terus memigrasikan perubahan dari Redis OSS saat terjadi.

Tujuan

  • Siapkan sumber Redis OSS Anda dengan membuat dan memuat data.
  • Siapkan cluster target migrasi di Redis Enterprise Cloud.
  • Gunakan Migrasi Live RIOT untuk memigrasikan data dari Redis OSS ke Redis Enterprise Cloud.
  • Memahami strategi pengujian, migrasi sistem, dan penggantian.

Biaya

Deployment arsitektur ini menggunakan komponen Google Cloud yang dapat ditagih berikut:

Sebelum memulai

Selesaikan langkah-langkah berikut guna menyiapkan lingkungan untuk migrasi Anda.

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  3. Enable the BigQuery, Pub/Sub, Dataflow, and Compute Engine APIs.

    Enable the APIs

  4. Untuk mendapatkan izin yang Anda perlukan guna menyelesaikan deployment ini, minta administrator untuk memberi Anda peran IAM Administrator Penagihan (roles/billing.admin) di organisasi Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Menyiapkan instance Redis OSS

Untuk memulai deployment, instal instance Redis OSS di VM Compute Engine. Instance berfungsi sebagai instance sumber.

Menginstal instance Redis OSS

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Di Cloud Shell, buat VM Ubuntu:

    gcloud compute instances create redis-oss-riot-vm \
      --image-family=ubuntu-2004-lts \
        --image-project=ubuntu-os-cloud \
        --zone=us-central1-a \
        --machine-type=e2-medium \
        --network=VPC_NETWORK_NAME \
        --subnet=VPC_SUBNETWORK_NAME \
      --metadata=startup-script='#! /bin/bash
        apt-get update -y
        apt-get install redis-tools -y
        snap install redis'
    

    Ganti kode berikut:

    • VPC_NETWORK_NAME: nama jaringan VPC Anda.
    • VPC_SUBNETWORK_NAME: nama subnetwork VPC Anda.
  3. Gunakan koneksi SSH untuk login ke instance Compute Engine yang menjalankan instance Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  4. Aktifkan notifikasi keyspace untuk migrasi langsung, yang diperlukan oleh RIOT:

    redis-cli config set notify-keyspace-events KEA
    

Memverifikasi bahwa instance Redis OSS beroperasi

  1. Di Cloud Shell, luncurkan Redis CLI:

    redis-cli
    
  2. Menetapkan dan mendapatkan pasangan nilai kunci sederhana:

    set my_key my_value
    get my_key
    unlink my_key
    

    Output-nya adalah sebagai berikut:

    OK
    "my_value"
    (integer) 1
    

    Anda kini telah membuat dan mengakses instance OSS Redis dan mengonfirmasi bahwa instance tersebut dapat digunakan.

Menyisipkan data sampel

Di bagian ini, Anda akan memasukkan data sampel ke dalam instance Redis OSS dan memastikan bahwa data tersebut berhasil disisipkan.

  1. Di Cloud Shell, luncurkan Redis CLI:

    redis-cli
    
  2. Tambahkan enam pasangan nilai kunci berikut sebagai set data awal. Masukkan setiap perintah satu per satu dan tunggu output OK sebelum Anda memasukkan pasangan nilai kunci berikutnya.

    set tennis federer
    
    set soccer ronaldo
    
    set basketball curry
    
    set football montana
    
    set golf woods
    
    set swimmer phelps
    
  3. Pastikan Anda berhasil menambahkan enam pasangan nilai kunci:

    SCAN 0
    

    Output-nya adalah sebagai berikut:

    "swimmer"
    "soccer"
    "football"
    "golf"
    "tennis"
    "basketball"
    

Setelah Anda menyiapkan dan memulai migrasi RIOT, data akan dimigrasikan ke instance Cloud Redis Enterprise target.

Instal RIOT di VM instance Redis OSS

Untuk menjalankan RIOT, pastikan ukuran VM Compute Engine Anda sudah tepat. Secara umum, sebaiknya ukur VM Anda menjadi 8 VCPU atau lebih besar, bergantung pada jumlah data yang akan dipindahkan dan frekuensi update. Untuk informasi selengkapnya, lihat Panduan perbandingan dan resource kelompok mesin.

  1. Di Cloud Shell, gunakan koneksi SSH untuk login ke instance Compute Engine yang menjalankan instance Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Instal JDK untuk RIOT:

    sudo apt install default-jre -y
    
  3. Download dan instal RIOT:

    sudo apt-get install unzip
    
    wget https://github.com/redis-developer/riot/releases/download/v2.19.0/riot-redis-2.19.0.zip
    
    unzip riot-redis-2.19.0.zip
    
  4. Pastikan RIOT diinstal dengan benar:

    ./riot-redis-2.19.0/bin/riot-redis -V
    

    Output-nya mirip dengan berikut ini, yang menunjukkan logo RIOT dan nomor versi:

    Logo dan nomor versi RIOT.

Anda telah menginstal alat migrasi RIOT di instance Redis OSS dan mengonfirmasi bahwa alat tersebut dapat digunakan.

Membuat instance Redis Enterprise Cloud

Redis Enterprise Cloud tersedia melalui Cloud Marketplace. Jika Anda tidak menyiapkan cluster Redis Enterprise sebagai instance Redis Enterprise target, ikuti langkah-langkah di bagian ini. Jika sudah menyiapkan cluster Redis Enterprise sebagai database target, Anda dapat melewati bagian ini dan melanjutkan ke Memulai migrasi langsung RIOT.

  1. Di Cloud Marketplace, buka Redis Enterprise Cloud Fleksibel - Bayar Sesuai Penggunaan.

    Buka Redis Enterprise di Marketplace

    Untuk mengetahui informasi selengkapnya, lihat petunjuk dalam dokumen Redis Langganan fleksibel dengan Cloud Marketplace.

  2. Login ke konsol Redis menggunakan informasi akun Redis yang Anda berikan saat berlangganan ke Redis Enterprise Cloud Fleksibel.

  3. Buat langganan Fleksibel dengan mengikuti petunjuk di dokumen Redis Membuat langganan Fleksibel. Pilih Google Cloud sebagai vendor cloud Anda, dan buat database dengan semua setelan default.

  4. Buat peering VPC antara Virtual Private Cloud Google Anda dan VPC yang dikelola Redis dengan mengikuti petunjuk dalam dokumen Redis Mengaktifkan peering VPC.

  5. Di Redis console, buka Subscription, lalu cari Redis Enterprise database string koneksi Anda:

    1. Catat Port dan IP endpoint pribadi, dalam format:

      ENDPOINT_IP:ENDPOINT_PORT
      

      Dengan nilai yang mewakili hal berikut:

      • ENDPOINT_IP: alamat IP endpoint pribadi untuk database Redis Enterprise.
      • ENDPOINT_PORT: nomor port endpoint pribadi untuk database Redis Enterprise.
    2. Catat sandi database.

Memulai migrasi langsung RIOT

Untuk memigrasikan data dari Redis OSS (sumber) ke instance Redis Enterprise Cloud (target), lakukan hal berikut:

  1. Di Cloud Shell, gunakan koneksi SSH untuk login ke instance Compute Engine yang menjalankan instance Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    
    gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Memulai migrasi langsung antara sumber dan target. Jika instance OSS Redis Anda menggunakan Redis 7.2, Anda perlu menggunakan replikasi berbasis jenis. Untuk mengetahui informasi tentang penggunaan opsi --type, lihat dokumentasi Redis Replikasi berbasis jenis.

    ./riot-redis-2.19.0/bin/riot-redis -u redis://localhost:6379 replicate  \
    -u redis://ENDPOINT_IP:ENDPOINT_PORT \
      -a REDIS_ENTERPRISE_DB_PASSWORD \
      --mode live
    

    Ganti nilai berikut dengan nilai yang Anda catat di bagian sebelumnya:

    • ENDPOINT_IP: alamat IP endpoint pribadi untuk database cluster Redis Enterprise.
    • ENDPOINT_PORT: nomor port endpoint pribadi untuk database cluster Redis Enterprise.
    • REDIS_ENTERPRISE_DB_PASSWORD: sandi untuk database cluster Redis Enterprise.

    Outputnya mirip dengan hal berikut ini:

    Listening  ? % ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0/? (0:00:00 / ?) ?/s\
    Scanning 100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6/6 (0:00:00 / 0:00:00) ?/s
    

Memverifikasi migrasi database

Penting untuk merancang dan menerapkan strategi verifikasi migrasi database untuk mengonfirmasi bahwa migrasi database berhasil. Meskipun strategi verifikasi yang Anda gunakan bergantung pada kasus penggunaan spesifik Anda, sebaiknya lakukan pemeriksaan ini pada semua migrasi:

  • Pemeriksaan kelengkapan: Pastikan key-value pair awal berhasil dimigrasikan dari Redis OSS ke Redis Enterprise (pemuatan awal).
  • Pemeriksaan dinamis: Pastikan perubahan pada sumber sedang ditransfer ke instance target (migrasi yang sedang berlangsung).

Pemuatan awal

  1. Di Cloud Shell, gunakan koneksi SSH untuk login ke instance Compute Engine yang menjalankan instance Redis OSS:

    PROJECT_ID=$(gcloud info --format='value(config.project)')
    $ gcloud compute ssh redis-oss-riot-vm --project $PROJECT_ID --zone us-central1-a
    
  2. Luncurkan Redis CLI:

    redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \
    -a REDIS_ENTERPRISE_DB_PASSWORD
    
  3. Pastikan keenam key-value pair berhasil dimigrasikan dari Redis OSS ke instance Redis Enterprise:

    SCAN 0
    

    Output-nya adalah sebagai berikut:

    "swimmer"
    "soccer"
    "football"
    "golf"
    "tennis"
    "basketball"
    
  4. Dapatkan nilai kunci tenis:

    get tennis
    

    Output-nya adalah sebagai berikut:

    [return federer]
    
  5. Keluar dari Redis CLI:

    exit
    

Migrasi yang sedang berlangsung

Pastikan bahwa perubahan yang sedang berlangsung pada Redis OSS sumber tercermin dalam instance Redis Enterprise target:

  1. Di Cloud Shell, gunakan koneksi SSH untuk login ke VM OSS Redis.
  2. Luncurkan Redis CLI:

    redis-cli
    
  3. Tambahkan key-value pair baru:

    1. Tambahkan pasangan runner bolt baru:

      set runner bolt
      
    2. Perbarui dan masukkan pasangan tennis alcaraz baru:

      set tennis alcaraz
      

    Output untuk setiap perintah ini adalah sebagai berikut:

    OK
    
  4. Dalam instance Redis Enterprise, perhatikan bahwa key-value pair baru ditambahkan:

    get runner
    

    Output-nya adalah sebagai berikut:

    [return bolt]
    
  5. Untuk memastikan semua key-value pair ada, periksa jumlah kunci:

    redis-cli info keyspace and redis-cli -u <REMOTE> info keyspace
    

    Output-nya adalah sebagai berikut:

    # Keyspace
    db0:keys=7,expires=0,avg_ttl=0
    

Anda kini telah memverifikasi bahwa RIOT Live Migration secara otomatis memigrasikan semua key-value pair dari instance Redis OSS sumber dan semua perubahan yang sedang berlangsung pada sumber.

Beralih dari sumber ke target

Setelah memverifikasi migrasi database, Anda dapat melakukan pengalihan dari instance Redis OSS sumber ke instance Redis Enterprise target:

  1. Tangguhkan akses tulis klien ke instance Redis OSS sumber menggunakan Redis Access Control List.
  2. Kecuali jika Anda perlu mempertahankan database sumber untuk strategi penggantian Anda, nonaktifkan OSS Redis sumber dengan menghapus instance VM.
  3. Migrasikan klien ke region yang sama dengan instance database Redis Enterprise. Untuk informasinya, lihat dokumentasi untuk host klien Anda.
  4. Di konsol Redis, temukan endpoint pribadi instance database Redis Enterprise dan perbarui koneksi Redis klien Anda ke endpoint pribadi. Untuk mengetahui informasi selengkapnya, baca Melihat dan mengedit database dalam dokumentasi Redis.
  5. Di Cloud Shell, hentikan proses RIOT dengan menekan Ctrl+C.

Menyiapkan strategi penggantian

Setelah cutover selesai, instance Redis Enterprise target adalah sistem pencatatan; instance Redis OSS sumber sudah tidak berlaku lagi dan akhirnya dihapus. Namun, sebaiknya beralihlah kembali ke instance Redis OSS sumber jika terjadi kegagalan parah dalam instance Redis Enterprise target baru.

Untuk kembali dari kegagalan tersebut, Anda harus terus memperbarui instance Redis OSS sumber asli dengan perubahan database target. Jika yakin bahwa instance target baru dapat diandalkan, Anda dapat menonaktifkan instance sumber.

Pembersihan

Bagian berikut menjelaskan cara menghindari biaya di masa mendatang untuk project Google Cloud dan resource Redis yang Anda gunakan dalam deployment ini.

Menghapus project

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus database Redis Enterprise

Untuk menghapus database Redis Enterprise, lihat Menghapus Database dalam dokumentasi Redis

Langkah selanjutnya

Kontributor

Penulis:

Kontributor lainnya: