RDS Aurora with secure firewall configuration, encryption, multi AZ, auto scaling, backup enabled, and alerting.
Install Node.js and npm first!
npm i @aws-cfm/rds-aurora
---
AWSTemplateFormatVersion: '2010-09-09'
Description: 'cfn-modules example'
Resources:
Cluster:
Type: 'AWS::CloudFormation::Stack'
Properties:
Parameters:
VpcModule: !GetAtt 'Vpc.Outputs.StackName' # required
ClientSgModule: !GetAtt 'ClientSg.Outputs.StackName' # required
AlertingModule: '' # optional
BastionModule: '' # optional
HostedZoneModule: '' # optional
KmsKeyModule: '' # optional
Engine: 'aurora' # optional
DBSnapshotIdentifier: '' # optional
DBInstanceClass: 'db.t2.small' # optional
DBName: 'mydb' # optional
DBBackupRetentionPeriod: 30 # optional
DBMasterUsername: 'master' # optional
DBMasterUserPassword: 'password' # optional
SubDomainNameWithDot: 'aurora.' # optional
ReadSubDomainNameWithDot: 'read-aurora.' # optional
PreferredBackupWindow: '09:54-10:24' # optional
PreferredMaintenanceWindow: 'sat:07:00-sat:07:30' # optional
TemplateURL: './node_modules/@aws-cfm/rds-aurora/module.yml'
none
none
Name | Description | Default | Required? | Allowed values |
---|---|---|---|---|
VpcModule | Stack name of vpc module | yes | ||
ClientSgModule | Stack name of client-sg module | yes | ||
AlertingModule | Stack name of alerting module | no | ||
BastionModule | Stack name of module implementing Bastion | no | ||
HostedZoneModule | Stack name of module implementing HostZone | no | ||
KmsKeyModule | Stack name of kms-key module | no | ||
Engine | Aurora engine and version | aurora | no | ['5.6.mysql-aurora.1.19.1', 'aurora', '5.7.mysql-aurora.2.04.3', '5.7.mysql-aurora.2.03.4', 'aurora-mysql', 'aurora-postgresql-10.7', 'aurora-postgresql-10.6', 'aurora-postgresql-10.5', 'aurora-postgresql-10.4', 'aurora-postgresql-9.6.12', 'aurora-postgresql'] |
DBSnapshotIdentifier | The identifier for the DB cluster snapshot from which you want to restore (leave blank to create an empty cluster). | no | ||
DBInstanceClass | he instance type of database server. | db.t2.small | no | |
DBName | Name of the database (ignored when DBSnapshotIdentifier is set, value used from snapshot). | no | ||
DBBackupRetentionPeriod | The number of days to keep snapshots of the cluster. | 30 | no | 1-35 |
DBMasterUsername | The master user name for the DB instance (ignored when DBSnapshotIdentifier is set, value used from snapshot). | master | no | |
DBMasterUserPassword | The master password for the DB instance (ignored when DBSnapshotIdentifier is set, value used from snapshot). | no | ||
SubDomainNameWithDot | Name that is used to create the DNS entry with trailing dot, e.g. §{SubDomainNameWithDot}§{HostedZoneName}. Leave blank for naked (or apex and bare) domain. Requires HostedZoneModule parameter! | aurora. | no | |
ReadSubDomainNameWithDot | Name that is used to create the read DNS entry with trailing dot, e.g. §{SubDomainNameWithDot}§{HostedZoneName}. Leave blank for naked (or apex and bare) domain. Requires HostedZoneModule parameter! | read-aurora. | no | |
PreferredBackupWindow | The daily time range in UTC during which you want to create automated backups. | 09:54-10:24 | no | |
PreferredMaintenanceWindow | The weekly time range in UTC during which system maintenance can occur. | sat:07:00-sat:07:30 | no |
Name | Description | Export |
---|---|---|
ModuleId | The ID of module: `ecs-cluster` | |
ModuleVersion | The version of module: `1.0.0` | |
StackName | The name of CloudFormation Stack | |
ClusterName | The name of the database cluster. | `${AWS::StackName}-ClusterName` |
DNSName | The connection endpoint for the DB cluster. | `${AWS::StackName}-DNSName` |
ReadDNSName | The reader endpoint for the DB cluster. | `${AWS::StackName}-ReadDNSName` |