This blog shows you how to backup your website hosted on Host4Geeks Indian datacenter, using BountySite.
My Personal Review on Host4Geeks
We used Host4Geeks reseller account to run some tests on live hosting servers. I am going to quickly highlight some facts, that I observed:-
- Indian DC: If your site visitors are in India, then you ought to have your hosting server located in India. Definite plus for Indian Hosting market.
- Good uptime : I have never seen a downtime in last one year(2018-2019), while using it. Besides we are not really running anything live.
- Support response time: I have usually received a response within 2-3 hrs of opening a support ticket. Mostly, my issues with opening firewall port for mysql backups, till they finally blocked it for security reasons, to upsell VPS.
- Regular auditing: They seem to run frequent(not sure how frequent) by which they blocked our IPs running mysql backup. Good to see such a practice, especially in a shared hosting environment.
- Portal customization: I see lot of customization on the WHMCS control panel, with some useful shortcuts.
My overall rating : 4.0/5
Time to configure backup on BountySite
Here is a step by step process to configure backup. Sample domain used for this testing is nsite.eseckraft.com. The site is running Wordpress 5.0.3, with total size 64MB, with following plugins:-
Contact Form 7
The idea is to simulate live running site as much as possible.
From within your control panel, go to add site from either of the below options:-
- From Top bar, Wizard drop down menu, Add Site.
- From Sidebar, second submenu Manage sites and backup , choose Add Site.
On Add Site page, we add nsite.eseckraft.com.
We will subscribe for trial service, by choosing Services from sidebar, and choosing Free Trial.
The closest storage node for Indian DC is Bangalore Enterprise Plan.
We choose the plan and click on free trial, to apply for 7 days free trial plan.
The package is instantly provisioned and post provisioning, we are notified with the status.
Usually provisioning is done instantly, and should not take more than 5 minutes. You will receive notification over mail or will show up in notification messages.
Top bar -> Under Notifications -> Notifications.
Click on subject corresponding to sitename, to see details.
Now that the package has been provisioned, it is time to configure backups. From Sidebar, second submenu Manage sites and backup , choose Configure Backup.
- FTP protocol - FTPS. Host4Geeks supports FTPS optionally, and it is recommended to not use FTP, as it is clear text protocol, which is vulnerable to sniffing.
- FTP hostname - nsite.eseckraft.com. We are using this site in our example, and hence we will use this name to connect to run backups.
- FTP port - 21. Default FTP port, on which FTPS also runs on.
- Click on Next to go to next page
- FTP Web directory - /public_html. Host4Geeks uses CPanel, which has public_html as default place, where document root of website is. BountySite focuses on website security, and hence we are concerned with website files only.
- FTP Login user name - my_ftp_user_name
- FTP Login password - my_password
- Click on Verify FTP Details to confirm if everything is working fine
- Click on Next to go to next page
- Ignore file name pattern - This is used to ignore temporary files and log files, if any. For example .log will ignore files containing string ".log" in filename. We will leave it blank.
- Ignore directory name pattern - Similar to filename pattern, but ignores directories instead of filenames. For example logdir will ignore directories containing "logdir" in folder name. We will leave it blank.
- MySQLOverPHPS - Host4Geeks does not allow remote MySQL backups, as they are firewalled and not allowed even on request, for a shared hosting environment. With MySQLOverPHPS, we provide with a you script, which helps running backup securely over HTTPS. This is safer than directly backing up database. Click on Download button, to download a script which has been generated specifically to work with the current site only. BountySite sends DB credentials over PHP HTTPS URL to securely download database contents. In our case, the name of the file downloaded is 5f4362da.php. We FTP to the remote server and upload this script into a new folder named somefolderkdo827.
Our URI for calling the Database backup script is /somefolderkdo827/5f4362da.php.
Click on Finish to complete the backup configuration. BountySite automatically configures database, by reading config files for Wordpress. So, post web file backup, database credentials are encrypted and auto populated in storage db. Database backup starts immediately post file backup.
Run an instant backup
Post successfully configuring backup, the page redirects to Backup History, where we can now run a backup. Click on Schedule Backup Now button to instantly run a backup.
Check Backup Logs
You can view logs of your backup job, by opening Backup Log page from Sidebar -> View Logs -> Backup Logs.
All default timezone is set to GMT. You can view in your local timezone, by clicking on Topbar -> Settings -> Switch between GMT and your timezone to toggle between GMT and your local timezone.
I ran few tests with different size and number of files. 10K files with 220MB took 40 minutes to backup. Incremental backups took 5min. The round trip time between storage and hosting node is about 38ms. I reckon the slowness is due to bandwidth limitation on hosting server side. Bandwidth is costly in India, and I assume there is some throttling. I ran another test with 3K files, 64MB for which full backup took about 29min. Incremental backup took 2 minutes. I reckon this the best speed, when it comes to cloud based backup. I can beat this speed with customized storage solution reducing latency to few ms, and speed down to less than a minute per GB.
22 Feb 2019 : I further investigated the slowness(well, in my view) in backup and I found the below reasons:-
- BountySite uses protected data mode for file transfers for FTPS; meaning the download file is encrypted and not sent in clear text. SSL negotiation adds few round trips to the data channel. SFTP is a lot faster.
- With 10,000+ files downloads, there were n x 10K round trips, which added delay. With lesser number of files(generally 2,000-3,000), full backup would have been lot more faster.
- I haven't yet confirmed of any bandwidth throttling per session, but very likely for Indian DC.