
terraform-aws-arc-dms¶
Module:
sourcefuse/arc-dms/awsRegistry: https://registry.terraform.io/modules/sourcefuse/arc-dms/aws
Category: Database / Migration
Overview¶
Architecture¶

Creates AWS Database Migration Service resources — replication instances, endpoints, and tasks — for homogeneous and heterogeneous database migrations.
What It Does¶
- DMS replication instance with configurable class and storage
- Source and target endpoints with Secrets Manager auth
- Full-load, CDC, and full-load-and-CDC migration tasks
- Subnet group and VPC security group configuration
- Support for PostgreSQL, MySQL, Oracle, SQL Server, and more
For more information about this repository and its usage, please see Terraform AWS DMS Usage Guide.
Quickstart¶
To see a DMS example, check out the main.tf file in the example folder.
Required Inputs¶
| Name | Version |
|---|---|
| terraform | >= 1.4, < 2.0.0 |
| aws | >= 4.0, < 6.0 |
Providers¶
No providers.
Modules¶
| Name | Source | Version |
|---|---|---|
| aws_dms | ./modules/dms | n/a |
Resources¶
No resources.
Inputs¶
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| create_subnet_group | Determines whether the replication subnet group will be created | bool |
true |
no |
| endpoints | Map of endpoints used in the system | map(object({ |
n/a | yes |
| instance_allocated_storage | The amount of storage (in gigabytes) to be initially allocated for the replication instance. Min: 5, Max: 6144, Default: 50 | number |
null |
no |
| instance_allow_major_version_upgrade | Indicates that major version upgrades are allowed | bool |
true |
no |
| instance_apply_immediately | Indicates whether the changes should be applied immediately or during the next maintenance window | bool |
null |
no |
| instance_auto_minor_version_upgrade | Indicates that minor engine upgrades will be applied automatically to the replication instance during the maintenance window | bool |
true |
no |
| instance_availability_zone | The EC2 Availability Zone that the replication instance will be created in | string |
null |
no |
| instance_class | The compute and memory capacity of the replication instance as specified by the replication instance class | string |
"dms.t2.micro" |
no |
| instance_engine_version | The engine version number of the replication instance | string |
null |
no |
| instance_id | The replication instance identifier. This parameter is stored as a lowercase string | string |
"dms-instance" |
no |
| instance_kms_key_arn | The Amazon Resource Name (ARN) for the KMS key that will be used to encrypt the connection parameters | string |
null |
no |
| instance_multi_az | Specifies if the replication instance is a multi-az deployment. You cannot set the availability_zone parameter if the multi_az parameter is set to true |
bool |
null |
no |
| instance_network_type | The type of IP address protocol used by a replication instance. Valid values: IPV4, DUAL | string |
null |
no |
| instance_preferred_maintenance_window | The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC) | string |
null |
no |
| instance_publicly_accessible | Specifies the accessibility options for the replication instance | bool |
null |
no |
| instance_subnet_group_id | An existing subnet group to associate with the replication instance | string |
null |
no |
| instance_vpc_security_group_ids | A list of VPC security group IDs to be used with the replication instance | list(string) |
null |
no |
| replication_tasks | n/a | map(object({ |
{} |
no |
| replication_tasks_serverless | Map of serverless replication tasks | map(object({ |
n/a | yes |
| s3_endpoints | n/a | map(object({ |
n/a | yes |
| subnet_group_description | The description for the subnet group | string |
"DMS Replication subnet group" |
no |
| subnet_group_id | The name for the replication subnet group. Stored as a lowercase string, must contain no more than 255 alphanumeric characters, periods, spaces, underscores, or hyphens | string |
"DMS_replication_subnet_group" |
no |
| subnet_group_subnet_ids | A list of the EC2 subnet IDs for the subnet group | list(string) |
[] |
no |
| subnet_group_tags | A map of additional tags to apply to the replication subnet group | map(string) |
{} |
no |
| ## Key Outputs |
| Name | Description |
|---|---|
| certificates | A map of maps containing the certificates created and their full output of attributes and values |
| dms_access_for_endpoint_iam_role_arn | ARN specifying the role |
| dms_access_for_endpoint_iam_role_id | Name of the IAM role |
| dms_access_for_endpoint_iam_role_unique_id | Stable and unique string identifying the role |
| endpoints | A map of maps containing the endpoints created and their full output of attributes and values |
| event_subscriptions | A map of maps containing the event subscriptions created and their full output of attributes and values |
| replication_instance_arn | The Amazon Resource Name (ARN) of the replication instance |
| replication_instance_tags_all | A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block |
| replication_subnet_group_id | The ID of the subnet group |
| replication_tasks | A map of maps containing the replication tasks created and their full output of attributes and values |
| s3_endpoints | A map of maps containing the S3 endpoints created and their full output of attributes and values |
| serverless_replication_tasks | A map of maps containing the serverless replication tasks (replication_config) created and their full output of attributes and values |
Versioning¶
while Contributing or doing git commit please specify the breaking change in your commit message whether its major,minor or patch
For Example
Development¶
Prerequisites¶
Configurations¶
- Configure pre-commit hooks
Tests¶
- Tests are available in
testdirectory - Configure the dependencies
- Now execute the test
Contributing¶
See CONTRIBUTING.md for commit conventions and development setup.
Authors¶
This project is authored by: - SourceFuse ARC Team