Menyiapkan AWS DMS
Mari praktik langsung dengan menyiapkan AWS DMS. Dalam tutorial ini, Anda akan mempelajari cara memigrasikan database Oracle ke Amazon Aurora (MySQL), termasuk konversi skema, replikasi data, dan praktik terbaik untuk memastikan transisi yang mulus.
Langkah 1: Prasyarat untuk menggunakan AWS DMS
Sebelum memigrasikan database, Anda perlu menyiapkan sumber daya AWS yang penting. Menggunakan AWS CloudFormation, Anda dapat mengotomatiskan provisioning sehingga Anda bisa fokus pada tugas migrasi. Template yang akan kita gunakan menerapkan:
- AWS VPC dengan Subnet Publik untuk jaringan.
- AWS DMS Replication Instance untuk melakukan migrasi data.
- Amazon RDS Instance sebagai database target.
- Amazon EC2 Instance untuk menampung alat migrasi seperti AWS Schema Conversion Tool (SCT) atau simulasi database sumber.
Masuk ke AWS Console
- Masuk ke AWS Management Console menggunakan kredensial Anda.
- Klik menu tarik-turun di pojok kanan atas layar dan pilih region Anda. Saya akan memilih region N. Virginia untuk tutorial ini.

Gambar 1 Memilih AWS Region di AWS Management Console.
- Buka EC2 Console dan navigasikan ke bagian Key Pair. Pastikan Anda berada di region AWS yang sama dengan langkah sebelumnya.
- Klik Create Key Pair dan beri nama "DMS".
Gambar 2 Membuat key pair untuk akses aman di AWS EC2.
- Klik Create, dan browser Anda akan mengunduh
DMS.pem. - Simpan file ini dengan aman—Anda akan membutuhkannya nanti di tutorial.
Konfigurasi lingkungan
Pada langkah ini, Anda akan menggunakan template CloudFormation (CFN) untuk menyiapkan infrastruktur AWS yang diperlukan untuk migrasi database. Ini mengotomatiskan provisioning, sehingga Anda bisa fokus pada tugas migrasi.
- Buka AWS CloudFormation console dan klik Create Stack.
- Pilih Choose an existing template, lalu pilih Upload a template file.

Gambar 3 Mengunggah template CloudFormation untuk membuat stack baru.
- Unduh file dari Github Gist dan klik Choose file.
- Unggah file
DMS.yamllalu klik Next. - Isi parameter yang diperlukan sesuai petunjuk, kemudian klik Next.

Gambar 4 Mengonfigurasi parameter untuk stack AWS DMS CloudFormation
Catatan: Anda dapat menyesuaikan tipe instance sesuai kebutuhan atau membiarkannya apa adanya.
- Pada halaman Stack Options, biarkan pengaturan default lalu klik Next.
- Tinjau konfigurasi dan klik Create stack.
- Anda akan diarahkan ke console CloudFormation, di mana status akan menampilkan "CREATE_IN_PROGRESS". Tunggu hingga berubah menjadi "CREATE_COMPLETE".

Gambar 5 Meninjau status pembuatan sumber daya di AWS CloudFormation
- Setelah selesai, buka bagian Outputs dan catat nilainya—Anda akan membutuhkannya untuk sisa tutorial.
Menyiapkan database sumber dan target untuk migrasi
Kita akan mulai dengan konfigurasi database sumber. Ikuti langkah berikut untuk mengakses instance EC2 menggunakan Remote Desktop Protocol (RDP).
Langkah 1: Menyiapkan akses RDP
- Untuk pengguna Mac: Unduh Microsoft Remote Desktop dari App Store.
- Untuk pengguna PC: Gunakan Remote Desktop untuk terhubung ke PC yang Anda siapkan.
Langkah 2: Ubah aturan Security Group untuk akses RDP
- Buka AWS EC2 Console.
- Di menu sebelah kiri, klik Security Groups (Anda mungkin perlu menggulir ke bawah).
- Pilih security group yang berakhiran "InstanceSecurityGroup" dengan mencentang kotaknya.
- Klik Actions > Edit Inbound Rules.
- Temukan aturan RDP (port 3389), klik Source, lalu pilih My IP untuk keamanan yang lebih baik.
- Jika menggunakan VPN perusahaan atau jaringan kompleks, Anda mungkin perlu mengubahnya menjadi "Anywhere (0.0.0.0/0)" nanti.

Gambar 6 Mengedit aturan keamanan inbound di AWS.
- Klik Save rules.
Langkah 3: Ambil kredensial RDP
- Di AWS EC2 Console, klik Instances pada menu kiri.
- Pilih instance bernama "<StackName>-EC2Instance".
- Klik Actions > Connect.
- Navigasikan ke bagian RDP Client dan klik Get password.
- Klik Browse lalu unggah file Key Pair yang diunduh sebelumnya.
- Klik Decrypt password.

Gambar 7 Mengambil kata sandi Windows untuk instance AWS EC2.
- Salin kata sandi yang dihasilkan ke catatan Anda untuk digunakan nanti.
Langkah 4: Terhubung ke instance EC2
- Klik Download Remote Desktop File untuk menyimpan file RDP.
- Buka klien RDP (Microsoft Remote Desktop di Mac).
- Gunakan kata sandi yang didekripsi untuk masuk.
- Jika diminta, klik Done untuk menyelesaikan penyiapan.
Langkah 5: Terhubung ke Oracle SQL Developer
Setelah terhubung ke instance EC2, ikuti langkah berikut untuk membuat koneksi ke database Oracle menggunakan Oracle SQL Developer.
Langkah 1: Buka Oracle SQL Developer
- Temukan Oracle SQL Developer di Taskbar dan bukalah.
- Catatan: Ikon Anda mungkin tampil dalam urutan yang berbeda dari gambar referensi.

Gambar 8 Mengonfigurasi koneksi database baru di Oracle SQL Developer.
Langkah 2: Buat koneksi database baru
- Klik tanda plus (+) di menu kiri untuk membuat New Database Connection.
- Masukkan detail berikut:
- Connection Name: Source Oracle
- Username: dbadmin
- Password: Periksa tab Outputs CloudFormation Stack di bawah DMSDBSecretP
- Save Password: Centang kotak ini.
- Hostname: Temukan Source Oracle Endpoint dari tab Output CloudFormation. Alternatifnya, buka console RDS, pilih instance Oracle sumber Anda, dan gunakan endpoint yang tersedia.
- Port: 1521
- SID: ORACLEDB
Langkah 3: Uji dan sambungkan
- Klik Test untuk memverifikasi koneksi.
- Setelah status uji menampilkan "Successful", klik Connect.
Langkah 4: Mengonfigurasi Oracle untuk migrasi AWS DMS
Sebelum menggunakan Oracle sebagai sumber untuk AWS DMS, pastikan konfigurasi berikut diterapkan:
1. Buat pengguna DMS dengan hak istimewa yang diperlukan
AWS DMS memerlukan akun pengguna (pengguna DMS) dengan hak baca dan tulis pada database Oracle.
2. Aktifkan ARCHIVELOG MODE
- ARCHIVELOG MODE harus diaktifkan untuk menyediakan informasi transaction log kepada LogMiner.
- AWS DMS mengandalkan LogMiner untuk menangkap perubahan data dari archive log.
- Pastikan archive log dipertahankan setidaknya selama 24 jam untuk mencegah kehilangan data selama migrasi.
3. Aktifkan supplemental logging
- Supplemental logging tingkat database:
- Ini memastikan LogMiner menangkap semua detail yang diperlukan untuk berbagai struktur tabel (misalnya, tabel terklaster dan index-organized).
- Supplemental logging tingkat tabel:
- Harus diaktifkan untuk setiap tabel yang akan Anda migrasikan.
4. Memberikan hak yang diperlukan kepada pengguna AWS DMS
- Di Oracle SQL Developer, klik ikon SQL Worksheet.
- Terhubung ke database Source Oracle.
- Salin, tempel, dan jalankan pernyataan dari Github Gist untuk memberikan hak yang diperlukan kepada pengguna AWS DMS.

Gambar 9 Menjalankan skrip SQL di Oracle SQL Developer.
Langkah 6: Konfigurasi target Amazon Aurora (MySQL)
Setelah memilih penyiapan awal dan database sumber, Anda dapat memigrasikan database contoh. Panduan ini menjelaskan cara menggunakan AWS Schema Conversion Tool (AWS SCT) dan AWS Database Migration Service (AWS DMS) untuk mentransformasikan struktur database dan memindahkan data ke Amazon Aurora (MySQL).
Selain itu, AWS DMS akan berfungsi sebagai alat untuk mengaktifkan replikasi berkelanjutan, yang berarti semua perubahan yang dibuat di database sumber akan direplikasi ke database target secara real time.
- Sambungkan kembali ke instance EC2 melalui RDP.
- Buka folder DMS Workshop di Desktop dan klik ganda AWS Schema Conversion Tool Download untuk memasang versi terbaru.
- Ekstrak dan pasang AWS SCT dengan mengikuti wizard instalasi (gunakan default lalu klik Finish).
- Jalankan AWS SCT dari Start Menu atau ikon oranye SCT di Desktop dan setujui ketentuan.
- Buka MySQL Workbench 8.0 CE dan buat koneksi database baru untuk target Aurora MySQL dengan:
- Connection Name: Target Aurora RDS (MySQL)
- Host Name:
<TargetAuroraMySQLEndpoint>(Temukan di Output CloudFormation atau console RDS) - Port: 3306
- Username: dbadmin
- Password: Ambil dari tab Output CloudFormation
- Default Schema: Biarkan kosong

Gambar 10 Menyiapkan koneksi MySQL Workbench ke Amazon Aurora.
- Klik Test Connection, pastikan berhasil, lalu sambungkan ke Aurora MySQL.
- Jalankan perintah izin yang disediakan GitHub Gist berupa pernyataan SQL di MySQL Workbench (klik ikon petir untuk menjalankan).
Setelah Anda memasang AWS Schema Conversion Tool, langkah berikutnya adalah membuat Database Migration Project menggunakan alat tersebut.
Langkah 1: Memulai proyek baru
- Buka AWS Schema Conversion Tool (SCT).
- Jika New Project Wizard tidak mulai otomatis, buka File > New Project Wizard.
- Masukkan detail berikut:
- Project Name: AWS Schema Conversion Tool Source DB to Aurora MySQL
- Location:
C:\Users\Administrator\AWS Schema Conversion Tool - Database Type: Pilih SQL Database
- Source Engine: Oracle
- Migration Type: Pilih I want to switch engines and optimize for the cloud
- Klik Next.
Langkah 2: Terhubung ke database sumber
- Isi Konfigurasi Database Sumber:
- Connection Name: Oracle Source
- Type: SID
- Server Name:
<SourceOracleEndpoint>(Temukan di Output CloudFormation atau RDS Console) - Server Port: 1521
- Oracle SID: ORACLEDB
- User Name: dbadmin
- Password: Ambil dari tab Output CloudFormation
- Use SSL: Tidak dicentang
- Store Password: Dicentang
- Oracle Driver Path:
C:\Users\Administrator\Desktop\DMS Workshop\JDBC\ojdbc11.jar
- Klik Test Connection. Jika berhasil, klik Next.

Gambar 11 Menguji konektivitas database di AWS Schema Conversion Tool.
Langkah 3: Pilih database dan tinjau laporan asesmen
- Pilih database
dms_sample, lalu klik Next. - Abaikan peringatan pemuatan metadata jika muncul.
- Tinjau Database Migration Assessment Report:

Gambar 12 Meninjau hasil asesmen migrasi database.
- Setelah meninjau, klik Next.
Catatan: SCT secara otomatis mengonversi sebagian besar objek dan menandai yang memerlukan intervensi manual. Perhatikan dengan saksama prosedur, paket, dan fungsi, yang mungkin perlu modifikasi.
Langkah 4: Terhubung ke database target
- Isi Konfigurasi Database Target:
- Target Engine: Amazon Aurora (kompatibel MySQL) (ubah dari default)
- Connection Name: Aurora MySQL Target
- Server Name:
<TargetAuroraMySQLEndpoint>(Temukan di Output CloudFormation atau RDS Console) - Server Port: 3306
- User Name: dbadmin
- Password: Ambil dari tab Output CloudFormation
- Use SSL: Tidak dicentang
- Store Password: Dicentang
- MySQL Driver Path:
C:\Users\Administrator\Desktop\DMS Workshop\JDBC\mysql-connector-j-8.3.0.jar - Klik Test Connection. Jika berhasil, klik Finish.
Sekarang setelah Anda membuat Database Migration Project, langkah berikutnya adalah mengonversi skema database sumber ke Amazon Aurora MySQL.
Langkah 5: Mengonversi skema database sumber ke Amazon Aurora MySQL
- Klik View pada menu atas lalu pilih Assessment Report View.
- Pilih
DMS_SAMPLEdi panel kiri untuk menampilkan hierarki database. - Navigasikan ke tab Action Items untuk melihat elemen skema yang tidak dapat dikonversi secara otomatis.
- AWS SCT mengategorikan item sebagai:
- Hijau – Berhasil dikonversi.
- Biru – Memerlukan modifikasi manual sebelum migrasi.
- Anda memiliki dua opsi untuk elemen skema yang tidak dapat dikonversi otomatis:
- Modifikasi skema sumber.
- Edit skrip SQL yang dihasilkan sebelum diterapkan ke database target. Kita akan menyesuaikan satu stored procedure secara manual di AWS SCT agar kompatibel dengan Aurora MySQL.
Langkah 6: Modifikasi kode SQL
- Klik kanan pada database
DMS_SAMPLEdi panel kiri. - Pilih Convert Schema untuk menghasilkan pernyataan Data Definition Language (DDL) database target.
- Saat diminta tentang objek yang ada, klik Yes.

Gambar 13 Mengonversi skema Oracle menggunakan AWS Schema Conversion Tool.
- Klik kanan pada skema
dms_sample_dbo(sumber SQL Server) ataudms_sample(sumber lain) di panel kanan. - Pilih Apply to database.
- Saat diminta, klik Yes untuk mengonfirmasi.
- Kembangkan skema
dms_sample_dboataudms_sampledi panel kanan. - Sekarang Anda akan melihat tabel, view, stored procedure, dan objek lain berhasil dibuat di Aurora MySQL.
Anda telah berhasil mengonversi skema database dan objek ke format yang kompatibel dengan Amazon Aurora MySQL!
Langkah 2: Membuat replication instance
Ikuti langkah berikut untuk membuat DMS Replication Instance:
- Buka console AWS Database Migration Service (DMS) atau cari DMS di bilah pencarian AWS.
- Di menu kiri, klik Replication Instances untuk membuka layar manajemen replication instance.
- Tersedia replication instance yang sudah dikonfigurasi sebelumnya, Anda dapat melewati langkah ini. Namun, jika Anda ingin praktik langsung, lanjutkan membuat instance baru:
- Klik Create replication instance di pojok kanan atas. Lalu, isi detail berikut:
- Name: DMSReplication-dms
- Descriptive Amazon Resource Name (ARN): Biarkan kosong
- Description: (Opsional) Masukkan "Replication server for Database Migration"
- Instance Class: dms.c5.xlarge
- Engine Version: Biarkan nilai default.
- High Availability / Multi-AZ: Pilih Dev or Test workload (Single-AZ)
- Allocated Storage (GB): 50
- VPC: Pilih ID VPC yang menyertakan DMSVpc pada namanya (sesuaikan daftar tarik-turun bila perlu)
- Publicly Accessible: Set ke No (tidak dicentang)
- Advanced -> VPC Security Group(s): Pilih security group default

Gambar 14 Membuat replication instance.
- Masukkan detail yang diperlukan untuk replication instance, lalu klik Create.
Langkah 3: Mengonfigurasi endpoint sumber dan target
Setelah kita memiliki replication instance, langkah berikutnya adalah membuat endpoint sumber dan target untuk migrasi database. Ikuti langkah-langkah berikut untuk mengonfigurasi keduanya.
Buat endpoint sumber
- Buka AWS DMS Console.
- Di menu kiri, klik Endpoints.
- Klik Create endpoint (pojok kanan atas).
- Masukkan detail yang diperlukan untuk endpoint database sumber:
- Endpoint Type: Source endpoint
- Select RDS DB Instance: Centang hanya untuk Oracle (biarkan kosong untuk lainnya)
- RDS Instance: Pilih
<StackName>-SourceOracleDB - Endpoint Identifier: oracle-source (atau gunakan nilai yang sudah terisi)
- Descriptive ARN: Biarkan kosong
- Source Engine: Oracle
- Access to Endpoint Database: Pilih "Provide access information manually"
- Server Name:
<SourceOracleEndpoint>(harus terisi otomatis). - Port: 1521
- SSL Mode: None
- User Name: dbadmin
- Password: Periksa tab Outputs CloudFormation Stack di bawah 2DMSDBSecretP
- SID/Service Name: ORACLEDB
- VPC: Pilih ID VPC dengan DMSVpc dari penyiapan lingkungan
- Replication Instance: Pilih
cfn-DMSReplication,DMSReplication, atau replication instance yang Anda buat (jika sudah siap) - Klik Run Test untuk memverifikasi konektivitas.

Gambar 15 memverifikasi konektivitas.
- Setelah status uji berubah menjadi "Successful", klik Create endpoint.
Buat endpoint target
Ikuti proses yang sama untuk membuat Target Endpoint bagi Database Aurora RDS:
- Klik Create endpoint lagi.
- Masukkan detail berikut:
- Endpoint Type: Target endpoint
- Select RDS DB Instance: Centang kotak untuk semua target database RDS
- RDS Instance: Pilih
<StackName>-AuroraMySQLInstance - Endpoint Identifier:
aurora-mysql-target - Descriptive ARN: Biarkan kosong
- Target Engine: Amazon Aurora MySQL
- Access to Endpoint Database: Pilih "Provide access information manually"
- Server Name:
TargetAuroraMySQLEndpoint(atau harus terisi otomatis). - Port: 3306
- SSL Mode: None
- User Name:
dbadmin - Password: periksa tab Outputs CloudFormation Stack di bawah 2DMSDBSecretP
- VPC: Pilih ID VPC dengan DMSVpc dari penyiapan lingkungan
- Replication Instance: Pilih
cfn-DMSReplication,DMSReplication, atau replication instance yang Anda buat (jika sudah siap) - Klik Run Test untuk memverifikasi konektivitas.
- Setelah status uji berubah menjadi "Successful", klik Create endpoint.
Langkah 4: Menyiapkan tugas migrasi
Menangani batasan foreign key dalam migrasi AWS DMS
AWS DMS tidak mengatur urutan tabel yang dimuat selama full load, yang dapat menimbulkan pelanggaran foreign key jika batasan diaktifkan. Selain itu, trigger pada database target dapat menyebabkan perubahan data yang tidak terduga. Kami juga menghapus batasan foreign key dari database target Aurora MySQL.
- Luncurkan MySQL Workbench 8.0 CE (digunakan sebelumnya untuk penyiapan izin).
- Buka jendela kueri baru.
- Hapus batasan foreign key: AWS SCT tidak otomatis membuat constraint saat migrasi dari Oracle; alat ini hanya membuat indeks. Jalankan skrip SQL berikut untuk menghapus indeks:
DROP INDEX set_seat_idx ON dms_sample.sporting_event_ticket;
DROP INDEX set_ticketholder_idx ON dms_sample.sporting_event_ticket;
DROP INDEX set_sporting_event_idx ON dms_sample.sporting_event_ticket;
- Klik ikon Execute (petir) untuk menjalankan skrip.

Gambar 16 Antarmuka MySQL Workbench menampilkan kueri SQL.
Dengan constraint yang sudah dihapus, database target Aurora MySQL kini siap untuk migrasi data menggunakan AWS DMS!
Membuat tugas migrasi DMS
AWS DMS menggunakan Database Migration Task untuk memindahkan data dari sumber ke database target. Ikuti langkah-langkah berikut untuk membuat dan memantau tugas migrasi.
Langkah 1: Buat tugas migrasi
- Buka AWS DMS Console.
- Klik Database migration tasks di menu sebelah kiri.
- Klik Create task (pojok kanan atas).
Langkah 2: Konfigurasikan pengaturan tugas
- Task Identifier:
source-to-AuroraMySQL-target - Replication Instance:
cfn-dmsreplication - Source Database Endpoint: Pilih database sumber Anda
- Target Database Endpoint:
cfn-auroramysqlinstance - Migration Type: Migrasikan data yang ada dan replikasi perubahan yang sedang berlangsung
- CDC Stop Mode: Jangan gunakan mode penghentian CDC kustom
- Create Recovery Table on Target DB: Tidak dicentang
- Target Table Preparation Mode: Do nothing (bukan bawaan)
- Stop Task After Full Load Completes: Jangan hentikan
- LOB Column Settings / Include LOB Columns in Replication: Limited LOB mode
- Max LOB Size (KB): 32
- Data Validation: Tidak dicentang
- Enable CloudWatch Logs: Dicentang
- Log Context: Tingkat default
- Batch-Optimized Apply: Tidak dicentang
Langkah 3: Konfigurasikan pemetaan tabel
- Perluas bagian Table mappings.
- Pilih Wizard sebagai mode penyuntingan.
- Klik Add new selection rule, lalu masukkan hal berikut:
- Schema:
DMS_SAMPLE% - Table Name:
% - Action: Sertakan

Gambar 17 Konfigurasi Table Mapping.
Langkah 4: Konfigurasikan aturan transformasi
- Perluas bagian Transformation rules.
- Klik Add new transformation rule dan masukkan aturan berikut:
- Rule 1:
- Target: Schema
- Schema Name:
DMS_SAMPLE - Action: Jadikan huruf kecil
- Rule 2:
- Target: Table
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Jadikan huruf kecil
- Rule 3:
- Target: Column
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Jadikan huruf kecil
Langkah 5: Finalisasi dan mulai tugas migrasi
- Hapus centang Turn on premigration assessment (tidak diperlukan untuk tutorial ini).
- Pastikan Migration task startup configuration disetel ke Start automatically on create.
- Klik Create task.
Melakukan Migrasi
Sekarang saatnya melakukan migrasi!
Langkah 1: Memulai migrasi
Tugas akan melalui status berikut:
- Creating → Ready → Starting → Running.
- Klik tombol refresh melingkar untuk memperbarui status.

Gambar 18 Antarmuka tugas migrasi AWS DMS yang menampilkan replikasi yang sedang berlangsung.
Langkah 2: Memantau migrasi
AWS DMS menyediakan metrik CloudWatch untuk memantau kinerja instance replikasi dan tugas migrasi Anda.
Melihat metrik CloudWatch untuk instance replikasi:
- Buka AWS DMS Console.
- Klik Replication Instances di menu sebelah kiri.
- Pilih instance replikasi Anda.
- Arahkan ke tab CloudWatch Metrics untuk melihat data kinerja.

Gambar 19 Grafik Pemanfaatan Sumber Daya Instance AWS DMS.
Melihat metrik CloudWatch untuk tugas migrasi:
- Buka AWS DMS Console.
- Klik Database Migration Tasks di menu sebelah kiri.
- Pilih tugas DMS Anda dari daftar.
- Arahkan ke tab Monitor untuk menganalisis kinerja tugas.

Gambar 20 Metrik Throughput Full Load AWS DMS.
Dengan CloudWatch, Anda dapat melacak metrik kunci seperti latensi, replication lag, dan status tugas.
Langkah 3: Menangani error dan peringatan migrasi
Selama migrasi AWS DMS, error dan peringatan dapat muncul akibat kegagalan koneksi, masalah integritas data, atau salah konfigurasi. Di bawah ini adalah masalah umum beserta langkah pemecahan masalah untuk mengatasinya.
1. Kegagalan koneksi
- Masalah: DMS tidak dapat terhubung ke database sumber atau target.
- Solusi:
- Verifikasi pengaturan VPC, security group, dan ketersediaan subnet.
- Pastikan hostname, port, dan kredensial database yang digunakan sudah benar.
- Uji konektivitas dengan mengklik Test Endpoint Connection di DMS Console.
2. Masalah integritas data
- Masalah: Data hilang atau tidak konsisten antara sumber dan target.
- Solusi:
- Aktifkan validasi CDC untuk memeriksa transaksi yang hilang.
- Bandingkan jumlah baris menggunakan metrik CloudWatch.
- Jalankan kueri validasi checksum pada kedua database untuk memastikan konsistensi data.
3. Kemacetan kinerja
- Masalah: Migrasi lambat atau tertinggal.
- Solusi:
- Aktifkan Parallel Load untuk mempercepat transfer massal.
- Sesuaikan mode LOB (gunakan Full LOB mode jika menangani objek besar).
- Pantau metrik CloudWatch untuk CPU, memori, dan replication lag.
4. Batasan dan trigger pada database target
- Masalah: Pelanggaran foreign key atau modifikasi data yang tidak terduga.
- Solusi:
- Nonaktifkan batasan foreign key sebelum migrasi.
- Hapus sementara trigger pada database target untuk menghindari konflik.
5. Replikasi CDC berhenti tiba-tiba
- Masalah: Tugas berhenti sebelum menerapkan perubahan yang sedang berlangsung.
- Solusi:
- Periksa posisi awal CDC di log.
- Pastikan periode retensi log mencukupi (misalnya, 24 jam untuk Oracle LogMiner).
- Mulai ulang tugas CDC dari transaksi terakhir yang diterapkan.
6. Ketidaksesuaian skema antara sumber dan target
- Masalah: Objek tertentu gagal dimigrasikan karena perbedaan skema.
- Solusi:
- Gunakan AWS SCT (Schema Conversion Tool) untuk menilai ketidakcocokan.
- Terapkan modifikasi skema secara manual jika diperlukan.
7. Memeriksa log dan debug error
- Gunakan log AWS CloudWatch:
- Arahkan ke AWS DMS Console > Migration Tasks > View Logs.
- Saring log berdasarkan kata kunci error seperti failure, timeout, atau constraint violation.
- Aktifkan Verbose Logging jika dibutuhkan wawasan yang lebih mendalam.
Langkah Pasca-Migrasi
Sekarang, mari kita lihat beberapa langkah yang dapat Anda lakukan setelah migrasi dengan DMS.
Langkah 1: Memvalidasi integritas data
Setelah AWS DMS menyelesaikan migrasi, sangat penting untuk memvalidasi integritas data dan memastikan database target mencerminkan sumber secara akurat. Berikut teknik validasi utama:
Menggunakan fitur validasi data AWS DMS
- Jika validasi data diaktifkan di AWS DMS, arahkan ke:
- AWS DMS Console > Migration Tasks > Table Statistics
- Periksa apakah ada kegagalan validasi dan jalankan ulang migrasi untuk tabel yang terdampak.

Gambar 21 Ringkasan Validasi AWS DMS.
Langkah 2: Melakukan cutover ke database target
Setelah AWS DMS berhasil memigrasikan semua data dan menyelesaikan replikasi yang sedang berlangsung (CDC), langkah terakhir adalah melakukan cutover ke database target sebagai sistem utama. Ikuti langkah-langkah berikut untuk memastikan transisi yang mulus:
Langkah 1: Verifikasi konsistensi data
Sebelum beralih, pastikan semua data telah direplikasi sepenuhnya:
- Periksa jumlah baris antara sumber dan target.
- Jalankan validasi checksum pada tabel kunci.
- Tinjau metrik CloudWatch untuk replication lag (harus nol sebelum cutover).
Langkah 2: Hentikan perubahan baru pada database sumber
Untuk mencegah inkonsistensi data:
- Nonaktifkan penulisan pada database sumber dengan menyetelnya ke mode read-only.
- Pastikan semua aplikasi yang menulis ke database mengarah ke target baru.
Langkah 3: Hentikan replikasi AWS DMS
- Di AWS DMS Console, buka Database Migration Tasks.
- Pilih tugas migrasi aktif Anda.
- Klik Stop Task untuk menghentikan replikasi yang sedang berlangsung.

Gambar 22 Penghentian Tugas Migrasi AWS DMS.
Langkah 4: Promosikan database target menjadi primer
- Hapus batasan read-only pada database target
- Perbarui connection string aplikasi agar mengarah ke database baru.
Langkah 5: Lakukan validasi dan pengujian akhir
- Uji kueri aplikasi yang kritis untuk memastikan fungsionalitas.
- Validasi bahwa transaksi baru diproses dengan benar di sistem target.
- Jalankan pengujian end-to-end untuk memastikan proses bisnis tetap utuh.
Langkah 6: Nonaktifkan database sumber lama (jika diperlukan)
- Database sumber dapat diarsipkan atau dinonaktifkan jika tidak lagi diperlukan.
- Simpan cadangan sebelum sepenuhnya menghapus sistem sumber.
Langkah 3: Pembersihan dan finalisasi
Langkah 1: Hentikan dan hapus tugas migrasi
- Buka AWS DMS Console.
- Di menu sebelah kiri, klik Database Migration Tasks.
- Pilih tugas migrasi yang Anda buat.
- Klik Actions > Stop dan konfirmasi.
- Setelah status tugas berubah menjadi "Stopped", klik Actions > Delete dan konfirmasi.
Langkah 2: Hapus endpoint DMS
- Di AWS DMS Console, klik Endpoints di menu sebelah kiri.
- Pilih endpoint yang dibuat selama tutorial.
- Klik Actions > Delete dan konfirmasi.

Gambar 23 Penghapusan Endpoint AWS DMS.
Langkah 3: Hapus CloudFormation stack
- Buka AWS CloudFormation Console.
- Pilih CloudFormation Stack yang dibuat selama tutorial.
- Klik Delete (pojok kanan atas).

Gambar 24 Mengonfirmasi Penghapusan Stack di AWS.
- Konfirmasikan penghapusan—CloudFormation akan secara otomatis menghapus semua sumber daya terkait (dapat memakan waktu hingga 15 menit).
- Pantau konsol CloudFormation untuk memastikan stack terhapus sepenuhnya.
Fitur Lanjutan AWS DMS
Sekarang, mari kita lihat beberapa skenario yang lebih kompleks yang dapat Anda selesaikan dengan AWS DMS.
Transformasi data selama migrasi
AWS DMS memungkinkan transformasi data selama migrasi dengan mengizinkan modifikasi seperti mengubah tipe data kolom, mengganti nama tabel dan kolom, serta memfilter data. Transformasi ini membantu menyelaraskan skema sumber dengan struktur database target. Dengan menggunakan aturan transformasi di bagian Table Mappings, Anda dapat menerapkan perubahan ini secara dinamis tanpa mengubah database sumber.
Untuk langkah-langkah terperinci, lihat posting blog tentang transformasi konten kolom.
Menggunakan AWS DMS dengan S3 sebagai target
AWS DMS dapat memigrasikan data ke Amazon S3, memungkinkan penyimpanan berbiaya efektif untuk analitik, machine learning, atau pemrosesan lanjutan menggunakan layanan seperti AWS Glue, Athena, atau Redshift.
Ikuti langkah-langkah berikut untuk mengonfigurasi Amazon S3 sebagai tujuan target untuk migrasi AWS DMS.
Langkah 1: Buat bucket S3
- Buka Amazon S3 Console.
- Klik Create bucket.
- Atur Bucket Name:
dmstargetbucket-<random 4-digit number> - Pastikan region sesuai dengan sumber daya AWS DMS.
- Biarkan pengaturan lainnya default dan klik Create bucket.
Langkah 2: Buat folder di bucket S3
- Buka bucket yang baru dibuat.
- Klik Create folder.
- Beri nama folder
dmstargetfolder. - Biarkan semua default dan klik Create folder.
Langkah 3: Buat kebijakan AWS IAM untuk akses S3
- Buka IAM Console dan masuk ke Policies.
- Klik Create policy, lalu pilih tab JSON.
- Salin dan tempel kebijakan berikut, ganti
"REPLACE-WITH-YOUR-BUCKET-NAME"dengan nama bucket Anda:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::REPLACE-WITH-YOUR-BUCKET-NAME*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::REPLACE-WITH-YOUR-BUCKET-NAME*"
]
}
]
}
- Klik Review policy.
- Atur Policy Name menjadi
DMS-tutorial-S3-Access-Policy, lalu klik Create policy.
Langkah 4: Pasangkan kebijakan ke peran IAM
- Di IAM Console, masuk ke Roles.
- Cari “dms-vpc” dan pilih
dms-vpc-role. - Klik Add permissions > Attach policies.

Gambar 25 Manajemen Kebijakan AWS IAM.
- Pilih
DMS-LAB-S3-Access-Policydan klik Add permissions.
Langkah 5: Simpan IAM Role ARN
- Pada halaman ringkasan
dms-vpc-role, salin Role ARN. - Simpan untuk digunakan nanti dalam konfigurasi AWS DMS.
Membuat endpoint target S3
Sekarang setelah bucket S3 dikonfigurasi dengan kebijakan dan peran yang sesuai, langkah berikutnya adalah membuat endpoint target di AWS DMS.
- Buka AWS DMS Console.
- Klik Endpoints di menu sebelah kiri.
- Klik Create endpoint (pojok kanan atas).
- Konfigurasikan endpoint tujuan S3.
- Masukkan nilai berikut:
- Endpoint Type: Target endpoint
- Endpoint Identifier: S3-target
- Descriptive ARN: Biarkan kosong
- Target Engine: Amazon S3
- Server Name:
<ARN of the dms-vpc-role> - Bucket Name:
<Your S3 Bucket Name> - Bucket Folder:
dmstargetfolder - Klik Run Test untuk memverifikasi koneksi.
- Setelah uji menampilkan "Successful", klik Create endpoint.
Membuat tugas migrasi DMS
Langkah 1: Buat tugas migrasi
- Buka AWS DMS Console.
- Klik Database migration tasks di menu sebelah kiri.
- Klik Create task (pojok kanan atas).
Langkah 2: Konfigurasikan pengaturan tugas
- Task Identifier:
source-to-AuroraMySQL-target - Replication Instance:
cfn-dmsreplication - Source Database Endpoint: Pilih database sumber Anda
- Target Database Endpoint:
cfn-auroramysqlinstance - Migration Type: Migrasikan data yang ada dan replikasi perubahan yang sedang berlangsung
- CDC Stop Mode: Jangan gunakan mode penghentian CDC kustom
- Create Recovery Table on Target DB: Tidak dicentang
- Target Table Preparation Mode: Do nothing (bukan bawaan)
- Stop Task After Full Load Completes: Jangan hentikan
- LOB Column Settings / Include LOB Columns in Replication: Limited LOB mode
- Max LOB Size (KB): 32
- Data Validation: Tidak dicentang
- Enable CloudWatch Logs: Dicentang
- Log Context: Tingkat default
- Batch-Optimized Apply: Tidak dicentang
Langkah 3: Konfigurasikan pemetaan tabel
- Perluas bagian Table mappings.
- Pilih Wizard sebagai mode penyuntingan.
- Klik Add new selection rule, lalu masukkan hal berikut:
- Schema:
DMS_SAMPLE% - Table Name:
% - Action: Sertakan

Gambar 26 Konfigurasi Table Mapping
Langkah 4: Konfigurasikan aturan transformasi
- Perluas bagian Transformation rules.
- Klik Add new transformation rule dan masukkan aturan berikut:
- Rule 1:
- Target: Schema
- Schema Name:
DMS_SAMPLE - Action: Jadikan huruf kecil
- Rule 2:
- Target: Table
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Jadikan huruf kecil
- Rule 3:
- Target: Column
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Jadikan huruf kecil
Langkah 5: Finalisasi dan mulai tugas migrasi
- Hapus centang Turn on premigration assessment (tidak diperlukan untuk workshop ini).
- Pastikan Migration task startup configuration disetel ke Start automatically on create.
- Klik Create task.
Langkah 6: Pantau progres migrasi
- Klik pada tugas migrasi (
source-to-s3-target). - Gulir ke Table Statistics untuk melihat jumlah baris yang dipindahkan.
- Jika status berubah menjadi merah (error), klik View Logs untuk memecahkan masalah menggunakan log CloudWatch.
Praktik Terbaik untuk AWS DMS
Sekarang, mari kita lihat beberapa praktik terbaik yang diterapkan saat melakukan migrasi data menggunakan AWS DMS.
Optimalkan kinerja
Untuk memastikan migrasi database yang efisien dan cepat menggunakan AWS DMS, pertimbangkan optimasi berikut:
- Pilih ukuran instance replikasi yang tepat
- Gunakan tipe instance yang lebih besar (misalnya,
dms.r5.largeatau lebih tinggi) untuk migrasi ber-throughput tinggi. - Pantau CPU, memori, dan IOPS menggunakan CloudWatch dan skala instance jika diperlukan.
- Gunakan beberapa task migrasi untuk pemrosesan paralel
- Pisahkan migrasi besar menjadi beberapa task berdasarkan grup tabel untuk mengurangi waktu pemuatan.
- Migrasikan tabel besar secara terpisah dari tabel kecil untuk menyeimbangkan kinerja.
- Optimalkan koneksi jaringan
- Tempatkan instance replikasi DMS di VPC dan Availability Zone yang sama dengan database sumber dan target.
- Gunakan endpoint VPC atau Direct Connect untuk stabilitas jaringan yang lebih baik dan latensi yang lebih rendah.
- Sesuaikan pengaturan LOB
- Untuk objek besar (LOB), gunakan Limited LOB Mode dengan ukuran LOB yang sesuai untuk meminimalkan dampak kinerja.
- Aktifkan pemuatan paralel dan batch apply
- Aktifkan Batch Optimized Apply untuk penyisipan data yang lebih cepat ke database target.
- Gunakan Parallel Load untuk migrasi skala besar agar dapat memproses beberapa tabel secara bersamaan.
Rencanakan waktu henti
Meminimalkan waktu henti selama migrasi database sangat penting untuk menjaga kelangsungan bisnis. Berikut beberapa strategi kunci untuk memastikan cutover yang mulus:
- Migrasikan saat periode lalu lintas rendah
- Jadwalkan cutover pada jam di luar puncak untuk meminimalkan dampak pada pengguna.
- Beri tahu para pemangku kepentingan terlebih dahulu agar siap menghadapi gangguan sementara.
- Gunakan replikasi berkelanjutan (CDC)
- Aktifkan Change Data Capture (CDC) untuk menjaga sinkronisasi database target dengan sumber.
- Ini memungkinkan aplikasi beralih dengan kehilangan data minimal.
- Lakukan uji cutover
- Jalankan migrasi percobaan di lingkungan staging sebelum cutover final.
- Validasi kinerja dan selesaikan inkonsistensi skema atau data apa pun.
- Kurangi dampak pergantian DNS
- Siapkan koneksi database berbasis DNS sehingga peralihan ke target baru berjalan mulus.
- Perbarui connection string aplikasi hanya setelah migrasi terverifikasi.
- Jadikan sumber read-only sebelum cutover final
- Cegah transaksi baru pada sumber dengan mengatur ke mode read-only.
- Pastikan semua perubahan yang tertunda telah direplikasi sebelum mengarahkan aplikasi ke target.
Amankan data Anda
Keamanan data selama migrasi sangat penting untuk melindungi informasi sensitif dan memenuhi persyaratan kepatuhan.
- Enkripsi data saat transit dengan SSL/TLS
- Aktifkan SSL/TLS untuk koneksi database sumber dan target guna mencegah penyadapan.
- Gunakan autentikasi berbasis sertifikat untuk keamanan tambahan.
- Batasi akses dengan peran dan kebijakan AWS IAM
- Tetapkan peran IAM dengan hak minimum yang diperlukan ke instance replikasi DMS dan endpoint.
- Gunakan kebijakan IAM untuk membatasi akses ke database tertentu, bucket S3, dan log CloudWatch.
- Aktifkan enkripsi at-rest
- Gunakan AWS Key Management Service (KMS) untuk mengenkripsi data Amazon S3 atau RDS.
- Pastikan database target mendukung enkripsi untuk penyimpanan yang aman.
Pemecahan Masalah AWS DMS
DMS adalah alat yang kuat, tetapi bukan tanpa masalah. Berikut cara memecahkan masalah yang paling umum.
Error umum dan solusinya
Migrasi AWS DMS dapat mengalami error terkait konektivitas database, ketidaksesuaian skema, dan kegagalan replikasi.
1. Error koneksi database
- Error: "Failed to connect to database endpoint."
- Solusi:
- Verifikasi pengaturan VPC, security group, dan subnet.
- Periksa apakah database dapat diakses dari instance replikasi DMS.
- Pastikan host, port, dan kredensial yang benar pada pengaturan endpoint DMS.
- Uji konektivitas menggunakan opsi "Test Endpoint Connection" di konsol DMS.
2. Masalah kompatibilitas tipe data
- Error: "Unsupported data type conversion between source and target."
- Solusi:
- Gunakan AWS Schema Conversion Tool (SCT) untuk mengidentifikasi tipe data yang tidak kompatibel.
- Ubah tipe data kolom secara manual di skema target jika diperlukan.
- Aktifkan aturan transformasi di DMS untuk mengonversi tipe yang tidak kompatibel secara otomatis.
3. Pelanggaran foreign key constraint
- Error: "Foreign key constraint violation in target database."
- Solusi:
- Nonaktifkan foreign key constraint sebelum migrasi dan aktifkan kembali setelah selesai.
- Gunakan "Truncate before load" jika memuat ulang data ke tabel yang sudah ada.
4. Kinerja migrasi lambat
- Error: "Replication lag increasing significantly."
- Solusi:
- Gunakan instance replikasi DMS yang lebih besar (
dms.r5.largeatau lebih tinggi). - Aktifkan Parallel Load dan Batch Optimized Apply untuk pemasukan data yang lebih cepat.
- Optimalkan koneksi jaringan dengan menempatkan DMS, sumber, dan target dalam VPC yang sama.
5. Replikasi berkelanjutan (CDC) berhenti secara tak terduga
- Error: "CDC task stopped due to missing log files."
- Solusi:
- Pastikan retensi log yang memadai pada database sumber (misalnya, 24 jam untuk Oracle LogMiner).
- Mulai ulang task CDC dari transaksi terakhir yang diterapkan.
Menggunakan log DMS untuk pemecahan masalah
AWS DMS menyediakan log task dan integrasi CloudWatch untuk membantu mengidentifikasi dan menyelesaikan masalah migrasi secara efisien.
1. Mengakses log task DMS
- Di AWS DMS Console, buka Database Migration Tasks.
- Pilih task migrasi yang mengalami masalah.
- Klik Monitoring untuk mengakses pesan error dan detail eksekusi.

Gambar 27 Log AWS CloudWatch dengan Error Migrasi
2. Menggunakan AWS CloudWatch untuk debugging mendetail
- Arahkan ke AWS CloudWatch Console > Logs.
- Cari log group instance replikasi DMS (
/aws/dms/replication-instance-ID). - Aktifkan verbose logging di pengaturan task DMS untuk menangkap detail lebih banyak.

Gambar 28 Ikhtisar Peristiwa AWS CloudWatch
Kesimpulan
AWS Database Migration Service (DMS) memudahkan pemindahan data di berbagai mesin database dengan waktu henti minimal. Dengan mengikuti praktik terbaik—seperti mengoptimalkan kinerja, mengamankan data, mengelola perubahan skema, dan memecahkan masalah umum—Anda dapat memastikan proses migrasi yang lancar.
Sekarang setelah Anda menyelesaikan migrasi AWS DMS end-to-end, Anda siap memanfaatkan sepenuhnya database berbasis cloud baru Anda untuk skalabilitas yang lebih baik, analitik, dan optimalisasi cloud-native. Jika Anda ingin memperdalam pengetahuan AWS, jelajahi jalur Sertifikasi AWS Cloud Practitioner atau mulai dengan AWS Concepts dan AWS Security & Cost Management.
Rahul Sharma adalah AWS Ambassador, Arsitek DevOps, dan blogger teknis yang mengkhususkan diri pada komputasi awan, praktik DevOps, serta teknologi open-source. Dengan keahlian di AWS, Kubernetes, dan Terraform, ia menyederhanakan konsep yang kompleks bagi pelajar dan profesional melalui artikel dan tutorial yang menarik. Rahul bersemangat memecahkan tantangan DevOps dan berbagi wawasan untuk memberdayakan komunitas teknologi.


Seiring organisasi memodernisasi infrastruktur melalui teknologi cloud, memigrasikan database ke AWS menjadi hal yang penting. AWS menawarkan alat migrasi andal bernama AWS Database Migration Service (DMS), yang memungkinkan migrasi berisiko rendah dan nyaris instan dari database lokal (on-premises), database cloud yang dikelola mandiri, serta layanan AWS lainnya.
Dalam tutorial ini, Anda akan mempelajari cara menyiapkan dan menggunakan AWS DMS untuk kebutuhan migrasi database. Anda akan mempelajari:
Mari kita mulai!
Apa itu AWS DMS?
AWS Database Migration Service (DMS) memudahkan migrasi database ke AWS tanpa waktu henti. Layanan ini mendukung migrasi homogen dan heterogen, seperti MySQL ke MySQL atau Oracle ke PostgreSQL, sehingga menjadi alat penting bagi organisasi yang beralih ke cloud.
Dengan AWS DMS, Anda dapat:
AWS DMS banyak digunakan untuk:
Fitur AWS DMS
AWS DMS menyediakan beberapa fitur penting untuk mendukung migrasi database:
1. Migrasi homogen dan heterogen
2. Waktu henti minimal dengan Change Data Capture (CDC)
3. Dikelola sepenuhnya dan dapat diskalakan
4. Kompatibilitas database yang luas
5. Konversi skema dengan AWS SCT
6. Pemantauan dan pencatatan berkelanjutan
7. Keamanan dan kepatuhan