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.
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:
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 Redis OSS 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:
- Biaya Compute Engine untuk menjalankan instance Redis OSS dan RIOT.
- Biaya Redis Enterprise Cloud yang diperoleh melalui Google Cloud Marketplace.
- Biaya jaringan yang timbul dari traffic migrasi data antara zona dan region.
Sebelum memulai
Selesaikan langkah-langkah berikut untuk menyiapkan lingkungan migrasi Anda.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, Pub/Sub, Dataflow, and Compute Engine APIs.
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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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.
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
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
Di Cloud Shell, luncurkan Redis CLI:
redis-cli
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.
Di Cloud Shell, luncurkan Redis CLI:
redis-cli
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
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.
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
Instal JDK untuk RIOT:
sudo apt install default-jre -y
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
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:
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.
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.
Login ke konsol Redis menggunakan informasi akun Redis yang Anda berikan saat berlangganan Redis Enterprise Cloud Flexible.
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.
Buat peering VPC antara Virtual Private Cloud Google dan VPC yang dikelola Redis dengan mengikuti petunjuk dalam dokumen Redis Mengaktifkan peering VPC.
Di konsol Redis, buka Subscription, lalu temukan string koneksi database Redis Enterprise:
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.
Catat sandi database.
Memulai migrasi langsung RIOT
Untuk memigrasikan data dari instance Redis OSS (sumber) ke instance Redis Enterprise Cloud (target), lakukan tindakan berikut:
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
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
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
Luncurkan Redis CLI:
redis-cli -u redis://ENDPOINT_IP:ENDPOINT_PORT \ -a REDIS_ENTERPRISE_DB_PASSWORD
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"
Dapatkan nilai kunci tenis:
get tennis
Outputnya adalah sebagai berikut:
[return federer]
Keluar dari Redis CLI:
exit
Migrasi yang sedang berlangsung
Pastikan perubahan yang sedang berlangsung pada OSS Redis sumber tercermin dalam instance Redis Enterprise target:
- Di Cloud Shell, gunakan koneksi SSH untuk login ke VM Redis OSS.
Luncurkan Redis CLI:
redis-cli
Tambahkan pasangan nilai kunci baru:
Tambahkan pasangan
runner bolt
baru:set runner bolt
Tambahkan dan perbarui pasangan
tennis alcaraz
baru:set tennis alcaraz
Output untuk setiap perintah ini adalah sebagai berikut:
OK
Di instance Redis Enterprise, amati bahwa pasangan nilai kunci baru ditambahkan:
get runner
Outputnya adalah sebagai berikut:
[return bolt]
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:
- Menangguhkan akses tulis klien ke instance OSS Redis sumber menggunakan Daftar Kontrol Akses Redis.
- Kecuali jika Anda perlu mempertahankan database sumber untuk strategi penggantian, nonaktifkan OSS Redis sumber dengan menghapus instance VM.
- Migrasikan klien ke region yang sama dengan instance database Redis Enterprise. Untuk mengetahui informasinya, lihat dokumentasi untuk host klien Anda.
- 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.
- 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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Menghapus database Redis Enterprise
Untuk menghapus database Redis Enterprise, lihat Menghapus Database dalam dokumentasi Redis
Langkah selanjutnya
- Pelajari cara Menentukan cakupan migrasi ke Redis Enterprise Cloud.
- Baca konten migrasi data Google Cloud.
- Untuk dokumentasi dan praktik terbaik yang lebih mendalam, tinjau dokumentasi RIOT.
- Untuk mengetahui lebih banyak tentang arsitektur referensi, diagram, dan praktik terbaik lainnya, jelajahi Pusat Arsitektur Cloud.
Kontributor
Penulis:
- Saurabh Kumar | ISV Partner Engineer
- Gilbert Lau | Principal Cloud Architect, Redis
Kontributor lainnya:
- Chris Mague | Customer Engineer, Data Management
- Gabe Weiss | Developer Advocacy Manager
- Marco Ferrari | Cloud Solutions Architect