cdk-rds-scheduler
Version:
Automatic Start and Stop Scheduler for AWS RDS
62 lines (47 loc) • 2.48 kB
Markdown
# CDK RDS Scheduler Construct
[](https://constructs.dev/packages/cdk-rds-scheduler)
This is a CDK construct for creating a schedule to periodically start and stop RDS (Aurora) clusters or instances.
It can be used to reduce billing outside of operational hours.

[](https://open.vscode.dev/badmintoncryer/cdk-rds-scheduler)
[](https://badge.fury.io/js/cdk-rds-scheduler)
[](https://github.com/badmintoncryer/cdk-rds-scheduler/actions/workflows/build.yml)
[](https://github.com/badmintoncryer/cdk-rds-scheduler/actions/workflows/release.yml)
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.npmjs.com/package/cdk-rds-scheduler)
## Usage
Install it via npm:
```bash
npm install cdk-rds-scheduler
```
Then use it in your CDK stack:
```typescript
import { RdsScheduler, Cron } from 'cdk-rds-scheduler';
import { TimeZone } from 'aws-cdk-lib/core';
// for DatabaseCluster
declare const databaseCluster: rds.DatabaseCluster;
new RdsScheduler(this, 'RdsClusterScheduler', {
cluster: databaseCluster,
schedule: [
// Operate only during daytime on weekdays
{
start: new Cron({ minute: '0', hour: '8', day: '?', weekDay: 'MON-FRI' }),
stop: new Cron({ minute: '0', hour: '18', day: '?', weekDay: 'MON-FRI' }),
timeZone: TimeZone.ASIA_TOKYO,
},
],
});
// for DatabaseInstance
declare const databaseInstance: rds.DatabaseInstance;
new RdsScheduler(this, 'RdsInstanceScheduler', {
instance: databaseInstance,
schedule: [
// Put the instance into a dormant state.
// As a measure for automatic start of Aurora, stop it every day.
{
stop: new Cron({ minute: '0', hour: '0', day: '?', weekDay: '*' }),
// timeZone is optional, default is UTC
},
],
});
```