-
Notifications
You must be signed in to change notification settings - Fork 16.3k
Description
Description
I think adding the following operators/sensors would benefit companies that need to start/stop RDS instances programmatically.
| Name | Description | PR |
|---|---|---|
RdsStartDbOperator |
Start an instance, and optionally wait for it enter "available" state | #27076 |
RdsStopDbOperator |
Start an instance, and optionally wait for it to enter "stopped" state | #27076 |
RdsDbSensor |
Wait for the requested status (eg. available, stopped) | #26003 |
Is this something that would be accepted into the codebase?
Please let me know.
Use case/motivation
1. Saving money
RDS is expensive. To save money, a company keeps test/dev environment relational databases shutdown until it needs to use them. With Airflow, they can start a database instance before running a workload, then turn it off after the workload finishes (or errors).
2. Force RDS to stay shutdown
RDS automatically starts a database after 1 week of downtime. A company does not need this feature. They can create a DAG to continuously run the shutdown command on a list of databases instance ids stored in a Variable. The alternative is to create a shell script or login to the console and manually shutdown each database every week.
3. Making sure a database is running before scheduling workload
A company programmatically starts/stops its RDS instances. Before they run a workload, they want to make sure it's running. They can use a sensor to make sure a database is available before attempting to run any jobs that require access.
Also, during maintenance windows, RDS instances may be taken offline. Rather than tuning each DAG schedule to run outside of this window, a company can use a sensor to wait until the instance is available. (Yes, the availability check could also take place immediately before the maintenance window.)
Related issues
No response
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct