RDS MySQL database with secure firewall configuration, encryption, multi AZ, backup enabled, and alerting.
Install Node.js and npm first!
npm i @cfn-modules/rds-mysql
--- AWSTemplateFormatVersion: '2010-09-09' Description: 'cfn-modules example' Resources: Database: Type: 'AWS::CloudFormation::Stack' Properties: Parameters: VpcModule: !GetAtt 'Vpc.Outputs.StackName' # required ClientSgModule: !GetAtt 'ClientSg.Outputs.StackName' # required AlertingModule: '' # optional HostedZoneModule: '' # optional BastionModule: '' # optional KmsKeyModule: '' # optional SecretModule: '' # optional DBSnapshotIdentifier: '' # optional DBAllocatedStorage: 5 # optional DBInstanceClass: 'db.t4g.micro' # optional DBName: '' # optional DBBackupRetentionPeriod: 30 # optional DBMasterUsername: 'master' # optional DBMasterUserPassword: '' # required if neither DBSnapshotIdentifier nor SecretModule is set DBMultiAZ: true # optional SubDomainNameWithDot: 'mysql.' # optional # Set this to the version of MySQL you want to use. # You can run the following command to get the list of MySQL versions supported by AWS RDS: # aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion" EngineVersion: '8.0.31' EnableIAMDatabaseAuthentication: 'false' # optional TemplateURL: './node_modules/@cfn-modules/rds-mysql/module.yml'Name Description Default Required? Allowed values VpcModule Stack name of vpc module yes ClientSgModule Stack name of client-sg module where traffic is allowed from on port 5432 to the database yes AlertingModule Stack name of alerting module no HostedZoneModule Stack name of module implementing HostedZone no BastionModule Stack name of module implementing Bastion no KmsKeyModule Stack name of kms-key module no SecretModule Stack name of secret module no DBSnapshotIdentifier Name or Amazon Resource Name (ARN) of the DB snapshot from which you want to restore (leave blank to create an empty database) no DBAllocatedStorage The allocated storage size, specified in GB (ignored when DBSnapshotIdentifier is set, value used from snapshot) 5 no [5-16384] DBInstanceClass The instance type of the database db.t4g.micro no DBName Name of the database (ignored when DBSnapshotIdentifier is set, value used from snapshot) auto generated value no DBBackupRetentionPeriod The number of days to keep snapshots of the database 35 no [0-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; also ignored if SecretModule is set). yes (no if DBSnapshotIdentifier is set) DBMultiAZ Specifies if the database instance is deployed to multiple Availability Zones for HA true no [true, false] 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! test. no EngineVersion The MySQL version. yes Set this to the version of MySQL you want to use. You can run the following command to get the list of PostgreSQL versions supported by AWS RDS:
aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"
EnableIAMDatabaseAuthentication Enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts). false no [true, false]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4