Skip to content

Latest commit

 

History

History
123 lines (97 loc) · 6.66 KB

README.md

File metadata and controls

123 lines (97 loc) · 6.66 KB

AWS RDS Aurora Terraform module

Terraform module which creates RDS Aurora resources on AWS.

These types of resources are supported:

Available features

  • Autoscaling of read-replicas (based on CPU utilization)
  • Enhanced Monitoring

Usage

module "db" {
  source                          = "terraform-aws-modules/rds-aurora/aws"

  name                            = "test-aurora-db-postgres96"

  engine                          = "aurora-postgresql"
  engine_version                  = "9.6.3"

  vpc_id                          = "vpc-12345678"
  subnets                         = ["subnet-12345678", "subnet-87654321"]
  azs                             = ["eu-west-1a", "eu-west-1b"]
  
  replica_count                   = 1
  allowed_security_groups         = ["sg-12345678"]
  instance_type                   = "db.r4.large"
  storage_encrypted               = "true"
  apply_immediately               = "true"
  monitoring_interval             = 10
  db_parameter_group_name         = "default"
  db_cluster_parameter_group_name = "default"

  tags                            = {
    Environment = "dev"
    Terraform   = "true"
  }
}

Examples

  • PostgreSQL: A simple example with VPC and PostgreSQL cluster.
  • MySQL: A simple example with VPC and MySQL cluster.
  • Advanced: A PostgreSQL cluster with enhanced monitoring and autoscaling enabled.

Documentation

Terraform documentation is generated automatically using pre-commit hooks. Follow installation instructions here.

Inputs

Name Description Type Default Required
allowed_security_groups A list of Security Group ID's to allow access to. string <list> no
apply_immediately Determines whether or not any DB modifications are applied immediately, or during the maintenance window string false no
auto_minor_version_upgrade Determines whether minor engine upgrades will be performed automatically in the maintenance window string true no
availability_zones Availability zones for the cluster. Must 3 or less string <list> no
backup_retention_period How long to keep backups for (in days) string 7 no
db_cluster_parameter_group_name The name of a DB Cluster parameter group to use string default.aurora5.6 no
db_parameter_group_name The name of a DB parameter group to use string default.aurora5.6 no
engine Aurora database engine type, currently aurora, aurora-mysql or aurora-postgresql string aurora no
engine_version Aurora database engine version. string 5.6.10a no
final_snapshot_identifier_prefix The prefix name to use when creating a final snapshot on cluster destroy, appends a random 8 digits to name to ensure it's unique too. string final no
identifier_prefix Prefix for cluster and instance identifier string `` no
instance_type Instance type to use string - yes
kms_key_id The ARN for the KMS encryption key if one is set to the cluster. string `` no
monitoring_interval The interval (seconds) between points when Enhanced Monitoring metrics are collected string 0 no
name Name given resources string - yes
password Master DB password string `` no
performance_insights_enabled Specifies whether Performance Insights is enabled or not. string false no
performance_insights_kms_key_id The ARN for the KMS key to encrypt Performance Insights data. string `` no
port The port on which to accept connections string `` no
preferred_backup_window When to perform DB backups string 02:00-03:00 no
preferred_maintenance_window When to perform DB maintenance string sun:05:00-sun:06:00 no
publicly_accessible Whether the DB should have a public IP address string false no
replica_count Number of reader nodes to create. If replica_scale_enable is true, the value of replica_scale_min is used instead. string 1 no
replica_scale_cpu CPU usage to trigger autoscaling at string 70 no
replica_scale_enabled Whether to enable autoscaling for RDS Aurora (MySQL) read replicas string false no
replica_scale_in_cooldown Cooldown in seconds before allowing further scaling operations after a scale in string 300 no
replica_scale_max Maximum number of replicas to allow scaling for string 0 no
replica_scale_min Maximum number of replicas to allow scaling for string 2 no
replica_scale_out_cooldown Cooldown in seconds before allowing further scaling operations after a scale out string 300 no
skip_final_snapshot Should a final snapshot be created on cluster destroy string false no
snapshot_identifier DB snapshot to create this database from string `` no
storage_encrypted Specifies whether the underlying storage layer should be encrypted string true no
subnets List of subnet IDs to use list - yes
tags A map of tags to add to all resources. map <map> no
username Master DB username string root no
vpc_id VPC ID string - yes

Outputs

Name Description
this_rds_cluster_endpoint The cluster endpoint
this_rds_cluster_id aws_rds_cluster
this_rds_cluster_instance_endpoints aws_rds_cluster_instance
this_rds_cluster_master_password The master password
this_rds_cluster_master_username The master username
this_rds_cluster_port The port
this_rds_cluster_reader_endpoint The cluster reader endpoint
this_security_group_id aws_security_group

Authors

Currently maintained by Max Williams and these awesome contributors.

License

MIT Licensed. See LICENSE for full details.