Skip to content

Terraform module for creation of AWS RDS Instances, Aurora Cluster and Aurora Serverless.

License

Notifications You must be signed in to change notification settings

DNXLabs/terraform-aws-rds

Repository files navigation

terraform-aws-rds

Lint Status LICENSE

Requirements

Name Version
terraform >= 0.13.0

Providers

Name Version
aws n/a
random n/a

Inputs

Name Description Type Default Required
allocated_storage Storage size in GB number null no
allow_cidrs List of CIDRs to allow connection to this DB list(string) [] no
allow_cidrs_replica List of CIDRs to allow connection to this DB Replica list(string) [] no
allow_security_group_ids List of Security Group IDs to allow connection to this DB
list(object({
security_group_id = string
description = string
name = string
}))
[] no
allow_security_group_ids_replica List of Security Group IDs to allow connection to this DB Replica
list(object({
security_group_id = string
description = string
name = string
}))
[] no
apply_immediately Apply changes immediately or wait for the maintainance window bool true no
auto_minor_version_upgrade Indicates that minor engine upgrades will be applied automatically to the DB instance during the maintenance window bool true no
backup Enables automatic backup with AWS Backup bool n/a yes
backup_window (RDS Only) The daily time range (in UTC) during which automated backups are created if they are enabled. Example: '09:46-10:16'. Must not overlap with maintenance_window string "03:00-03:30" no
cluster_parameters A list of Cluster parameters (map) to apply list(map(string)) [] no
count_aurora_instances Number of Aurora Instances number "1" no
create_cluster_parameter_group Whether to create a cluster parameter group bool false no
create_db_option_group (Optional) Create a database option group bool false no
create_db_parameter_group Whether to create a database parameter group bool false no
create_db_subnet_group Create a Subnet group? bool false no
database_name Database Name string "" no
db_parameters A list of DB parameters (map) to apply list(map(string)) [] no
db_subnet_group_id RDS Subnet Group Name string n/a yes
db_subnet_group_replica_id RDS Subnet Group Name string n/a yes
db_subnet_group_subnet_ids List of Subnet IDs for the RDS Subnet Group list [] no
db_type Valid values are: rds, aurora or serverless string n/a yes
deletion_protection The database can't be deleted when this value is set to true. bool false no
enable_replica Enable read replica for RDS bool false no
enabled_cloudwatch_logs_exports (Optional) Set of log types to enable for exporting to CloudWatch logs. If omitted, no logs will be exported. Valid values (depending on engine) any null no
engine n/a string n/a yes
engine_version n/a string "" no
environment_name Environment name to use as a prefix to this DB string n/a yes
family The family of the DB parameter group string "" no
final_snapshot_identifier Pass the final snapshot identifier for the final snapshot to be created after the database is destroyed. string "" no
iam_database_authentication_enabled n/a bool false no
identifier Optional identifier for DB. If not passed, {environment_name}-{name} will be used string "" no
instance_class n/a string n/a yes
instance_class_replica Define instance class for read replica string null no
iops The amount of provisioned IOPS. Setting this implies a storage_type of io1 number null no
kms_key_arn KMS Key ARN to use a CMK instead of default shared key, when storage_encrypted is true string "" no
license_model License model information for this DB instance (Optional, but required for some DB engines, i.e. Oracle SE1 and SQL Server) string null no
maintenance_window (RDS Only) The window to perform maintenance in. Syntax: 'ddd:hh24:mi-ddd:hh24:mi'. Eg: 'Mon:00:00-Mon:03:00' string "Sun:04:00-Sun:05:00" no
major_engine_version Specifies the major version of the engine that this option group should be associated with string "" no
max_allocated_storage Argument higher than the allocated_storage to enable Storage Autoscaling, size in GB. 0 to disable Storage Autoscaling number 0 no
monitoring_interval The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance number 0 no
multi_az Deploy multi-az instance database bool false no
name Name of this RDS Database string n/a yes
option_group_description The description of the option group string "Managed by Terraform" no
option_group_name Name of the option group string null no
option_group_use_name_prefix Determines whether to use option_group_name as is or create a unique name beginning with the option_group_name as the prefix bool true no
option_name (Required) The Name of the Option string "" no
options A list of Options to apply. any [] no
parameter_group_description The description of the DB parameter group string "Managed by Terraform" no
parameter_group_name Name of the DB parameter group to associate or create string null no
performance_insights_enabled Enable performance insights on instance bool false no
port Port number for this DB (usually 3306 for MySQL and 5432 for Postgres) number n/a yes
preferred_backup_window (Aurora Only) The daily time range (in UTC) during which automated backups are created if they are enabled. Example: '09:46-10:16'. Must not overlap with maintenance_window string "07:00-09:00" no
preferred_maintenance_window (Aurora Only) The weekly time range during which system maintenance can occur, in (UTC) e.g., wed:04:00-wed:04:30 string "Sun:04:00-Sun:05:00" no
publicly_accessible (Optional) Bool to control if instance is publicly accessible bool false no
publicly_accessible_replica (Optional) Bool to control if instance is publicly accessible bool false no
retention Snapshot retention period in days number n/a yes
secret_method Use ssm for SSM parameters store which is the default option, or secretsmanager for AWS Secrets Manager string "ssm" no
skip_final_snapshot Skips the final snapshot if the database is destroyed programatically bool false no
snapshot_identifier Pass a snapshot identifier for the database to be created from this snapshot string "" no
ssm_kms_key_id KMS Key Id to use a CMK instead of default shared key for SSM parameters string "" no
storage_encrypted Enables storage encryption bool true no
storage_type The instance storage type string "gp2" no
user DB User string n/a yes
vpc_id n/a string n/a yes

Outputs

Name Description
db_arn n/a
endpoint n/a
identifier n/a
rds_sg n/a

Authors

Module managed by DNX Solutions.

License

Apache 2 Licensed. See LICENSE for full details.