Google CloudSQL adalah layanan terkelola untuk database dengan dukungan untuk MySQL dan PostgreSQL. CloudSQL dapat diintegrasikan dengan beberapa layanan Google Cloud Platform lainnya, termasuk replikasi data di beberapa zona dengan failover otomatis. Pada artikel ini, kita akan membahas migrasi instance database MySQL dari Google CloudSQL ke AWS RDS menggunakan Database Migration Service (DMS). Artikel ini memiliki bagian berikut:
- Mengatur Lingkungan
- Membuat Instans DB RDS MySQL
- Menghubungkan ke Database MySQL di RDS
- Membuat Proyek Google Cloud Platform
- Membuat Instance CloudSQL
- Menambahkan Rute untuk Alamat IP Instans CloudSQL DB ke Tabel Rute VPC
- Membuat Instance Replikasi DMS
- Menambahkan Jaringan untuk Konektivitas Instans Replikasi ke Instans DB CloudSQL
- Membuat Titik Akhir Replikasi Basis Data
- Membuat Tugas Replikasi
- Menjalankan Tugas Replikasi
- Menjelajahi Tabel yang Dimigrasikan
- Menjelajahi Log CloudWatch
- Menghapus Migrasi
- Menghapus Instance DB
- Kesimpulan
Mengatur Lingkungan
Diperlukan akun penagihan Google Cloud Platform. Akun Google Cloud Platform Tingkat Gratis memberikan uji coba gratis untuk tahun pertama. Akun AWS juga diperlukan; ini dapat dibuat di https://aws.amazon.com/resources/create-account/.
Membuat Instans DB RDS MySQL
Karena kita akan memigrasi database MySQL dari CloudSQL ke AWS RDS, kita perlu membuat instance database MySQL di RDS. Navigasikan ke RDS di https://aws.amazon.com/rds dan, di wizard RDS, pilih mesin sebagai MySQL, seperti yang ditunjukkan pada Gambar 1.
Gambar 1: Memilih Mesin Database MySQL
Dalam Produksi? , pilih Pengembangan/Uji , seperti yang ditunjukkan pada Gambar 2.
Gambar 2: Memilih Pengembangan &Pengujian
Dalam Tentukan Detail DB , centang kotak Hanya tampilkan opsi yang memenuhi syarat untuk Tingkat Gratis RDS , seperti yang ditunjukkan pada Gambar 3. Pilih Model Lisensi sebagai lisensi publik-umum. Pilih Versi Mesin DB sebagai MySQL 5.6.35. MySQL versi 5.5, 5.6, dan 5.7 didukung untuk target DMS. Pilih DB Instance Class sebagai db.t2.micro, yang memiliki kapasitas 1 vCPU dan RAM 1GB. Pilih Multi-AZ Deployment sebagai No. Pilih Storage Type as General Purpose (SSD), dan alokasikan penyimpanan sebagai 5 GB.
Gambar 3: Tentukan Detail DB
Dalam pengaturan basis data, tentukan pengidentifikasi Instans DB (mysqldb), Master Username, dan Master Password, seperti terlihat pada Gambar 4. Klik Next Step.
Gambar 4: Menentukan Pengaturan Basis Data
Di Configure Advanced Settings, pilih VPC, seperti yang ditunjukkan pada Gambar 5. Migrasi DMS harus dibuat di VPC yang sama dengan instans DB RDS. Tetapkan Availability Zone sebagai us-east-1b. Pilih opsi untuk Buat Grup Keamanan baru. Dalam Opsi Basis Data, tentukan Nama Basis Data (mysqldb). Tentukan Port Database (3306), dan pilih Grup Parameter DB.
Gambar 5: Mengonfigurasi Pengaturan Lanjut
Sebagian besar atau semua pengaturan lainnya—termasuk Option Group, Enable IAM DB Authentication, Enable Encryption, Backup, dan Monitoring—dapat disimpan sebagai default (lihat Gambar 6). Pencadangan otomatis diperlukan untuk diaktifkan untuk MySQL di RDS sebagai sumber DMS. Klik Luncurkan Instans DB .
Gambar 6: Luncurkan Instans DB
Instans DB baru mulai dibuat, seperti yang ditunjukkan oleh pesan di Gambar 7. Klik Lihat Instans DB Anda untuk melihat instans DB.
Gambar 7: Instans DB Anda sedang dibuat
Instance MySQL DB baru di RDS akan dimulai, seperti yang ditunjukkan pada Gambar 8.
Gambar 8: Instans DB MySQL di RDS
Klik tautan Grup Keamanan, seperti yang ditunjukkan pada Gambar 9, untuk mengubah aturan Masuk/Keluar untuk mengizinkan lalu lintas dari/ke semua alamat IP.
Gambar 9: Tautan Grup Keamanan
Pilih tab Inbound dan klik tombol Edit untuk mengubah aturan inbound, seperti yang ditunjukkan pada Gambar 10.
Gambar 10: Memodifikasi aturan Masuk
Pada Edit Inbound rules, atur Type ke All Traffic, Protocol ke All, Port Range ke 0-65535, Source ke Anywhere, dan klik Save (lihat Gambar 11).
Gambar 11 Edit aturan masuk
Aturan Masuk yang dimodifikasi ditunjukkan pada Gambar 12.
Gambar 12: Aturan Masuk
Aturan Keluar tidak perlu diubah karena sudah diatur untuk mengizinkan lalu lintas ke semua IP tujuan, seperti yang ditunjukkan pada Gambar 13.
Gambar 13: Aturan keluar
Menghubungkan ke Database MySQL di RDS
Dapatkan host instans DB RDS dari Endpoint; alamat host adalah Endpoint dengan akhiran port:3306 dihapus. Hubungkan ke instance database MySQL di RDS menggunakan alamat host dan port dengan perintah mysql berikut untuk memulai antarmuka baris perintah MySQL.
mysql --host=mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=3306 --user=dvohra --password=mysql5db
Host, pengguna, dan kata sandi akan berbeda untuk pengguna yang berbeda. Berikan akses akun MySQL ke pengguna DMS dengan perintah berikut, di mana pengguna DMS akan berbeda untuk pengguna yang berbeda.
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON mysqldb.* TO 'dvohra'@'%';GRANT SEMUA HAK ISTIMEWA DI awsdms_control.* TO 'dvohra'@'%';Membuat Proyek Google Cloud Platform
Anda harus membuat proyek Google Cloud Platform untuk menggunakan CloudSQL. Untuk membuat proyek, klik Buat proyek kosong pada halaman Memulai, seperti yang ditunjukkan pada Gambar 14.
Gambar 14: Buat proyek kosongDi Proyek Baru wizard, tentukan Nama proyek (MySQLDB) dan klik Buat , seperti yang ditunjukkan pada Gambar 15.
Gambar 15: Proyek BaruSebuah proyek baru akan dibuat, seperti yang ditunjukkan pada Dasbor pada Gambar 16.
Gambar 16: Proyek Google Cloud Platform baruMembuat Instance CloudSQL
Di bagian ini, kita akan membuat instance CloudSQL. Arahkan ke URL CloudSQL https://cloud.google.com/sql/ di browser, seperti yang ditunjukkan pada Gambar 17. Klik Lihat Konsol.
Gambar 17: Lihat KonsolPilih MySQLDB proyek dan klik Buat instance , seperti yang ditunjukkan pada Gambar 18.
Gambar 18: Buat InstanceDalam Buat instance wizard, pilih MySQL dan klik Berikutnya , seperti yang ditunjukkan pada Gambar 19.
Gambar 19: Memilih mesin sebagai MySQLDi Pilih jenis instans MySQL , klik Pilih Generasi Kedua untuk memilih jenis instans Generasi Kedua MySQL, seperti yang ditunjukkan pada Gambar 20. Beberapa manfaat dari tipe instans Generasi Kedua juga dicantumkan.
Gambar 20: Memilih instans MySQL Generasi KeduaDi Buat instance MySQL Generasi Kedua (lihat Gambar 21), tentukan ID Instance dan Kata sandi root , dan pilih Wilayah dan Zona. Klik Buat .
Gambar 21: Buat instance MySQL Generasi KeduaInstance MySQL mulai dibuat, seperti yang ditunjukkan pada tabel Instances pada Gambar 22.
Gambar 22: Instance MySQL CloudSQLMenambahkan Rute untuk Alamat IP Instans CloudSQL DB ke Tabel Rute VPC
Kita perlu memodifikasi Tabel Rute untuk VPC tempat instans DB RDS dan migrasi DMS dibuat untuk memungkinkan akses ke Alamat IP instans CloudSQL. Pertama, dapatkan alamat IP instance CloudSQL dari CloudSQL Console, seperti yang ditunjukkan pada Gambar 23.
Gambar 23: Alamat IP Instans DB CloudSQLKlik Tabel rute link, seperti yang ditunjukkan pada Gambar 24, untuk VPC tempat instans DB RDS dibuat dan DMS akan dibuat selanjutnya.
Gambar 24: Tautan Tabel RutePilih rute yang terdaftar dan klik Edit, seperti yang ditunjukkan pada Gambar 25.
Gambar 25: Rute>EditKlik Tambahkan rute lain (lihat Gambar 26).
Gambar 26: Tambahkan rute lainTentukan alamat IP instance CloudSQL di Destination, seperti yang ditunjukkan pada Gambar 27.
Gambar 27: Menentukan Tujuan sebagai Alamat IP instance CloudSQLPilih Target sebagai Gateway Internet yang terkait dengan VPC, seperti yang ditunjukkan pada Gambar 28. Gateway Internet memungkinkan komunikasi antara instans di VPC dan Internet.
Gambar 28: Memilih Target sebagai Gerbang InternetKlik Simpan untuk menyimpan rute. Sebuah rute akan ditambahkan, seperti yang ditunjukkan pada Gambar 29.
Gambar 29: Rute untuk Instance CloudSQLMembuat Instance Replikasi DMS
Di bagian ini, kita akan membuat instance replikasi untuk memigrasi instance CloudSQL ke RDS. Klik Buat migrasi di halaman awal Layanan Migrasi Database, seperti yang ditunjukkan pada Gambar 30.
Gambar 30: Buat migrasiDi halaman Selamat Datang, klik Berikutnya (lihat Gambar 31).
Gambar 31: Halaman selamat datang>SelanjutnyaDalam Buat instance replikasi halaman, tentukan nama dan deskripsi, seperti yang ditunjukkan pada Gambar 32. Pilih Kelas Instance sebagai dms.t2.medium. Pilih versi mesin Replikasi sebagai 2.2.1. Pilih VPC yang sama tempat instans DB RDS dibuat. Pilih Multi-AZ A No. Pilih kotak centang Dapat diakses oleh Publik.
Gambar 32: Mengonfigurasi Instance ReplikasiDi Lanjutan, tentukan Penyimpanan yang dialokasikan (50 GB), pilih Grup Subnet Replikasi, dan pilih Availability zone sama seperti untuk instans DB RDS, us-east-1b, seperti yang ditunjukkan pada Gambar 33. Pilih Grup Keamanan VPC default. Pilih kunci master KMS yang dibuat untuk DMS.
Gambar 33: Mengonfigurasi Opsi LanjutanPilih pengaturan Pemeliharaan default dan klik Berikutnya, seperti yang ditunjukkan pada Gambar 34.
Gambar 34: Contoh replikasi>SelanjutnyaPesan “Instance replikasi Anda sedang dibuat” akan ditampilkan, seperti yang ditunjukkan pada Gambar 35. Titik akhir database sumber dan target dapat dikonfigurasi hanya setelah instance replikasi dibuat.
Gambar 35: Instance replikasi Anda sedang dibuatKetika instance replikasi telah dibuat, pesan “Instance replikasi berhasil dibuat” akan ditampilkan (lihat Gambar 36).
Gambar 36: Instance replikasi berhasil dibuatInstance Replikasi mencantumkan instance replikasi baru yang dibuat, seperti yang ditunjukkan pada Gambar 37.
Gambar 37: Contoh ReplikasiMenambahkan Jaringan untuk Konektivitas Instans Replikasi ke Instans DB CloudSQL
Pertama, tentukan alamat IP yang menjalankan instance replikasi. Alamat IP dapat diperoleh dari konsol instance Replication, seperti yang ditunjukkan pada Gambar 38.
Gambar 38: Alamat IP untuk Instance ReplikasiSetelah mendapatkan alamat IP, selanjutnya kita akan menambahkan jaringan yang terdiri dari alamat IP ke instance MySQL di CloudSQL. Klik tautan instance CloudSQL MySQL, seperti yang ditunjukkan pada Gambar 39.
Gambar 39: Instans DB MySQL CloudSQLKlik Otorisasi Instance Database MySQL halaman detail, seperti yang ditunjukkan pada Gambar 40.
Gambar 40: OtorisasiKlik Tambahkan jaringan (lihat Gambar 41).
Gambar 41: Tambahkan jaringanDi Jaringan baru , tentukan Nama jaringan, dan alamat IP Jaringan sebagai alamat IP dari instance replikasi, seperti yang ditunjukkan pada Gambar 42, dan klik Selesai.
Gambar 42: Menambahkan Jaringan Baru ke CloudSQLJaringan baru ditambahkan, seperti yang ditunjukkan pada Gambar 43. Klik Simpan untuk menyelamatkan jaringan.
Gambar 43: Menyimpan jaringan baruPesan “Instance sedang diperbarui” akan ditampilkan, seperti yang ditunjukkan pada Gambar 44.
Gambar 44: Instance sedang diperbaruiKetika instance telah diperbarui, ikon instance menunjukkan hal yang sama, seperti yang ditunjukkan pada Gambar 45.
Gambar 45: Instance diperbaruiKlik Ikhtisar (lihat Gambar 46) untuk menampilkan ikhtisar instans.
Gambar 46: IkhtisarJaringan baru terdaftar di Jaringan resmi di Detail Instance halaman, seperti yang ditunjukkan pada Gambar 47.
Gambar 47: Jaringan resmiMembuat Titik Akhir Replikasi Basis Data
Selanjutnya, kita akan membuat titik akhir database sumber dan target. Tentukan pengidentifikasi Endpoint untuk database sumber dan target. Untuk mesin Sumber, pilih mysql , seperti yang ditunjukkan pada Gambar 48.
Gambar 48: Memilih mesin Sumber sebagai mysqlPilih Mesin target sebagai mysql juga, seperti yang ditunjukkan pada Gambar 49.
Gambar 49: Memilih Mesin Target sebagai mysqlUntuk nama Server sumber, salin alamat IPv4 instance CloudSQL, seperti yang ditunjukkan pada Gambar 50.
Gambar 50: Alamat IPv4 dari Instance CloudSQLUntuk database target, tentukan nama server sebagai Endpoint dikurangi akhiran port “:3306” untuk instans DB RDS untuk database MySQL (lihat Gambar 51). Tentukan Port untuk database sumber dan target sebagai 3306. Pilih mode SSL sebagai none untuk koneksi sumber dan target. Tentukan Nama pengguna untuk database sumber sebagai root dan kata sandi yang ditetapkan saat membuat instance CloudSQL. Demikian pula, atur nama pengguna dan kata sandi untuk database target di RDS.
Gambar 51: Mengonfigurasi Detail Koneksi Database Sumber dan TargetUntuk bagian Lanjutan dari database sumber dan target, pilih dms kunci master KMS, yang dibuat untuk DMS. Klik Jalankan pengujian , seperti yang ditunjukkan pada Gambar 52, untuk koneksi sumber. Demikian pula, klik Jalankan pengujian untuk koneksi target.
Gambar 52: Jalankan tesJika hasil pengujian adalah “Koneksi berhasil diuji” untuk koneksi database sumber dan target, klik Berikutnya, seperti yang ditunjukkan pada Gambar 53.
Gambar 53: Menguji KoneksiMembuat Tugas Replikasi
Dalam Buat tugas, tentukan nama tugas dan deskripsi tugas, seperti yang ditunjukkan pada Gambar 54. Titik akhir Sumber, Titik akhir Target, dan contoh Replikasi dikodekan secara keras. Pilih Jenis migrasi sebagai Migrasi data yang ada. Pilih kotak centang Mulai tugas saat membuat.
Gambar 54: Buat tugasDi Pengaturan Tugas, pilih/setel Mode persiapan tabel target sebagai Tidak melakukan apa-apa , Sertakan kolom LOB dalam replikasi sebagai Mode LOB terbatas , dan Max LOB size sebagai 32 kb, seperti yang ditunjukkan pada Gambar 55. Pilih Enable logging pilihan.
Gambar 55: Pengaturan TugasDi Pemetaan tabel , ditunjukkan pada Gambar 56, setidaknya satu aturan pemilihan perlu ditambahkan.
Gambar 56: Pemetaan tabelPilih Masukkan skema opsi dalam Nama skema adalah bidang. Tentukan Nama skema seperti mysql , seperti yang ditunjukkan pada Gambar 57. Tentukan Nama tabel seperti innodb_index_stats. Pilih Tindakan sebagai Sertakan . Klik Tambahkan aturan pemilihan .
Gambar 57: Menambahkan Aturan PemilihanUntuk menambahkan aturan pemilihan lainnya, klik tambahkan aturan pemilihan tautan, seperti yang ditunjukkan pada Gambar 58.
Gambar 58: Tambahkan aturan pemilihanTambahkan aturan pemilihan untuk menyertakan tabel mysql.innodb_table_stats , seperti yang ditunjukkan pada Gambar 59.
Gambar 59: Menambahkan aturan pemilihan untuk mysql.innodb_table_statsAturan pemilihan dapat ditambahkan, satu untuk setiap tabel, atau dengan menggunakan ekspresi reguler wildcard. Selanjutnya, kita akan menggunakan % untuk menambahkan aturan pemilihan. Klik tambahkan aturan pemilihan , seperti yang ditunjukkan pada Gambar 60.
Gambar 60: Tambahkan tautan aturan pemilihanTentukan Skema sebagai mysql dan tentukan Nama tabel sebagai zona_waktu% , yang mewakili semua tabel yang dimulai dengan “zona_waktu” (lihat Gambar 61).
Gambar 61: Menambahkan aturan Pemilihan untuk memasukkan semua tabel dalam skema mysql yang dimulai dengan zona_waktuKlik Buat tugas untuk membuat tugas, seperti yang ditunjukkan pada Gambar 62.
Gambar 62: Buat tugasTugas baru ditambahkan dengan status sebagai Membuat awalnya, seperti yang ditunjukkan pada Gambar 63. Klik Refresh data from server secara berkala untuk menyegarkan status tugas.
Gambar 63: Tugas ditambahkan dengan status MembuatKetika tugas telah dibuat dan siap dijalankan, Status menjadi Siap, seperti yang ditunjukkan pada Gambar 64.
Gambar 64: Status Tugas SiapMenjalankan Tugas Replikasi
Untuk memulai instance replikasi, klik tombol Start/Resume, seperti yang ditunjukkan pada Gambar 65.
Gambar 65: Mulai/LanjutkanStatus tugas menjadi Mulai (lihat Gambar 66). Secara berkala, klik Segarkan data dari server tombol untuk me-refresh status seperti yang ditunjukkan pada Gambar 66.
Gambar 66: Status Tugas DimulaiStatus tugas menjadi Berjalan saat tugas mulai berjalan. Ketika pemuatan penuh telah selesai, statusnya menjadi Pemuatan selesai , seperti yang ditunjukkan pada Gambar 67.
Gambar 67: Muat selesaiMenjelajahi Tabel yang Dimigrasikan
Tabel dimuat kolom memiliki nilai 7 untuk tujuh tabel yang dimigrasikan, seperti yang ditunjukkan pada Gambar 68.
Gambar 68: Tujuh tabel dipindahkanUntuk menemukan detail tentang tabel yang dimigrasikan, pilih Statistik tabel tab, seperti yang ditunjukkan pada Gambar 69.
Gambar 69: Statistik tabelSemua tabel yang telah dimigrasikan akan terdaftar, seperti yang ditunjukkan pada Gambar 70.
Gambar 70: Tabel dimigrasikanMenjelajahi CloudWatch Logs
Untuk menjelajahi log CloudWatch, klik tautan di Log tab (lihat Gambar 71).
Gambar 71: Tautan logLog CloudWatch mencantumkan entri log untuk setiap tabel yang dimigrasikan, seperti yang ditunjukkan pada Gambar 72. Ketika semua tabel yang dikonfigurasi menggunakan aturan pemilihan dan transformasi telah dimigrasikan, entri log “Semua tabel dimuat” akan ditambahkan.
Gambar 72: Log CloudWatchKetika semua tabel telah dimuat, entri log Manajemen tugas dihentikan akan ditambahkan, seperti yang ditunjukkan pada Gambar 73.
Gambar 73: Manajemen tugas dihentikanMenghapus Migrasi
Untuk menghapus migrasi, urutannya adalah kebalikan dari membuat migrasi.
- Hapus tugas migrasi.
- Hapus titik akhir Database.
- Hapus instance replikasi.
Untuk menghapus tugas, pilih tugas dan klik Hapus, seperti yang ditunjukkan pada Gambar 74.
Gambar 74: Tugas>HapusDalam dialog Hapus tugas, klik Hapus, seperti yang ditunjukkan pada Gambar 75.
Gambar 75: Hapus dialog konfirmasi tugasStatus tugas menjadi Menghapus (lihat Gambar 76).
Gambar 76: Penghapusan TugasUntuk menghapus Titik Akhir, pilih titik akhir dan klik Hapus, seperti yang ditunjukkan pada Gambar 77.
Gambar 77: Titik akhir>HapusDi Hapus titik akhir dialog konfirmasi, klik Hapus, seperti yang ditunjukkan pada Gambar 78.
Gambar 78: Hapus dialog konfirmasi titik akhirStatus untuk titik akhir menjadi Menghapus, seperti yang ditunjukkan pada Gambar 79.
Gambar 79: Menghapus Titik AkhirUntuk menghapus instance replikasi, pilih instance replikasi dan klik Hapus, seperti yang ditunjukkan pada Gambar 80.
Gambar 80: Contoh Replikasi>HapusDalam Hapus instance replikasi dialog konfirmasi, klik Hapus (lihat Gambar 81).
Gambar 81: Dialog konfirmasi Hapus instance replikasiStatus untuk instance replikasi menjadi Deleting, seperti yang ditunjukkan pada Gambar 82.
Gambar 82: Menghapus Instance ReplikasiMenghapus Instans DB
Selanjutnya, hapus database sumber dan target. Untuk menghapus database target, yang merupakan database MySQL di RDS, pilih database instance di tabel All Instances dan klik Instance Actions>Delete, seperti yang ditunjukkan pada Gambar 83.
Gambar 83: Tindakan Instance>HapusDalam Hapus instans DB, pilih opsi untuk tidak membuat snapshot akhir dan pilih kotak centang pengakuan, dan klik Hapus, seperti yang ditunjukkan pada Gambar 84.
Gambar 84: Hapus Dialog Instans DBInstans DB RDS mulai dihapus, seperti yang ditunjukkan oleh status Penghapusan pada Gambar 85.
Gambar 85: Penghapusan Instans DB RDSUntuk menghapus instans CloudSQL DB, klik kanan mysql ikon manajemen instans DB dan pilih Hapus (lihat Gambar 86).
Gambar 86: CloudSQL mysql>HapusDalam contoh Hapus? dialog konfirmasi, tentukan nama instance di bidang yang disediakan untuk mengonfirmasi bahwa instance akan dihapus, dan klik Hapus, seperti yang ditunjukkan pada Gambar 87.
Gambar 87: Hapus dialog konfirmasi instanceKesimpulan
Dalam artikel ini, kita membahas migrasi MySQL di CloudSQL ke AWS RDS menggunakan Layanan Migrasi Database AWS.