@gammarers/aws-rds-database-running-schedule-stack v2.5.13
AWS RDS Database Running Schedule Stack
This AWS CDK Construct Stack controls the starting and stopping of RDS DB instances and clusters based on specified tags, ensuring they only run during working hours. It uses EventBridge Scheduler to trigger a StepFunctions State Machine at the start and end of the working hours(default 07:50(UTC) - 21:10(UTC)), which then starts or stops the databases depending on the mode.
!WARNING v2.3.0: Stack props add option resourceNamingOption default ResourceNamingType.DEFAULT is cdk generated name f you want to maintain compatibility with versions below
v2.3.0, please include the following settings (ResourceNamingType.AUTO).new RDSDatabaseRunningScheduleStack(app, 'RDSDatabaseRunningScheduleStack', { targetResource: { tagKey: 'WorkHoursRunning', tagValues: ['YES'], }, resourceNamingOption: { type: ResourceNamingType.AUTO, // HERE }, });
Fixed
- RDS Aurora Cluster
- RDS Instance
Resources
This construct creating resource list.
- EventBridge Scheduler execution role
- EventBridge Scheduler
- StepFunctions StateMahcine (star or stop controle)
- StepFunctions StateMahcine execution role
Install
TypeScript
install by npm
npm install @gammarers/aws-rds-database-running-schedule-stackinstall by yarn
yarn add @gammarers/aws-rds-database-running-schedule-stackinstall by pnpm
pnpm add @gammarers/aws-rds-database-running-schedule-stackinstall by bun
bun add @gammarers/aws-rds-database-running-schedule-stackPython
pip install gammarers.aws-rds-database-running-schedule-stackC# / .NET
dotnet add package Gammarers.CDK.AWS.RdsDatabaseRunningScheduleStackExample
import { RDSDatabaseRunningScheduleStack, ResourceNamingType } from '@gammarer/aws-rds-database-running-schedule-stack';
new RDSDatabaseRunningScheduleStack(app, 'RDSDatabaseRunningScheduleStack', {
targetResource: {
tagKey: 'WorkHoursRunning', // already tagging to rds instance or cluster
tagValues: ['YES'], // already tagging to rds instance or cluster
},
enableScheduling: true,
startSchedule: {
timezone: 'Asia/Tokyo',
minute: '55',
hour: '8',
week: 'MON-FRI',
},
stopSchedule: {
timezone: 'Asia/Tokyo',
minute: '5',
hour: '19',
week: 'MON-FRI',
},
resourceNamingOption: {
type: ResourceNamingType.AUTO, // DEFAULT or AUTO or CUSTOM
},
notifications: {
emails: [ // "Incoming Sample Message - EMAIL"
'foo@example.com',
'bar@example.net',
],
slack: { // "Incoming Sample Message - EMAIL"
webhookSecretName: 'example/slack/webhook',
},
},
});Incoming Sample Message

Slack

License
This project is licensed under the Apache-2.0 License.
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
9 months ago
1 year ago
9 months ago
1 year ago
9 months ago
9 months ago
1 year ago
9 months ago
8 months ago
8 months ago
8 months ago
8 months ago
1 year ago
11 months ago
1 year ago
1 year ago
10 months ago
1 year ago
11 months ago
1 year ago
10 months ago
1 year ago
10 months ago
1 year ago
11 months ago
11 months ago
12 months ago
12 months ago
11 months ago
12 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago