I would arrange some sort of backup server and use something rdiff-backup
to backup on a file level. Then also set up daily local dumps with mysqldump
. Having file level backups allows for easy recovery of the most prevalent of errors: human error.
You could achieve the same with a separate volume, but then you could be completely wiped out when Amazon has a problem, or somebody gains access to your account.
BTW, do not have the PHP code writable to the webserver. Have them be owned by a separate user (including the docroot dir itself!) and use wp-cli. Then restrict PHP with an open base dir to its docroot. And, put a HTTP password on wp-login.php
and /wp-admin
(though that is harder, because some assets are loaded from there).
See the recent Linux Mint hack.