Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---
- AWSTemplateFormatVersion: 2010-09-09
- Description: A basic CloudFormation template for an RDS Aurora cluster.
- Parameters:
- DatabaseInstanceType:
- Default: db.r3.large
- AllowedValues:
- - db.r3.large
- - db.r3.xlarge
- - db.r3.2xlarge
- - db.r3.4xlarge
- - db.r3.8xlarge
- Description: The instance type to use for the database.
- Type: String
- DatabasePassword:
- AllowedPattern: "[a-zA-Z0-9]+"
- ConstraintDescription: must contain only alphanumeric characters.
- Description: The database admin account password.
- MaxLength: '41'
- MinLength: '8'
- NoEcho: 'true'
- Type: String
- DatabaseUsername:
- AllowedPattern: "[a-zA-Z0-9]+"
- ConstraintDescription: must contain only alphanumeric characters.
- Description: The database admin account user name.
- MaxLength: '16'
- MinLength: '1'
- Type: String
- DatabaseBackupRetentionPeriod:
- Type: String
- Default: 7
- AllowedValues:
- - 1
- - 7
- Description: The database backup retention period in days.
- DatabaseSubnets:
- Description: The subnets to place database instances in.
- Type: List<AWS::EC2::Subnet::Id>
- DatabaseSecurityGroups:
- Type: List<AWS::EC2::SecurityGroup::Id>
- Description: Security groups to apply to the RDS cluster.
- Metadata:
- AWS::CloudFormation::Interface:
- ParameterGroups:
- - Label:
- default: Database Configuration
- Parameters:
- - DatabaseInstanceType
- - DatabaseName
- - DatabaseUsername
- - DatabasePassword
- - DatabaseSubnets
- - DatabaseSecurityGroups
- - DatabaseBackupRetentionPeriod
- ParameterLabels:
- DatabaseInstanceType:
- default: Database Instance Type
- DatabasePassword:
- default: Database Password
- DatabaseUsername:
- default: Database Username
- DatabaseBackupRetentionPeriod:
- default: Database Backup Retention Period
- DatabaseSubnets:
- default: Database Subnets
- DatabaseSecurityGroups:
- default: Database Security Groups
- Resources:
- StackAlarmTopic:
- Type: AWS::SNS::Topic
- Properties:
- DisplayName: Stack Alarm Topic
- DatabaseSubnetGroup:
- Type: AWS::RDS::DBSubnetGroup
- Properties:
- DBSubnetGroupDescription: CloudFormation managed DB subnet group.
- SubnetIds:
- Ref: DatabaseSubnets
- DatabaseCluster:
- Type: AWS::RDS::DBCluster
- Properties:
- Engine: aurora
- MasterUsername:
- Ref: DatabaseUsername
- MasterUserPassword:
- Ref: DatabasePassword
- BackupRetentionPeriod:
- Ref: DatabaseBackupRetentionPeriod
- PreferredBackupWindow: 02:00-03:00
- PreferredMaintenanceWindow: mon:03:00-mon:04:00
- DBSubnetGroupName:
- Ref: DatabaseSubnetGroup
- VpcSecurityGroupIds:
- Ref: DatabaseSecurityGroups
- DatabasePrimaryInstance:
- Type: AWS::RDS::DBInstance
- Properties:
- Engine: aurora
- DBClusterIdentifier:
- Ref: DatabaseCluster
- DBInstanceClass:
- Ref: DatabaseInstanceType
- DBSubnetGroupName:
- Ref: DatabaseSubnetGroup
- DatabaseReplicaInstance:
- Type: AWS::RDS::DBInstance
- Properties:
- Engine: aurora
- DBClusterIdentifier:
- Ref: DatabaseCluster
- DBInstanceClass:
- Ref: DatabaseInstanceType
- DBSubnetGroupName:
- Ref: DatabaseSubnetGroup
- DatabasePrimaryCPUAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Primary database CPU utilization is over 80%.
- Namespace: AWS/RDS
- MetricName: CPUUtilization
- Unit: Percent
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 80
- ComparisonOperator: GreaterThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabasePrimaryInstance
- AlarmActions:
- - Ref: StackAlarmTopic
- InsufficientDataActions:
- - Ref: StackAlarmTopic
- DatabaseReplicaCPUAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Replica database CPU utilization is over 80%.
- Namespace: AWS/RDS
- MetricName: CPUUtilization
- Unit: Percent
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 80
- ComparisonOperator: GreaterThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabaseReplicaInstance
- AlarmActions:
- - Ref: StackAlarmTopic
- InsufficientDataActions:
- - Ref: StackAlarmTopic
- DatabasePrimaryMemoryAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Primary database freeable memory is under 700MB.
- Namespace: AWS/RDS
- MetricName: FreeableMemory
- Unit: Bytes
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 700000000
- ComparisonOperator: LessThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabasePrimaryInstance
- AlarmActions:
- - Ref: StackAlarmTopic
- InsufficientDataActions:
- - Ref: StackAlarmTopic
- DatabasePrimaryMemoryAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Replica database freeable memory is under 700MB.
- Namespace: AWS/RDS
- MetricName: FreeableMemory
- Unit: Bytes
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 700000000
- ComparisonOperator: LessThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabaseReplicaInstance
- AlarmActions:
- - Ref: StackAlarmTopic
- InsufficientDataActions:
- - Ref: StackAlarmTopic
- DatabasePrimaryReplicationAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Database replication latency is over 200ms.
- Namespace: AWS/RDS
- MetricName: AuroraReplicaLag
- Unit: Milliseconds
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 200
- ComparisonOperator: GreaterThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabaseReplicaInstance
- AlarmActions:
- - Ref: StackAlarmTopic
- DatabaseReplicaReplicationAlarm:
- Type: AWS::CloudWatch::Alarm
- Properties:
- AlarmDescription: Database replication latency is over 200ms.
- Namespace: AWS/RDS
- MetricName: AuroraReplicaLag
- Unit: Milliseconds
- Statistic: Average
- Period: 300
- EvaluationPeriods: 2
- Threshold: 200
- ComparisonOperator: GreaterThanOrEqualToThreshold
- Dimensions:
- - Name: DBInstanceIdentifier
- Value:
- Ref: DatabaseReplicaInstance
- AlarmActions:
- - Ref: StackAlarmTopic
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement