Saturday, 17 February 2018

AWS Database Migration Service

Overview
  • Online database migration
  • Creates tables, loads data, keeps it sync
  • Agentless (uses Replication Instance)

Engines
  • Supports
    • MySQL
    • MariaDB
    • PostgreSQL
    • Oracle
    • SQL Server
    • Aurora
    • Redshift

Model
  • Environments
    • on-premise
    • AWS (EC2, RDS)
  • Heterogenous migration possible (e.g. Oracle -> MySQL)
  • Does not propagate most of DDL (indexes, sprocs, etc.)
    • Must be replicated manually
  • To obtain changes it calls database's change capture API
    • Oracle: log miner
    • MySQL:  binlog API
    • PostgreSQL: replication slots

Endpoint
  • "Conection String" to the database
  • required for source/target

Replication Instance
  • EC2 instance
  • Performs actual work
  • Similar to data pipeline
  • Instance Types
    • C4 (e.g. dms.c4.large), 100GB gp2
    • T2 (e.g. dms.t2.micro), 50GB gp2
  • Public IP - needed only when source/target accessible over Internet

Migration Task
  • Which schema/tables to migrate
  • Migration Type
    • Full Load, Ongoing Replication
    • Ongoing Replication
    • Full Load
  • Endpoints (source/target)

Encryption
  • Encrypts storage used by replication instance and endpoint connection
  • Uses KMS (aws/dms) 

Use Cases
  • One time migration
  • Continous replication (e.g. prod->test)
  • Move shards between servers
  • Moving off commercial database
  • Hybrid deployments
  • Integrate tables from 3rd party tools (e.g. PeopleSoft)

References


No comments:

Post a Comment