Skip to content

About

terraform-aws-rds-instance

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

terraform-aws-rds-instance

Terraform module to create and manage an AWS RDS DB Instance with support for parameter groups, subnet groups, enhanced monitoring, CloudWatch log exports, and optional read replica.

Requirements

Name Version
terraform >= 1.3.0
aws >= 5.0.0

Providers

Name Version
aws >= 5.0.0

Modules

No modules.

Resources

Name Type
aws_db_instance.rds resource
aws_db_instance.replica resource
aws_db_subnet_group.rds resource
aws_db_parameter_group.rds resource
aws_cloudwatch_log_group.rds resource
aws_iam_role.rds_monitoring resource
aws_iam_role_policy_attachment.rds_monitoring_attachment resource
aws_iam_policy_document.rds_monitoring_trust_policy data source
aws_availability_zones.available data source
aws_kms_key.rds data source
aws_partition.current data source

Inputs

Name Description Type Default Required
allocated_storage Allocated storage in GiB number 20 no
apply_immediately Apply changes immediately instead of waiting for the maintenance window bool false no
auto_minor_version_upgrade Enable automatic minor version upgrades bool false no
backup_retention_period Number of days to retain automated backups (0 disables backups) number 7 no
backup_window Preferred daily backup window in UTC (HH:MM-HH:MM) string "03:00-04:00" no
ca_cert_identifier CA certificate identifier for the RDS instance SSL string "rds-ca-rsa2048-g1" no
cloudwatch_log_group_retention_in_days Retention period in days for CloudWatch log groups number 30 no
create_read_replica Whether to create a read replica for the RDS instance bool false no
db_name Name of the initial database string null no
db_subnet_group_name Name of an existing DB subnet group (leave empty to create one) string "" no
deletion_protection Enable deletion protection bool true no
enabled_cloudwatch_logs_exports List of log types to export to CloudWatch (audit, error, general, slowquery, postgresql, upgrade) list(string) [] no
engine Database engine (e.g. mysql, postgres, mariadb) string n/a yes
engine_version Database engine version string n/a yes
identifier Unique identifier for the RDS instance string n/a yes
instance_class RDS instance class (e.g. db.t3.micro) string "db.t3.micro" no
kms_key_id KMS key alias or ARN for storage encryption. Defaults to the AWS-managed RDS key (alias/aws/rds) string null no
maintenance_window Preferred weekly maintenance window (ddd:HH:MM-ddd:HH:MM) string "sun:05:00-sun:06:00" no
max_allocated_storage Maximum storage in GiB for autoscaling. Set to 0 to disable autoscaling number 0 no
monitoring_interval Enhanced Monitoring interval in seconds (0, 1, 5, 10, 15, 30, 60). 0 disables it number 0 no
multi_az Enable Multi-AZ deployment bool false no
parameter_group_family DB parameter group family (e.g. mysql8.0, postgres15). Required when parameters are set string n/a yes
parameters List of DB parameters to apply list(object({ name = string, value = string, apply_method = optional(string, "immediate") })) [] no
password Master password for the DB instance string n/a yes
publicly_accessible Make the RDS instance publicly accessible bool false no
read_replica_availability_zone Availability zone for the read replica. If not set, AWS will choose string null no
read_replica_identifier Identifier for the read replica instance. Defaults to {identifier}-replica string "" no
read_replica_instance_class Instance class for the read replica. Defaults to the primary instance class string "" no
security_group_ids List of security group IDs to associate with the RDS instance list(string) [] no
skip_final_snapshot Skip final snapshot on deletion bool false no
storage_encrypted Enable storage encryption bool true no
storage_type Storage type: gp2, gp3, io1, or standard string "gp3" no
subnet_ids List of subnet IDs for the DB subnet group. Required (min 2, different AZs) when db_subnet_group_name is not set list(string) [] no
username Master username for the DB instance string n/a yes

Outputs

Name Description
id RDS instance identifier
arn RDS instance ARN
resource_id RDS resource ID (DbiResourceId)
endpoint RDS instance connection endpoint (address:port)
address RDS instance hostname
port RDS instance port
db_name Name of the initial database
username Master username
availability_zone Availability zone of the RDS instance
replica_id Read replica instance identifier (null if not created)
replica_endpoint Read replica connection endpoint (null if not created)
replica_address Read replica hostname (null if not created)
replica_availability_zone Availability zone of the read replica (null if not created)

Usage

See example.md for all usage scenarios.

License

Apache 2 Licensed. See LICENSE for full details.

About

terraform-aws-rds-instance

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages