Skip to content

Database Migration Service (DMS)

CloudMock emulates AWS Database Migration Service, supporting replication instances, endpoints, replication tasks, subnet groups, SSL certificates, and tagging. Replication instance lifecycle transitions through creating → available, and task lifecycle through ready → starting → running → stopping → stopped.

OperationStatusNotes
CreateReplicationInstanceSupportedLifecycle: creating → available
DescribeReplicationInstancesSupportedLists all instances
ModifyReplicationInstanceSupportedUpdate class and MultiAZ flag
DeleteReplicationInstanceSupportedSets status to deleting
CreateEndpointSupportedSource or target endpoint
DescribeEndpointsSupportedLists all endpoints
ModifyEndpointSupportedUpdate server, db, username, port
DeleteEndpointSupportedDeletes an endpoint
TestConnectionSupportedAlways returns successful
CreateReplicationTaskSupportedLinks source, target, instance
DescribeReplicationTasksSupportedLists all tasks
StartReplicationTaskSupportedTransitions to starting → running
StopReplicationTaskSupportedTransitions to stopping → stopped
DeleteReplicationTaskSupportedDeletes a task
CreateReplicationSubnetGroupSupportedCreates subnet group
DescribeReplicationSubnetGroupsSupportedLists subnet groups
ModifyReplicationSubnetGroupSupportedUpdates description and subnet IDs
DeleteReplicationSubnetGroupSupportedDeletes subnet group
CreateCertificateSupportedCreates SSL certificate
DescribeCertificatesSupportedLists certificates
DeleteCertificateSupportedDeletes a certificate
AddTagsToResourceSupportedAdds tags by ARN
RemoveTagsFromResourceSupportedRemoves tags by key
ListTagsForResourceSupportedLists tags by ARN
CreateEventSubscriptionSupportedCreates event subscription
DescribeEventSubscriptionsSupportedLists event subscriptions
DeleteEventSubscriptionSupportedDeletes event subscription
DescribeConnectionsSupportedLists connection test results
import boto3
client = boto3.client('dms',
endpoint_url='http://localhost:4566',
region_name='us-east-1',
aws_access_key_id='test',
aws_secret_access_key='test')
# Create replication instance
inst = client.create_replication_instance(
ReplicationInstanceIdentifier='my-rep-inst',
ReplicationInstanceClass='dms.t3.medium',
)
# Create source and target endpoints
src = client.create_endpoint(
EndpointIdentifier='source-db',
EndpointType='source',
EngineName='mysql',
ServerName='source.example.com',
Port=3306,
DatabaseName='mydb',
Username='admin',
)
tgt = client.create_endpoint(
EndpointIdentifier='target-db',
EndpointType='target',
EngineName='postgres',
ServerName='target.example.com',
Port=5432,
)
# Create and start task
task = client.create_replication_task(
ReplicationTaskIdentifier='full-load',
SourceEndpointArn=src['Endpoint']['EndpointArn'],
TargetEndpointArn=tgt['Endpoint']['EndpointArn'],
ReplicationInstanceArn=inst['ReplicationInstance']['ReplicationInstanceArn'],
MigrationType='full-load',
TableMappings='{}',
)
services:
dms:
enabled: true
  • TestConnection always succeeds regardless of endpoint configuration
  • Replication instance lifecycle transitions happen asynchronously via lifecycle package
  • No actual data migration occurs