Cronjob sounds great. I would use the S3 to store the backup files.
For backing up the site, I'd use 2 different solutions. Daily DB backup with Cronjob, and another one is instance snapshot. Installed NodeBB on a Docker instance, and what I need to do is that commit the instance once a week, output it as .tar file, store it somewhere reliable.
For image assets, I prefer offshore storage like the S3, so the instance snapshot won't be really big in size..