BioHPC Database
Where is the DB hosted
Our BioHPC database is hosted on cbsujohnson.biohpc.cornell.edu. Once you created a BioHPC account, you can ssh to the machine using
ssh <your NetID>@cbsujohnson.biohpc.cornell.edu
Then, if you run docker1 ps
, you can see the Docker container of our database
This container is created and run by Zack, one of our previous team members, and the script he used is located at /workdir/ztb5/mongo/
.
How to backup/restore the DB
Currently, the backup is done by a Cron job that executes the script /home/ts864/mongoDbBackup/dumpJob.s
h at 4:00 AM every day. The content of the script is provided below
# Scheduled to run daily at 4am. # Captures and stores the current state of the database. mongodump --uri="mongodb://mongodbuser:2TQFTnrQYb2yQFhYqnCUGxesurPISnXwhsFHyfP2cr4ILQeUk1@cbsujohnson.biohpc.cornell.edu:8001/?authSource=admin&readPreference=primary&appname=MongoDB%20Compass&ssl=false" \ -o=/home/ts864/mongoDbBackup/dumpData/dump-$(date +%Y-%m-%d) # Deletes backups created more than and including 7 days ago. find /home/ts864/mongoDbBackup/dumpData/dump-* -mtime +7 -delete
It is scheduled using command crontab -e
. The backups are stored in a /home
directory because BioHPC automatically backups home directories nightly.
To restore the backups to a target DB, run the following command
mongorestore --uri=<target DB URI> --drop path-to-backup-folder/
AWS
Lambda
For every Lambda, make sure to do the following configuration in the Configuration tab.
- In Configuration - VPC, use cu-cals-johnson-lab-vpc for VPC and use both cu-cals-johnson-lab-subnet-private-1 and cu-cals-johnson-lab-subnet-private-2 for subnets. This enables the Lambda to access public Internet.
- In Configuration - Permissions, use lambda-ex as the Execution Role.
EC2
The EC2 instances used for deploying backend services are created following the procedure starting from step 3 of this tutorial (https://medium.com/@umairnadeem/deploy-to-aws-using-docker-compose-simple-210d71f43e67) with the following modifications.
- When creating an instance, we reuse existing key pairs instead of creating new ones.
- We retrieve our codebase using git instead of scp.