AWS DMS instellen
We gaan praktisch aan de slag en beginnen met het instellen van AWS DMS. In deze tutorial leer je hoe je een Oracle-database migreert naar Amazon Aurora (MySQL), inclusief schema-conversie, datareplicatie en best practices voor een soepele overgang.
Stap 1: Vereisten voor het gebruik van AWS DMS
Voordat je databases migreert, moet je essentiële AWS-resources inrichten. Met AWS CloudFormation kun je de provisioning automatiseren zodat je je kunt richten op migratietaken. De template die we gebruiken, implementeert:
- Een AWS VPC met Public Subnets voor networking.
- Een AWS DMS Replication Instance om de datamigratie uit te voeren.
- Een Amazon RDS Instance als doeldatabase.
- Een Amazon EC2 Instance voor migratietools zoals AWS Schema Conversion Tool (SCT) of een bron-databasesimulatie.
Inloggen op de AWS-console
- Log in op de AWS Management Console met je inloggegevens.
- Klik op het dropdownmenu rechtsboven in het scherm en selecteer je regio. Voor deze tutorial kies ik de regio N. Virginia.

Figuur 1 Selecteren van de AWS-regio in de AWS Management Console.
- Ga naar de EC2-console en navigeer naar de sectie Key Pair. Zorg dat je in dezelfde AWS-regio zit als in de vorige stap.
- Klik op Create Key Pair en noem hem "DMS".
Figuur 2 Een key pair maken voor veilige toegang in AWS EC2.
- Klik op Create en je browser downloadt
DMS.pem. - Sla dit bestand veilig op—je hebt het later in de tutorial nodig.
De omgeving configureren
In deze stap gebruik je een CloudFormation (CFN)-template om de benodigde AWS-infrastructuur voor databasmigratie op te zetten. Dit automatiseert de provisioning, zodat je je kunt richten op de migratietaken.
- Open de AWS CloudFormation-console en klik op Create Stack.
- Selecteer Choose an existing template en kies vervolgens Upload a template file.

Figuur 3 Een CloudFormation-template uploaden om een nieuwe stack te maken.
- Download het bestand van Github Gist en klik op Choose file.
- Upload het bestand
DMS.yamlen klik op Next. - Vul de vereiste parameters in zoals aangegeven en klik vervolgens op Next.

Figuur 4 Parameters configureren voor een AWS DMS CloudFormation-stack
Let op: Je kunt het instance type aanpassen aan je behoeften of het laten staan zoals het is.
- Laat op de pagina Stack Options de standaardinstellingen staan en klik op Next.
- Controleer de configuratie en klik op Create stack.
- Je wordt doorgestuurd naar de CloudFormation-console, waar de status "CREATE_IN_PROGRESS" zal tonen. Wacht tot dit verandert in "CREATE_COMPLETE".

Figuur 5 De status van resourcecreatie bekijken in AWS CloudFormation
- Ga na voltooiing naar het tabblad Outputs en noteer de waarden—je hebt ze nodig voor de rest van de tutorial.
Bron- en doeldatabase voorbereiden voor migratie
We beginnen met de configuratie van de bron-database. Volg deze stappen om via Remote Desktop Protocol (RDP) toegang te krijgen tot de EC2-instance.
Stap 1: RDP-toegang instellen
- Voor Mac-gebruikers: download Microsoft Remote Desktop uit de App Store.
- Voor pc-gebruikers: gebruik Remote Desktop om verbinding te maken met de pc die je hebt ingesteld.
Stap 2: Security Group-regels aanpassen voor RDP-toegang
- Open de AWS EC2-console.
- Klik in het menu aan de linkerkant op Security Groups (mogelijk moet je naar beneden scrollen).
- Selecteer de security group die eindigt op "InstanceSecurityGroup" door het vakje aan te vinken.
- Klik op Actions > Edit Inbound Rules.
- Zoek de RDP-regel (poort 3389), klik op Source en kies My IP voor betere beveiliging.
- Als je een corporate VPN of een complex netwerk gebruikt, moet je dit later mogelijk aanpassen naar "Anywhere (0.0.0.0/0)".

Figuur 6 Inkomende beveiligingsregels bewerken in AWS.
- Klik op Save rules.
Stap 3: RDP-inloggegevens ophalen
- Klik in de AWS EC2-console in het linkermenu op Instances.
- Selecteer de instance met de naam "<StackName>-EC2Instance".
- Klik op Actions > Connect.
- Ga naar de sectie RDP Client en klik op Get password.
- Klik op Browse en upload het Key Pair-bestand dat je eerder hebt gedownload.
- Klik op Decrypt password.

Figuur 7 Het Windows-wachtwoord voor een AWS EC2-instance ophalen.
- Kopieer het gegenereerde wachtwoord naar je notities voor later gebruik.
Stap 4: Verbinden met de EC2-instance
- Klik op Download Remote Desktop File om het RDP-bestand op te slaan.
- Open de RDP-client (Microsoft Remote Desktop op Mac).
- Gebruik het ontsleutelde wachtwoord om in te loggen.
- Als daarom wordt gevraagd, klik op Done om de setup te voltooien.
Stap 5: Verbinden met Oracle SQL Developer
Zodra je verbonden bent met de EC2-instance, volg je deze stappen om een verbinding te maken met de Oracle-database via Oracle SQL Developer.
Stap 1: Oracle SQL Developer openen
- Zoek Oracle SQL Developer in de taakbalk en open het.
- Let op: je pictogrammen kunnen in een andere volgorde staan dan in de referentieafbeeldingen.

Figuur 8 Een nieuwe databaseverbinding configureren in Oracle SQL Developer.
Stap 2: Een nieuwe databaseverbinding maken
- Klik op het plus (+)-teken in het menu links om een New Database Connection te maken.
- Voer het volgende in:
- Connection Name: Source Oracle
- Username: dbadmin
- Password: Controleer op het tabblad Outputs van de CloudFormation-stack onder DMSDBSecretP
- Save Password: vink dit aan.
- Hostname: zoek de Source Oracle Endpoint in het tabblad Output van CloudFormation. Of ga naar de RDS-console, selecteer je Oracle-broninstance en gebruik de opgegeven endpoint.
- Port: 1521
- SID: ORACLEDB
Stap 3: Testen en verbinden
- Klik op Test om de verbinding te verifiëren.
- Zodra de teststatus "Successful" aangeeft, klik je op Connect.
Stap 4: Oracle configureren voor AWS DMS-migratie
Voordat je Oracle als bron voor AWS DMS gebruikt, zorg je dat de volgende configuraties aanwezig zijn:
1. Maak een DMS-gebruiker met de vereiste rechten
AWS DMS vereist een gebruikersaccount (DMS-gebruiker) met lees- en schrijfrechten op de Oracle-database.
2. ARCHIVELOG MODE inschakelen
- ARCHIVELOG MODE moet zijn ingeschakeld om transactie-loginformatie aan LogMiner te leveren.
- AWS DMS gebruikt LogMiner om wijzigingsdata uit archieflogs op te halen.
- Zorg dat archieflogs minimaal 24 uur worden bewaard om dataverlies tijdens de migratie te voorkomen.
3. Supplemental logging inschakelen
- Supplemental logging op databaseniveau:
- Dit zorgt ervoor dat LogMiner alle vereiste details vastlegt voor diverse tabelstructuren (bijv. clustered en index-organized tables).
- Supplemental logging op tabelniveau:
- Dit moet worden ingeschakeld voor elke tabel die je wilt migreren.
4. Vereiste rechten toekennen aan de AWS DMS-gebruiker
- Klik in Oracle SQL Developer op het pictogram SQL Worksheet.
- Maak verbinding met de Source Oracle-database.
- Kopieer, plak en voer de statements uit van de Github Gist om de AWS DMS-gebruiker de benodigde rechten te geven.

Figuur 9 SQL-scripts uitvoeren in Oracle SQL Developer.
Stap 6: Amazon Aurora (MySQL) als doel configureren
Nadat je de initiële setup en de bron-database hebt geselecteerd, kun je een voorbeeld-database migreren. Deze gids beschrijft hoe je AWS Schema Conversion Tool (AWS SCT) en AWS Database Migration Service (AWS DMS) gebruikt om de databasestructuur te transformeren en data naar Amazon Aurora (MySQL) over te zetten.
Daarnaast fungeert AWS DMS als hulpmiddel voor continue replicatie, wat betekent dat alle wijzigingen in de bron-database realtime worden gerepliceerd naar de doeldatabase.
- Verbind opnieuw met de EC2-instance via RDP.
- Open de map DMS Workshop op het bureaublad en dubbelklik op AWS Schema Conversion Tool Download om de nieuwste versie te installeren.
- Pak AWS SCT uit en installeer het via de installatiewizard (neem de standaardinstellingen en klik op Finish).
- Start AWS SCT vanuit het Startmenu of via het oranje SCT-pictogram op het bureaublad en accepteer de voorwaarden.
- Open MySQL Workbench 8.0 CE en maak een nieuwe databaseverbinding voor de doel-Aurora MySQL met:
- Connection Name: Target Aurora RDS (MySQL)
- Host Name:
<TargetAuroraMySQLEndpoint>(te vinden in CloudFormation Outputs of de RDS-console) - Port: 3306
- Username: dbadmin
- Password: opvragen via het tabblad CloudFormation Output
- Default Schema: leeg laten

Figuur 10 Een MySQL Workbench-verbinding opzetten met Amazon Aurora.
- Klik op Test Connection, bevestig dat het gelukt is en maak vervolgens verbinding met Aurora MySQL.
- Voer de SQL-statements voor permissies uit uit GitHub Gist in MySQL Workbench (klik op het bliksemschichtpictogram om uit te voeren).
Nu je AWS Schema Conversion Tool hebt geïnstalleerd, is de volgende stap het aanmaken van een Database Migration Project met deze tool.
Stap 1: Een nieuw project starten
- Open AWS Schema Conversion Tool (SCT).
- Als de New Project Wizard niet automatisch start, ga je naar File > New Project Wizard.
- Voer het volgende in:
- Project Name: AWS Schema Conversion Tool Source DB to Aurora MySQL
- Location:
C:\Users\Administrator\AWS Schema Conversion Tool - Database Type: Select SQL Database
- Source Engine: Oracle
- Migration Type: Select I want to switch engines and optimize for the cloud
- Klik op Next.
Stap 2: Verbinden met de bron-database
- Vul de Source Database Configuration in:
- Connection Name: Oracle Source
- Type: SID
- Server Name:
<SourceOracleEndpoint>(te vinden in CloudFormation Outputs of de RDS-console) - Server Port: 1521
- Oracle SID: ORACLEDB
- User Name: dbadmin
- Password: opvragen via het tabblad CloudFormation Output
- Use SSL: uitgevinkt
- Store Password: aangevinkt
- Oracle Driver Path:
C:\Users\Administrator\Desktop\DMS Workshop\JDBC\ojdbc11.jar
- Klik op Test Connection. Als dit lukt, klik op Next.

Figuur 11 Databaseconnectiviteit testen in AWS Schema Conversion Tool.
Stap 3: De database selecteren en het assessmentrapport bekijken
- Selecteer de database
dms_sampleen klik vervolgens op Next. - Negeer waarschuwingen over het laden van metadata als die verschijnen.
- Bekijk het Database Migration Assessment Report:

Figuur 12 Resultaten van de database-migratiebeoordeling bekijken.
- Klik na het bekijken op Next.
Let op: SCT converteert de meeste objecten automatisch en markeert objecten die handmatige actie vereisen. Let extra op procedures, packages en functies—die moeten mogelijk worden aangepast.
Stap 4: Verbinden met de doeldatabase
- Vul de Target Database Configuration in:
- Target Engine: Amazon Aurora (MySQL compatible) (wijzig t.o.v. de standaard)
- Connection Name: Aurora MySQL Target
- Server Name:
<TargetAuroraMySQLEndpoint>(te vinden in CloudFormation Outputs of de RDS-console) - Server Port: 3306
- User Name: dbadmin
- Password: opvragen via het tabblad CloudFormation Output
- Use SSL: uitgevinkt
- Store Password: aangevinkt
- MySQL Driver Path:
C:\Users\Administrator\Desktop\DMS Workshop\JDBC\mysql-connector-j-8.3.0.jar - Klik op Test Connection. Als dit lukt, klik op Finish.
Nu je een Database Migration Project hebt gemaakt, is de volgende stap het bron-databaseschema converteren naar Amazon Aurora MySQL.
Stap 5: Het bron-databaseschema converteren naar Amazon Aurora MySQL
- Klik op View in het bovenste menu en selecteer Assessment Report View.
- Selecteer
DMS_SAMPLEin het linkerpaneel om de databasehiërarchie te tonen. - Ga naar het tabblad Action Items om schema-elementen te zien die niet automatisch konden worden geconverteerd.
- AWS SCT categoriseert items als:
- Groen – succesvol geconverteerd.
- Blauw – vereist handmatige aanpassing vóór migratie.
- Je hebt twee opties voor schema-elementen die niet automatisch kunnen worden geconverteerd:
- Het bron-schema aanpassen.
- De gegenereerde SQL-scripts bewerken voordat je ze toepast op de doeldatabase. We passen handmatig één stored procedure aan in AWS SCT zodat deze compatibel is met Aurora MySQL.
Stap 6: SQL-code wijzigen
- Klik met de rechtermuisknop op de
DMS_SAMPLE-database in het linkerpaneel. - Selecteer Convert Schema om de Data Definition Language (DDL)-statements voor de doeldatabase te genereren.
- Wanneer gevraagd naar bestaande objecten, klik op Yes.

Figuur 13 Een Oracle-schema converteren met AWS Schema Conversion Tool.
- Klik met de rechtermuisknop op het schema
dms_sample_dbo(SQL Server-bron) ofdms_sample(andere bronnen) in het rechterpaneel. - Selecteer Apply to database.
- Wanneer daarom wordt gevraagd, klik op Yes om te bevestigen.
- Vouw het schema
dms_sample_dboofdms_sampleuit in het rechterpaneel. - Je ziet nu tabellen, views, stored procedures en andere objecten die succesvol zijn aangemaakt in Aurora MySQL.
Je hebt het databaseschema en de objecten succesvol geconverteerd naar een format dat compatibel is met Amazon Aurora MySQL!
Stap 2: Een replicatie-instance maken
Volg deze stappen om een DMS Replication Instance te maken:
- Open de AWS Database Migration Service (DMS)-console of zoek naar DMS in de AWS-zoekbalk.
- Klik in het menu links op Replication Instances om het beheerscherm voor replicatie-instances te openen.
- Er is een vooraf geconfigureerde replicatie-instance beschikbaar; je kunt deze stap overslaan. Wil je toch praktijkervaring, ga dan door met het aanmaken van een nieuwe instance:
- Klik rechtsboven op Create replication instance. Vul vervolgens het volgende in:
- Name: DMSReplication-dms
- Descriptive Amazon Resource Name (ARN): leeg laten
- Description: (optioneel) "Replication server for Database Migration"
- Instance Class: dms.c5.xlarge
- Engine Version: laat de standaardwaarde staan.
- High Availability / Multi-AZ: Select Dev or Test workload (Single-AZ)
- Allocated Storage (GB): 50
- VPC: selecteer de VPC-ID waarin DMSVpc voorkomt (pas zo nodig de dropdown aan)
- Publicly Accessible: op No (uitgevinkt)
- Advanced -> VPC Security Group(s): selecteer de default security group

Figuur 14 Een replicatie-instance aanmaken.
- Voer de vereiste gegevens in voor de replicatie-instance en klik vervolgens op Create.
Stap 3: Bron- en doeleindpunten configureren
Nu we de replicatie-instance hebben, is de volgende stap het aanmaken van bron- en doeleindpunten voor de databasmigratie. Volg deze stappen om beide eindpunten te configureren.
Het bron-eindpunt maken
- Open de AWS DMS-console.
- Klik in het menu links op Endpoints.
- Klik op Create endpoint (rechtsboven).
- Voer de vereiste gegevens in voor het bron-database-eindpunt:
- Endpoint Type: Source endpoint
- Select RDS DB Instance: alleen aanvinken voor Oracle (laat leeg voor anderen)
- RDS Instance: selecteer
<StackName>-SourceOracleDB - Endpoint Identifier: oracle-source (of neem de vooraf ingevulde waarde)
- Descriptive ARN: leeg laten
- Source Engine: Oracle
- Access to Endpoint Database: Select "Provide access information manually"
- Server Name:
<SourceOracleEndpoint>(zou automatisch moeten invullen). - Port: 1521
- SSL Mode: None
- User Name: dbadmin
- Password: Controleer het tabblad Outputs van de CloudFormation-stack onder 2DMSDBSecretP
- SID/Service Name: ORACLEDB
- VPC: selecteer de VPC-ID met DMSVpc uit de omgevingssetup
- Replication Instance: kies
cfn-DMSReplication,DMSReplicationof de instance die je hebt aangemaakt (als deze gereed is) - Klik op Run Test om de connectiviteit te verifiëren.

Figuur 15 connectiviteit verifiëren.
- Zodra de teststatus "Successful" aangeeft, klik je op Create endpoint.
Het doel-eindpunt maken
Volg hetzelfde proces om het Target Endpoint voor de Aurora RDS-database te maken:
- Klik opnieuw op Create endpoint.
- Voer het volgende in:
- Endpoint Type: Target endpoint
- Select RDS DB Instance: vink het vakje aan voor alle RDS-doeldatabases
- RDS Instance: kies
<StackName>-AuroraMySQLInstance - Endpoint Identifier:
aurora-mysql-target - Descriptive ARN: leeg laten
- Target Engine: Amazon Aurora MySQL
- Access to Endpoint Database: Select "Provide access information manually"
- Server Name:
TargetAuroraMySQLEndpoint(of dit wordt automatisch ingevuld). - Port: 3306
- SSL Mode: None
- User Name:
dbadmin - Password: controleer het tabblad Outputs van de CloudFormation-stack onder 2DMSDBSecretP
- VPC: selecteer de VPC-ID met DMSVpc uit de omgevingssetup
- Replication Instance: kies
cfn-DMSReplication,DMSReplicationof de instance die je hebt aangemaakt (als deze gereed is) - Klik op Run Test om de connectiviteit te verifiëren.
- Zodra de teststatus "Successful" aangeeft, klik je op Create endpoint.
Stap 4: De migratietaak instellen
Omgaan met foreign key-constraints in AWS DMS-migratie
AWS DMS legt geen volgorde op voor de tabellen die tijdens de volledige lading worden geladen, wat kan leiden tot foreign key-schendingen als constraints zijn ingeschakeld. Ook kunnen triggers op de doeldatabase leiden tot onverwachte wijzigingen in de data. We hebben daarom foreign key-constraints verwijderd uit de doel- Aurora MySQL-database.
- Start MySQL Workbench 8.0 CE (eerder gebruikt voor het instellen van permissies).
- Open een nieuw queryvenster.
- Verwijder foreign key-constraints: AWS SCT maakt bij migratie vanuit Oracle niet automatisch constraints aan; het maakt alleen indexen. Voer het volgende SQL-script uit om de indexen te verwijderen:
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 op het Execute-pictogram (bliksem) om het script uit te voeren.

Figuur 16 MySQL Workbench-interface met SQL-queries.
Met de constraints verwijderd, is de doel-Aurora MySQL-database nu klaar voor datamigratie met AWS DMS!
Maak een DMS-migratietaak
AWS DMS gebruikt Database Migration Tasks om data van de bron naar de doeldatabase te verplaatsen. Volg deze stappen om de migratietaak te maken en te monitoren.
Stap 1: Een migratietaak maken
- Open de AWS DMS-console.
- Klik in het menu links op Database migration tasks.
- Klik op Create task (rechtsboven).
Stap 2: Taakinstellingen configureren
- Task Identifier:
source-to-AuroraMySQL-target - Replication Instance:
cfn-dmsreplication - Source Database Endpoint: Selecteer je brondatabase
- Target Database Endpoint:
cfn-auroramysqlinstance - Migration Type: Migreer bestaande data en repliceer doorlopende wijzigingen
- CDC Stop Mode: Don’t use custom CDC stop mode
- Create Recovery Table on Target DB: Unchecked
- Target Table Preparation Mode: Do nothing (niet de standaard)
- Stop Task After Full Load Completes: Don’t stop
- LOB Column Settings / Include LOB Columns in Replication: Limited LOB mode
- Max LOB Size (KB): 32
- Data Validation: Unchecked
- Enable CloudWatch Logs: Checked
- Log Context: Default levels
- Batch-Optimized Apply: Unchecked
Stap 3: Tabeltoewijzingen configureren
- Klap de sectie Table mappings open.
- Selecteer Wizard als bewerkingsmodus.
- Klik op Add new selection rule en voer het volgende in:
- Schema:
DMS_SAMPLE% - Tabelnaam:
% - Actie: Include

Figuur 17 Configure Table Mapping.
Stap 4: Transformatiesregels configureren
- Klap de sectie Transformation rules open.
- Klik op Add new transformation rule en voer de volgende regels in:
- Regel 1:
- Doel: Schema
- Schemaname:
DMS_SAMPLE - Actie: Make lowercase
- Regel 2:
- Doel: Table
- Schemaname:
DMS_SAMPLE - Tabelnaam:
% - Actie: Make lowercase
- Regel 3:
- Doel: Column
- Schemaname:
DMS_SAMPLE - Tabelnaam:
% - Actie: Make lowercase
Stap 5: Migratietaak afronden en starten
- Vink Turn on premigration assessment uit (niet vereist voor deze tutorial).
- Zorg dat de Migration task startup configuration is ingesteld op Start automatically on create.
- Klik op Create task.
De migratie uitvoeren
Het is eindelijk tijd om onze migratie uit te voeren!
Stap 1: De migratie starten
De taak doorloopt de volgende statussen:
- Creating → Ready → Starting → Running.
- Klik op de ronde vernieuwknop om de status bij te werken.

Figuur 18 AWS DMS-migratietaakinterface met lopende replicatie.
Stap 2: De migratie monitoren
AWS DMS biedt CloudWatch-metrics om de prestaties van je replicatie-instantie en migratietaken te monitoren.
CloudWatch-metrics voor replicatie-instanties bekijken:
- Open de AWS DMS-console.
- Klik op Replication Instances in het menu links.
- Selecteer je replicatie-instantie.
- Ga naar het tabblad CloudWatch Metrics om prestatiegegevens te bekijken.

Figuur 19 AWS DMS Instance Resource Utilization Graphs.
CloudWatch-metrics voor migratietaken bekijken:
- Open de AWS DMS-console.
- Klik op Database Migration Tasks in het menu links.
- Selecteer je DMS-taak in de lijst.
- Ga naar het tabblad Monitor om de taakprestaties te analyseren.

Figuur 20 AWS DMS Full Load Throughput Metrics.
Met CloudWatch kun je belangrijke metrics volgen, zoals latency, replicatielag en taakstatus.
Stap 3: Migratiefouten en waarschuwingen afhandelen
Tijdens een AWS DMS-migratie kunnen fouten en waarschuwingen optreden door verbindingsproblemen, dataconsistentieproblemen of verkeerde configuraties. Hieronder staan veelvoorkomende problemen en stappen voor probleemoplossing.
1. Verbindingsfouten
- Probleem: DMS kan geen verbinding maken met de bron- of doeldatabase.
- Oplossing:
- Controleer VPC-instellingen, Security Groups en beschikbaarheid van Subnets.
- Zorg dat de juiste database-hostnaam, poort en inloggegevens worden gebruikt.
- Test de connectiviteit door in de DMS-console op Test Endpoint Connection te klikken.
2. Dataconsistentieproblemen
- Probleem: Ontbrekende of inconsistente data tussen bron en doel.
- Oplossing:
- Schakel CDC-validatie in om ontbrekende transacties te detecteren.
- Vergelijk rijaantallen met behulp van CloudWatch-metrics.
- Voer checksum-validaties uit op beide databases om dataconsistentie te waarborgen.
3. Prestatieknelpunten
- Probleem: Migratie is traag of loopt achter.
- Oplossing:
- Schakel Parallel Load in om bulkoverdrachten te versnellen.
- Pas de LOB-modus aan (gebruik Full LOB mode bij grote objecten).
- Monitor CloudWatch-metrics voor CPU, geheugen en replicatielag.
4. Doeldatabase-constraints en -triggers
- Probleem: Foreign key-schendingen of onverwachte datamodificaties.
- Oplossing:
- Schakel foreign key-constraints uit vóór de migratie.
- Verwijder triggers tijdelijk op de doeldatabase om conflicten te voorkomen.
5. CDC-replicatie is onverwacht gestopt
- Probleem: De taak stopt voordat doorlopende wijzigingen worden toegepast.
- Oplossing:
- Controleer de CDC-startpositie in de logs.
- Zorg dat de retentieperiode voor logs voldoende is (bijv. 24 uur voor Oracle LogMiner).
- Start de CDC-taak opnieuw vanaf de laatst toegepaste transactie.
6. Schemaproblemen tussen bron en doel
- Probleem: Bepaalde objecten kunnen niet worden gemigreerd door schema-verschillen.
- Oplossing:
- Gebruik AWS SCT (Schema Conversion Tool) om incompatibiliteiten te beoordelen.
- Pas indien nodig handmatige schemawijzigingen toe.
7. Logs controleren en fouten debuggen
- Gebruik AWS CloudWatch-logs:
- Navigeer naar de AWS DMS Console > Migration Tasks > View Logs.
- Filter logs op fouttrefwoorden zoals failure, timeout of constraint violation.
- Schakel Verbose Logging in als diepere inzichten nodig zijn.
Stappen na de migratie
Laten we nu kijken naar enkele stappen die je na een migratie met DMS kunt nemen.
Stap 1: Dataconsistentie valideren
Wanneer AWS DMS de migratie voltooit, is het cruciaal om dataconsistentie te valideren en te zorgen dat de doeldatabase de bron nauwkeurig weerspiegelt. Hieronder staan belangrijke validatietechnieken:
De functie voor datavalidatie van AWS DMS gebruiken
- Als datavalidatie in AWS DMS was ingeschakeld, navigeer je naar:
- AWS DMS Console > Migration Tasks > Table Statistics
- Controleer op validatiefouten en voer de migratie opnieuw uit voor getroffen tabellen.

Figuur 21 AWS DMS Validation Summary.
Stap 2: Cutover naar de doeldatabase uitvoeren
Zodra AWS DMS alle data succesvol heeft gemigreerd en de doorlopende replicatie (CDC) is voltooid, is de laatste stap om over te schakelen naar de doeldatabase als primair systeem. Volg deze stappen voor een soepele overgang:
Stap 1: Dataconsistentie verifiëren
Bevestig vóór de overschakeling dat alle data volledig is gerepliceerd:
- Controleer rijaantallen tussen bron en doel.
- Voer checksum-validatie uit op sleuteltabellen.
- Controleer CloudWatch-metrics voor replicatielag (moet nul zijn vóór cutover).
Stap 2: Nieuwe wijzigingen op de brondatabase stoppen
Om datainconsistenties te voorkomen:
- Schakel schrijven uit op de brondatabase door deze in read-only modus te zetten.
- Zorg dat alle applicaties die schrijven naar de database naar het nieuwe doel verwijzen.
Stap 3: AWS DMS-replicatie stoppen
- Ga in de AWS DMS-console naar Database Migration Tasks.
- Selecteer je actieve migratietaak.
- Klik op Stop Task om de lopende replicatie te stoppen.

Figuur 22 AWS DMS Migration Task Stop.
Stap 4: De doeldatabase promoveren tot primair
- Verwijder read-only beperkingen op de doeldatabase
- Werk de connection strings van applicaties bij zodat ze naar de nieuwe database verwijzen.
Stap 5: Laatste validatie en testen uitvoeren
- Test kritieke applicatiequeries om de functionaliteit te bevestigen.
- Valideer dat nieuwe transacties correct worden verwerkt in het doelsysteem.
- Voer end-to-end-tests uit om te zorgen dat bedrijfsprocessen intact blijven.
Stap 6: De oude brondatabase buiten gebruik stellen (indien nodig)
- De brondatabase kan worden gearchiveerd of buiten gebruik worden gesteld als deze niet langer nodig is.
- Bewaar back-ups voordat je het bronsysteem volledig verwijdert.
Stap 3: Opschonen en afronden
Stap 1: De migratietaak stoppen en verwijderen
- Open de AWS DMS-console.
- Klik in het menu links op Database Migration Tasks.
- Selecteer de migratieta(a)k(en) die je hebt gemaakt.
- Klik op Actions > Stop en bevestig.
- Zodra de taakstatus verandert in “Stopped”, klik je op Actions > Delete en bevestig.
Stap 2: DMS-eindpunten verwijderen
- Klik in de AWS DMS-console op Endpoints in het menu links.
- Selecteer de eindpunten die tijdens de tutorial zijn aangemaakt.
- Klik op Actions > Delete en bevestig.

Figuur 23 AWS DMS Endpoints Deletion.
Stap 3: De CloudFormation-stack verwijderen
- Open de AWS CloudFormation Console.
- Selecteer de CloudFormation-stack die tijdens de tutorial is aangemaakt.
- Klik op Delete (rechtsboven).

Figuur 24 Verwijderen van stack bevestigen in AWS.
- Bevestig de verwijdering—CloudFormation verwijdert automatisch alle bijbehorende resources (dit kan tot 15 minuten duren).
- Houd de CloudFormation-console in de gaten om te controleren of de stack volledig is verwijderd.
Geavanceerde functies van AWS DMS
Laten we nu kijken naar enkele complexere scenario’s die je met AWS DMS kunt oplossen.
Datatransformatie tijdens de migratie
AWS DMS maakt datatransformatie tijdens de migratie mogelijk door aanpassingen zoals het wijzigen van kolomdatatypes, het hernoemen van tabellen en kolommen, en het filteren van data. Deze transformaties helpen het bronschema af te stemmen op de structuur van de doeldatabase. Met transformaties in de sectie Table Mappings kun je deze wijzigingen dynamisch toepassen zonder de brondatabase te wijzigen.
Voor gedetailleerde stappen, zie deze blogpost over kolominhoud transformeren.
AWS DMS gebruiken met S3 als doel
AWS DMS kan data migreren naar Amazon S3, wat kosteneffectieve opslag mogelijk maakt voor analytics, machine learning of verdere verwerking met diensten zoals AWS Glue, Athena of Redshift.
Volg deze stappen om Amazon S3 als doellocatie voor AWS DMS-migratie te configureren.
Stap 1: Maak een S3-bucket
- Open de Amazon S3-console.
- Klik op Create bucket.
- Stel de Bucket Name in op:
dmstargetbucket-<random 4-digit number> - Zorg dat de regio overeenkomt met de AWS DMS-resources.
- Laat alle andere instellingen op default en klik op Create bucket.
Stap 2: Maak een map in de S3-bucket
- Open de zojuist gemaakte bucket.
- Klik op Create folder.
- Noem de map
dmstargetfolder. - Laat alle standaardinstellingen staan en klik op Create folder.
Stap 3: Maak een AWS IAM-policy voor S3-toegang
- Open de IAM-console en ga naar Policies.
- Klik op Create policy en kies vervolgens het tabblad JSON.
- Kopieer en plak het volgende beleid en vervang
"REPLACE-WITH-YOUR-BUCKET-NAME"door je echte bucketnaam:
{
"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 op Review policy.
- Stel de Policy Name in op
DMS-tutorial-S3-Access-Policyen klik vervolgens op Create policy.
Stap 4: Policy koppelen aan IAM-rol
- Ga in de IAM-console naar Roles.
- Zoek naar "dms-vpc" en selecteer
dms-vpc-role. - Klik op Add permissions > Attach policies.

Figuur 25 AWS IAM Policy Management.
- Selecteer
DMS-LAB-S3-Access-Policyen klik op Add permissions.
Stap 5: Sla de IAM Role ARN op
- Kopieer op de overzichtspagina van
dms-vpc-rolede Role ARN. - Sla deze op voor later gebruik in de AWS DMS-configuratie.
S3-doelendpoints maken
Nu de S3-bucket is geconfigureerd met de juiste policies en rollen, is de volgende stap het aanmaken van doelendpoints in AWS DMS.
- Open de AWS DMS-console.
- Klik op Endpoints in het menu aan de linkerkant.
- Klik op Create endpoint (rechtsboven).
- Configureer het bestemmingseindpunt S3.
- Voer de volgende waarden in:
- Endpoint Type: Target endpoint
- Endpoint Identifier: S3-target
- Descriptive ARN: Leeg laten
- Target Engine: Amazon S3
- Server Name:
<ARN of the dms-vpc-role> - Bucket Name:
<Your S3 Bucket Name> - Bucket Folder:
dmstargetfolder - Klik op Run Test om de verbinding te verifiëren.
- Zodra de test "Successful" is, klik je op Create endpoint.
Een DMS-migratietaak maken
Stap 1: Maak een migratietaak
- Open de AWS DMS-console.
- Klik op Database migration tasks in het menu aan de linkerkant.
- Klik op Create task (rechtsboven).
Stap 2: Taakinstellingen configureren
- Task Identifier:
source-to-AuroraMySQL-target - Replication Instance:
cfn-dmsreplication - Source Database Endpoint: Selecteer je brondatabase
- Target Database Endpoint:
cfn-auroramysqlinstance - Migration Type: Migrate existing data and replicate ongoing changes
- CDC Stop Mode: Don’t use custom CDC stop mode
- Create Recovery Table on Target DB: Uitgevinkt
- Target Table Preparation Mode: Do nothing (not the default)
- Stop Task After Full Load Completes: Don’t stop
- LOB Column Settings / Include LOB Columns in Replication: Limited LOB mode
- Max LOB Size (KB): 32
- Data Validation: Uitgevinkt
- Enable CloudWatch Logs: Aangevinkt
- Log Context: Default levels
- Batch-Optimized Apply: Uitgevinkt
Stap 3: Tabeltoewijzingen configureren
- Klap de sectie Table mappings uit.
- Selecteer Wizard als bewerkingsmodus.
- Klik op Add new selection rule en voer het volgende in:
- Schema:
DMS_SAMPLE% - Table Name:
% - Action: Include

Figuur 26 Tabeltoewijzing configureren
Stap 4: Transformatieregels configureren
- Klap de sectie Transformation rules uit.
- Klik op Add new transformation rule en voer de volgende regels in:
- Regel 1:
- Target: Schema
- Schema Name:
DMS_SAMPLE - Action: Make lowercase
- Regel 2:
- Target: Table
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Make lowercase
- Regel 3:
- Target: Column
- Schema Name:
DMS_SAMPLE - Table Name:
% - Action: Make lowercase
Stap 5: Migratietaak afronden en starten
- Vink Turn on premigration assessment uit (niet nodig voor deze workshop).
- Zorg dat de Migration task startup configuration is ingesteld op Start automatically on create.
- Klik op Create task.
Stap 6: Voortgang van migratie monitoren
- Klik op de migratietaak (
source-to-s3-target). - Scroll naar Table Statistics om het aantal verplaatste rijen te bekijken.
- Als de status rood wordt (fout), klik dan op View Logs om te troubleshooten met CloudWatch-logs.
Best practices voor AWS DMS
Laten we nu enkele best practices bekijken die je kunt toepassen bij het migreren van data met AWS DMS.
Prestaties optimaliseren
Om efficiënte en snelle databasemigratie met AWS DMS te garanderen, kun je de volgende optimalisaties overwegen:
- Kies de juiste grootte voor de replicatie‑instance
- Gebruik een groter instance‑type (bijv.
dms.r5.largeof hoger) voor migraties met hoge doorvoer. - Monitor CPU, geheugen en IOPS met CloudWatch en schaal de instance indien nodig op.
- Gebruik meerdere migratietaken voor parallelle verwerking
- Splits grote migraties op in meerdere taken per tabelgroep om laadtijd te verkorten.
- Migreer grote tabellen apart van kleine om prestaties in balans te houden.
- Netwerkverbindingen optimaliseren
- Plaats de DMS-replicatie‑instance in dezelfde VPC en Availability Zone als de bron- en doeldatabases.
- Gebruik VPC‑endpoints of Direct Connect voor stabielere netwerken en lagere latency.
- LOB-instellingen tunen
- Gebruik voor Large Objects (LOB’s) Limited LOB Mode met een passende LOB‑grootte om de prestatiedruk te beperken.
- Parallel load en batch apply inschakelen
- Schakel Batch Optimized Apply in voor snellere inserts in de doeldatabase.
- Gebruik Parallel Load voor grootschalige migraties om meerdere tabellen tegelijk te verwerken.
Plan voor downtime
Downtime minimaliseren tijdens een databasemigratie is cruciaal voor de bedrijfscontinuïteit. Dit zijn belangrijke strategieën voor een soepele cutover:
- Migreer tijdens periodes met weinig verkeer
- Plan de cutover buiten piekuren om de impact op gebruikers te beperken.
- Informeer stakeholders vooraf om ze voor te bereiden op tijdelijke onderbrekingen.
- Gebruik doorlopende replicatie (CDC)
- Schakel Change Data Capture (CDC) in om de doeldatabase gesynchroniseerd te houden met de bron.
- Hierdoor kunnen applicaties met minimale dataverlies overschakelen.
- Voer een test-cutover uit
- Draai een proefmigratie in een staging‑omgeving vóór de definitieve cutover.
- Valideer prestaties en los eventuele schema‑ of datainconsistenties op.
- Beperk impact van DNS‑switch
- Bereid een DNS‑gebaseerde databaseverbinding voor zodat overschakelen naar het nieuwe doel naadloos verloopt.
- Werk applicatie‑connection strings pas bij wanneer de migratie is geverifieerd.
- Zet de bron vóór de definitieve cutover op alleen‑lezen
- Voorkom nieuwe transacties op de bron door deze in read‑only modus te zetten.
- Zorg dat alle openstaande wijzigingen zijn gerepliceerd voordat je applicaties naar het doel laat wijzen.
Beveilig je data
Databeveiliging tijdens de migratie is essentieel om gevoelige informatie te beschermen en aan compliance‑eisen te voldoen.
- Versleutel data in transit met SSL/TLS
- Schakel SSL/TLS in voor bron- en doeldatabaseverbindingen om onderschepping te voorkomen.
- Gebruik certificaat‑gebaseerde authenticatie voor extra beveiliging.
- Beperk toegang met AWS IAM‑rollen en ‑policies
- Ken least‑privilege IAM‑rollen toe aan de DMS‑replicatie‑instance en endpoints.
- Gebruik IAM‑policies om toegang te beperken tot specifieke databases, S3‑buckets en CloudWatch‑logs.
- Encryptie at rest inschakelen
- Gebruik AWS Key Management Service (KMS) om data in Amazon S3 of RDS te versleutelen.
- Zorg dat de doeldatabase encryptie ondersteunt voor veilige opslag.
Problemen oplossen met AWS DMS
DMS is een krachtig hulpmiddel, maar niet zonder problemen. Zo los je de meest voorkomende issues op.
Veelvoorkomende fouten en oplossingen
AWS DMS‑migraties kunnen fouten tegenkomen met betrekking tot databaseconnectiviteit, schemamismatches en replicatiefouten.
1. Databaseverbindingsfouten
- Fout: "Failed to connect to database endpoint."
- Oplossing:
- Controleer VPC-, security group- en subnetinstellingen.
- Controleer of de database bereikbaar is vanaf de DMS‑replicatie‑instance.
- Zorg voor de juiste host, poort en inloggegevens in de DMS‑endpointinstellingen.
- Test de connectiviteit met de optie "Test Endpoint Connection" in de DMS‑console.
2. Problemen met datatypcompatibiliteit
- Fout: "Unsupported data type conversion between source and target."
- Oplossing:
- Gebruik AWS Schema Conversion Tool (SCT) om incompatibele datatypen te identificeren.
- Pas kolomdatatypen handmatig aan in het doelschema indien nodig.
- Schakel transformatierregels in DMS in om incompatibele typen automatisch te converteren.
3. Overtredingen van foreign key‑constraints
- Fout: "Foreign key constraint violation in target database."
- Oplossing:
- Schakel foreign key‑constraints uit vóór de migratie en weer in na afronding.
- Gebruik "Truncate before load" als je data opnieuw laadt in een bestaande tabel.
4. Trage migratieprestaties
- Fout: "Replication lag increasing significantly."
- Oplossing:
- Gebruik een grotere DMS‑replicatie‑instance (
dms.r5.largeof hoger). - Schakel Parallel Load en Batch Optimized Apply in voor snellere gegevensinname.
- Optimaliseer netwerkverbindingen door DMS, bron en doel in dezelfde VPC te plaatsen.
5. Doorlopende replicatie (CDC) stopt onverwacht
- Fout: "CDC task stopped due to missing log files."
- Oplossing:
- Zorg voor voldoende logretentie op de brondatabase (bijv. 24 uur voor Oracle LogMiner).
- Herstart de CDC‑taak vanaf de laatst toegepaste transactie.
DMS‑logs gebruiken voor troubleshooting
AWS DMS biedt taaklogs en CloudWatch‑integratie om migratieproblemen efficiënt te identificeren en op te lossen.
1. Toegang tot DMS‑taaklogs
- Ga in de AWS DMS‑console naar Database Migration Tasks.
- Selecteer de migratietaak met problemen.
- Klik op Monitoring voor foutmeldingen en uitvoeringsdetails.

Figuur 27 AWS CloudWatch-logs met migratiefouten
2. AWS CloudWatch gebruiken voor gedetailleerd debuggen
- Navigeer naar AWS CloudWatch Console > Logs.
- Zoek de DMS‑replicatie‑instance log group (
/aws/dms/replication-instance-ID). - Schakel verbose logging in in de DMS‑taakinstellingen om meer details vast te leggen.

Figuur 28 Overzicht van AWS CloudWatch‑events
Conclusie
AWS Database Migration Service (DMS) maakt het eenvoudiger om data tussen verschillende database‑engines te verplaatsen met minimale downtime. Door best practices te volgen — zoals prestaties optimaliseren, data beveiligen, schemawijzigingen beheren en veelvoorkomende problemen oplossen — zorg je voor een soepel migratieproces.
Nu je een end‑to‑end AWS DMS‑migratie hebt voltooid, ben je klaar om optimaal te profiteren van je nieuwe cloudgebaseerde database voor betere schaalbaarheid, analytics en cloud‑native optimalisaties. Wil je je AWS‑kennis verdiepen? Bekijk dan het AWS Cloud Practitioner Certification‑traject of ga aan de slag met AWS Concepts en AWS Security & Cost Management.
Rahul Sharma is een AWS Ambassador, DevOps-architect en technisch blogger, gespecialiseerd in cloudcomputing, DevOps-praktijken en open-sourcetechnologieën. Met expertise in AWS, Kubernetes en Terraform maakt hij complexe concepten eenvoudiger voor zowel studenten als professionals via boeiende artikelen en tutorials. Rahul is gepassioneerd over het oplossen van DevOps-uitdagingen en het delen van inzichten om de techcommunity te versterken.

Naarmate organisaties hun infrastructuur moderniseren met cloudtechnologie, is het migreren van databases naar AWS essentieel. AWS biedt een krachtig migratiehulpmiddel, AWS Database Migration Service (DMS), waarmee je met weinig risico en vrijwel direct kunt migreren vanaf on-premises databases, zelf beheerde cloud-databases en andere AWS-services.
In deze tutorial ontdek je hoe je AWS DMS instelt en gebruikt voor je databasmigraties. Je leert:
Laten we beginnen!
Wat is AWS DMS?
AWS Database Migration Service (DMS) maakt het eenvoudig om databases naar AWS te migreren zonder downtime. Het ondersteunt homogene en heterogene migraties, zoals MySQL naar MySQL of Oracle naar PostgreSQL, en is daarmee een cruciaal hulpmiddel voor organisaties die naar de cloud overstappen.
Met AWS DMS kun je:
AWS DMS wordt veel gebruikt voor:
Features van AWS DMS
AWS DMS biedt verschillende belangrijke features om databasmigratie te ondersteunen.
1. Homogene en heterogene migraties
2. Minimale downtime met Change Data Capture (CDC)
3. Volledig beheerd en schaalbaar
4. Brede databasecompatibiliteit
5. Schema-conversie met AWS SCT
6. Continue monitoring en logging
7. Beveiliging en compliance