Hai!

Selamat malam teman-teman. Pada jurnal ini saya ingin menjelaskan apa itu AWS DMS (Database Migration Service) beserta contoh lab sederhana sebagai implementasinya.

Sesuai nama, AWS DMS adalah layanan yang memudahkan kita untuk melakukan migrasi database (baik relasional, non-relasional, data warehouse, ataupun tipe data lainnya) ke AWS Cloud dari on-premise ataupun layanan cloud lain bahkan dari AWS Cloud sendiri.

Dengan AWS DMS, kita bisa melakukan migrasi secara tepat, cepat, bahkan bisa melakukan replikasi untuk memastikan data di source dan destination saling sinkron. Kita bisa melakukan migrasi dimana source dan destination memiliki engine yang berbeda. Seperti dari MySQL ke PostgreSQL atau sebaliknya. Hanya saja perlu layanan tambahan yaitu AWS Schema Conversion Tool (AWS SCT) untuk mengkonversi skema nya terlebih dahulu sebelum di migrasi. Kita akan coba bahas di jurnal lain karena disini saya akan coba migrasi dengan menggunakan Engine yang sama, yaitu MySQL/MariaDB.

Dari dokumentasi resminya, diagram alur dari AWS DMS seperti berikut ini:

Penjelasannya kurang lebih:

  1. Kita siapkan source database. Bisa database dari on-premise, layanan cloud seperti AWS Cloud, bahkan AWS S3
  2. Di AWS DMS, kita buat dua endpoint, yaitu Source Endpoint berisi konfigurasi dari source database, dan Target Endpoint berisi konfigurasi dari target database
  3. Buat sebuah Replication Instance dan Replication Task yang akan melakukan migrasi dari source ke destination database

Mari kita coba.

Terlihat di bawah ini saya memiliki sebuah on-premise database dan saya akan coba melakukan migrasi ke Amazon RDS. Databae yang akan dimigrasi adalah nation.

Saya telah menyiapkan Amazon Aurora Multi-AZ database dengan 1 db instance sebagai writer, dan 1 db instance sebagai reader.

Untuk ke AWS DMS, buka Services > Migration & Transfer > Database Migration Service

Akan diarahkan ke dashboard AWS DMS, dan kita bisa mulai dengan membuat replication Instance. Klik Create replication instance

Definisikan nama dan instance class. Saya pilih spesifikasi terkecil yaitu dms.t2.micro

Gulir ke bawah, tentukan ukuran disk dari replication instance (defaultnya 50GB), vpc yang akan digunakan, dan apakah instance diset Multi-AZ atau tidak. Saya pilih Single-AZ

Bisa diset akan ditempatkan di AZ mana, ceklis Publicly accessible dan jangan lupa atur security group dengan port 3306 di inbound rule sudah di allow

Gulir ke bawah dan saya biarkan konfigurasinya default

Gulir ke bawah dan klik Create

Tunggu hingga replication instance berhasil dibuat dan statusnya Available

Klik nama dari replication instance untuk melihat detailnya

Seperti di diagram sebelumnya, selanjutnya kita akan coba membuat dua endpoint, yaitu Source dan Destination. Klik Endpoints di menu kiri > Create Endpoint

Saya akan membuat Source endpoint terlebih dahulu. Tentukan nama dan Source engine, misal MySQL (sesuaikan engine di database asal)

Pada pengaturan Access to endpoint database, pilih Provide access Information manually. Isikan Server name berupa IP Address atau hostname, port, username dan password yang bisa digunakan untuk mengakses database. Lalu klik Create Endpoint

Untuk menguji apakah database bisa diakses, ceklis endpoint > Action > Modify > Test Connection

Klik Run test dan pastikan berhasil.

Jika tidak berhasil, periksa apakah kredensial sudah benar atau belum.

Klik Create endpoint lagi dan pilih tipe nya sebagai Target endpoint. Ceklis Select RDS DB Instance karena database tujuan kita berada di Amazon RDS.

Pilih RDS db instance, dan tentukan nama endpoint nya

Sesuaikan Target Engine, klik Provide access information manually, dan isikan kredensial yang dapat digunakan untuk mengakses database. Lalu klik Create endpoint

Tunggu hingga endpoint berhasil dibuat.

Untuk menguji endpoint, ceklis endpoint > Action > Test connection

Pastikan Target endpoint berhasil dites

Setelah endpoint dibuat, kita akan membuat task untuk melakukan migrasi. Klik Database migration task lalu klik Create task

Tentukan identifier, pilih replication instance, source dan target endpoint yang sudah dibuat sebelumnya. Pada migration type saya pilih Migrate existing data

Ceklis Enable Validation dan saya biarkan konfigurasinya menjadi default

Gulir ke bawah dan bisa diatur konfigurasi tuning dan atau konfigurasi lainnya. Karena untuk Dev, disini saya biarkan default.

Pada Selection rules, klik Add new selection rule. Atur nama database apa yang akan dimigrasi di kolom Schema name dan atur tabel apa yang ingin dimigrasi di kolom Table name. Ketik % ketika ingin migrasi semua item, baik database atau tabel.

Pilih Manyally later dan klik Create task

Tunggu hingga beberapa saat sampai statusnya Ready. Ceklis task > Action > Restart/Resume

Tunggu hingga proses migrasi selesai dengan status Load complete 100%.

Klik nama task > Table statistics untuk verifikasi tabel apa saja yang dimigrasi dan bagaimana statusnya.

Kita bisa verifikasi database yang berada di Amazon RDS dari ec2 instance. Di bawah ini terlihat database nation sudah berada disana.

Referensi:

  1. https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.SettingUp.html

Sekian!