Skip to main content

AWS RDS Database Running Scheduler

Project description

AWS RDS Database Running Schedule Stack

GitHub npm (scoped) PyPI Nuget GitHub Workflow Status (branch) GitHub release (latest SemVer)

View on Construct Hub

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-stack

install by yarn

yarn add @gammarers/aws-rds-database-running-schedule-stack

install by pnpm

pnpm add @gammarers/aws-rds-database-running-schedule-stack

install by bun

bun add @gammarers/aws-rds-database-running-schedule-stack

Python

pip install gammarers.aws-rds-database-running-schedule-stack

C# / .NET

dotnet add package Gammarers.CDK.AWS.RdsDatabaseRunningScheduleStack

Example

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

EMAIL

Slack

License

This project is licensed under the Apache-2.0 License.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file gammarers_aws_rds_database_running_schedule_stack-2.6.3.tar.gz.

File metadata

File hashes

Hashes for gammarers_aws_rds_database_running_schedule_stack-2.6.3.tar.gz
Algorithm Hash digest
SHA256 fc31c8de4e56bfba28deda9f496b6ff81bc5e99e4c458ac206f51546135faa11
MD5 1f2dfcc1ff0670affcdd8be9b7f8925d
BLAKE2b-256 0bd1ec2bc45739e5a9c8331528aaecb1e8e7680192fdd130d3d67930b182c2eb

See more details on using hashes here.

File details

Details for the file gammarers_aws_rds_database_running_schedule_stack-2.6.3-py3-none-any.whl.

File metadata

File hashes

Hashes for gammarers_aws_rds_database_running_schedule_stack-2.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2bacd2d7777f74af91a0737e74f10798c5f506b6c945425b9a3f0a03fc08fef1
MD5 b4c245d8cffd81d5e3a7ce5ad090e23c
BLAKE2b-256 2d19ba171f7f690a360ec7d8d1db121e51faeb82337aa59aca01415e4bc9c097

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page