parent
e3694f4e36
commit
c336b85a0a
1 changed files with 46 additions and 0 deletions
@ -0,0 +1,46 @@ |
||||
--- |
||||
title: 'Automated DB Backups' |
||||
description: 'Setup a scheduled workflow to backup a Database every 12 hours' |
||||
isNew: false |
||||
sort: 15 |
||||
difficulty: 'intermediate' |
||||
nature: 'Backups' |
||||
skills: |
||||
- 'bash' |
||||
- 'devops' |
||||
seo: |
||||
title: 'Automated DB Backups' |
||||
description: 'Setup a scheduled workflow to backup a Database every 12 hours' |
||||
keywords: |
||||
- 'Backup' |
||||
- 'Database' |
||||
- 'MongoDB' |
||||
roadmapIds: |
||||
- 'devops' |
||||
--- |
||||
|
||||
The goal of this project is to setup a scheduled workflow to backup a Database every 12 hours and upload the backup to [Clouodflare R2](https://developers.cloudflare.com/r2/) which has a free tier for storage. |
||||
|
||||
## Requirements |
||||
|
||||
The pre-requisite for this project is to have a server setup and a database ready to backup. You can use one of the projects did in [the other project](/projects/multi-container-service). Alternatively: |
||||
|
||||
- Setup a server on [Digital Ocean](https://m.do.co/c/b29aa8845df8) or any other provider |
||||
- Run a MongoDB instance on the server |
||||
- Seed some data to the database |
||||
|
||||
Once you have a server and a database ready, you can proceed to the next step. |
||||
|
||||
### Scheduled Backups |
||||
|
||||
You can do this bit either by setting up a cron job on the server or alternatively setup a [scheduled workflow in Github Actions](https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#schedule) that runs every 12 hours and execute the backup from there. Database should be backedup up into a tarball and uploaded to [Clouodflare R2](https://developers.cloudflare.com/r2/). |
||||
|
||||
Hint: You can use the `mongodump` to dump the database and then use `aws cli` to upload the file to R2. |
||||
|
||||
### Stretch Goal |
||||
|
||||
Write a script to download the latest backup from R2 and restore the database. |
||||
|
||||
<hr /> |
||||
|
||||
Database backups are essential to ensure that you can restore your data in case of a disaster. This project will give you hands on experience on how to setup a scheduled workflow to backup a database and how to restore it from a backup. |
Loading…
Reference in new issue