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

Last reviewed 2024-01-29 UTC

Dokumen ini menjelaskan cara men-deploy Migrasi Live RIOT untuk bermigrasi ke Redis Enterprise Cloud. Arsitek database, tim DevOps dan SRE, atau administrator Jaringan dapat menggunakan arsitektur ini untuk menawarkan migrasi dengan downtime hampir nol kepada tim mereka. Dokumen ini mengasumsikan bahwa Anda sudah memahami penggunaan 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 Live RIOT untuk bermigrasi ke Redis Enterprise Cloud.

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

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

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

Arsitektur deployment contoh berisi komponen berikut:

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

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

Tujuan

  • Siapkan sumber OSS Redis 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 untuk menyiapkan lingkungan migrasi Anda.

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

    Buka pemilih project

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Aktifkan API BigQuery, Pub/Sub, Dataflow, and Compute Engine.

    Mengaktifkan API

  4. Untuk mendapatkan izin yang diperlukan guna menyelesaikan deployment ini, minta administrator untuk memberi Anda peran IAM Billing Administrator (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, Anda harus menginstal instance Redis OSS di VM Compute Engine. Instance ini berfungsi sebagai instance sumber Anda.

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 ruang kunci 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. Tetapkan dan dapatkan pasangan nilai kunci sederhana:

    set my_key my_value
    get my_key
    unlink my_key
    

    Outputnya adalah sebagai berikut:

    OK
    "my_value"
    (integer) 1
    

    Anda sekarang telah membuat dan mengakses instance Redis OSS dan mengonfirmasi bahwa instance tersebut dapat beroperasi.

Menyisipkan data sampel

Di bagian ini, Anda akan menyisipkan data sampel ke dalam instance Redis OSS dan memverifikasi bahwa data 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
    

    Outputnya adalah sebagai berikut:

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

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

Menginstal RIOT di VM instance Redis OSS

Untuk menjalankan RIOT, Anda harus memastikan bahwa VM Compute Engine Anda memiliki ukuran yang sesuai. Secara umum, sebaiknya Anda menetapkan ukuran VM ke 8 VCPU atau lebih besar, bergantung pada jumlah data yang akan ditranspor dan frekuensi update. Untuk informasi selengkapnya, lihat Panduan perbandingan dan resource beberapa tipe 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
    

    Outputnya mirip dengan berikut ini, yang menampilkan logo RIOT dan nomor versi:

    Logo RIOT dan nomor versi.

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

Membuat instance Redis Enterprise Cloud

Redis Enterprise Cloud tersedia melalui Cloud Marketplace. Jika Anda belum 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 live RIOT.

  1. Di Cloud Marketplace, buka Redis Enterprise Cloud Flexible - Pay as You Go.

    Buka Redis Enterprise di Marketplace

    Untuk 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 Redis Enterprise Cloud Flexible.

  3. Buat langganan Fleksibel dengan mengikuti petunjuk dalam 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 dan VPC yang dikelola Redis dengan mengikuti petunjuk dalam dokumen Redis Mengaktifkan peering VPC.

  5. Di konsol Redis, buka Subscription, lalu temukan string koneksi database Redis Enterprise:

    1. Catat IP dan Port 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 instance Redis OSS (sumber) ke instance Redis Enterprise Cloud (target), lakukan tindakan 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 Redis OSS Anda menggunakan Redis 7.2, Anda harus 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 tertentu Anda, sebaiknya tetap lakukan pemeriksaan berikut untuk semua migrasi:

  • Pemeriksaan kelengkapan: Pastikan pasangan nilai kunci awal berhasil dimigrasikan dari Redis OSS ke Redis Enterprise (pemuatan awal).
  • Pemeriksaan dinamis: Pastikan perubahan dalam 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 enam pasangan nilai kunci berhasil dimigrasikan dari Redis OSS ke instance Redis Enterprise:

    SCAN 0
    

    Outputnya adalah sebagai berikut:

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

    get tennis
    

    Outputnya adalah sebagai berikut:

    [return federer]
    
  5. Keluar dari Redis CLI:

    exit
    

Migrasi yang sedang berlangsung

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

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

    redis-cli
    
  3. Tambahkan pasangan nilai kunci baru:

    1. Tambahkan pasangan runner bolt baru:

      set runner bolt
      
    2. Tambahkan dan perbarui pasangan tennis alcaraz baru:

      set tennis alcaraz
      

    Output untuk setiap perintah ini adalah sebagai berikut:

    OK
    
  4. Di instance Redis Enterprise, amati bahwa pasangan nilai kunci baru ditambahkan:

    get runner
    

    Outputnya adalah sebagai berikut:

    [return bolt]
    
  5. Untuk memverifikasi bahwa semua pasangan nilai kunci ada, periksa jumlah kunci:

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

    Outputnya adalah sebagai berikut:

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

Anda sekarang telah memastikan bahwa Migrasi Live RIOT telah secara otomatis memigrasikan semua pasangan nilai kunci dari instance Redis OSS sumber dan perubahan yang sedang berlangsung pada sumber tersebut.

Beralih dari sumber ke target

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

  1. Menangguhkan akses tulis klien ke instance OSS Redis sumber menggunakan Daftar Kontrol Akses Redis.
  2. Kecuali jika Anda perlu mempertahankan database sumber untuk strategi penggantian, nonaktifkan OSS Redis sumber dengan menghapus instance VM.
  3. Migrasikan klien ke region yang sama dengan instance database Redis Enterprise. Untuk mengetahui 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, lihat Melihat dan mengedit database di dokumentasi Redis.
  5. Di Cloud Shell, hentikan proses RIOT dengan menekan Ctrl+C.

Menyiapkan strategi penggantian

Setelah migrasi sistem selesai, instance Redis Enterprise target adalah sistem pencatatan; instance Redis OSS sumber sudah usang dan akhirnya dihapus. Namun, Anda dapat beralih ke instance Redis OSS sumber jika terjadi kegagalan parah di instance Redis Enterprise target yang baru.

Untuk menghindari kegagalan tersebut, Anda dapat terus memperbarui instance Redis OSS sumber asli dengan perubahan database target. Jika Anda yakin bahwa instance target baru dapat diandalkan, Anda dapat mematikan instance sumber.

Pembersihan

Bagian berikut menjelaskan cara agar Anda terhindar dari tagihan di masa mendatang untuk project Google Cloud dan resource Redis yang digunakan 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: