Web site backup comes with its own set of limitations and pitfalls. If you trust your web host for backup you might find your expectations fall short. Most hosts take daily backups – if any at all –on a secondary hard disk on the same server or, even worse, on a secondary partition of the same hard disk. If the server goes down due to a hardware fault, so does your backup. A few enlightened hosts also take backups on remote storage, for example NAS arrays. Even they do so on rather sparse intervals, for example twice per week. This means that on a complete catastrophe you will most assuredly lose a fair amount of data.
The solution is simple in concept. Take your own backups and store them on a cloud storage service, like Amazon S3. Taking your own backups means that you get to decide which data and how often has to be backed up, making sure that the crucial, regularly updated information routinely ends up in a backup archive. Using a cloud storage device adds a strong data safety clause to your procedure, while keeping costs low. Cloud storage is designed to be redundant and reliable, boasting a negligible risk of data corruption or data loss. Combined with its incredibly low cost, it is reasonably attractive to businesses of all sizes: from hobbyists and sole proprietorships up to large corporations and government agencies.
But how can you implement this seemingly utopist data protection scheme on your Joomla site today, with the lowest possible cost? Enter Akeeba Backup Professional. If you have never heard of us, we produce the leading edge, Open Source full site backup and restoration software solution for Joomla sites since 2006. The Professional edition sports significant features added on top of those offered to our free of charge Akeeba Backup Core edition (formerly known as JoomlaPack). One of those features we are going to use to accomplish our objective: transferring backup archives to Amazon S3.
Setting Up And Testing Your Cloud Backup
The most essential step is to download and install the Akeeba Backup Professional component to your site. In order to do that, you’ll have to subscribe to the Professional download service first. After that, simply follow the step-by-step installation instructions. You can try to take your first, non-cloud backup to make sure that everything’s in working order. If something goes wrong, just post as much information you can on Akeeba's support forum. The Akeeba support staff will get back to you in 24-48 hours. Usually, they'll reply in much less time, even on weekends and bank holidays.
Provided that you are in your Joomla administrator back-end, just click on the Components, Akeeba Backup menu item. In the Control Panel page which loads, click on the Configuration link. This will bring you to a quite lengthy configuration page. Locate the “Archiver Engine” setting in the pane titled “Advanced Configuration”. Click the button labeled “Configure…” next to it in order for the detailed settings to display. You should get something like this:
We will have to change just one option: “Part size for archive splitting”. Drag the slider to the right, trying to set a value of 20Mb. The slider is a little too sensitive; use it to get near to the 20Mb value, then use your keyboard’s right and left arrow keys in order to fine-tune the setting. This setting will chunk our backup archive into multiple files, the maximum size of each one being the value of this setting.
You might wonder why we need to do that. PHP always has a strict time limit, i.e. the maximum time a PHP page may process data before the web server aborts it. Uploading the backup archives to Amazon S3 takes time, the exact amount of which depends on the size of the file and the network speed. The time limit and the bandwidth are beyond our control, so we can change the only parameter we can touch in order to avoid timeouts: the file size. Akeeba Backup Professional is smart enough to upload each part of the backup archive on a PHP page load of each own, so as to avoid timing out.
Next up, it’s Amazon S3 setup time! Right below the “Archiver Engine” setting there’s another setting called “Data processing engine”. Use the drop-down to select the “Upload to Amazon S3” value and then click the button titled “Configure…” next to it. You should now see something like this:
In this configuration details pane you have to enter your Amazon S3 “Access key” and “Private key”. You should have been given those keys during your signup to Amazon S3. If you haven’t noted them down, just sign in to your Amazon S3 account and go to the “Security Credentials” page. You will find this information in the “Access Keys” section. Back to our configuration page, checking the “Use SSL” setting will make your data transfer over a secure, encrypted connection at the price of taking a little longer to process. I recommend turning it on anyway. The “Bucket” setting defines the Amazon S3 bucket you are going to use to store your backup into. The “Directory” defines a directory inside the bucket where you want the backup files stored and must have been already created.
Do note that as per S3 standards the path separator for the directory is the forward slash. For example, writing first_level\second_level is wrong, whereas first_level/second_level is the correct form. I recommend using one bucket for nothing but site backups, with one directory per site or subdomain you intend to backup. If you want to use a first-level directory, just type in its name without a trailing or leading forward slash.
Tip: should you need a visual interface for creating and managing Amazon S3 buckets, I highly recommend using S3Fox Organizer, a free plug-in for the FireFox web browser.
Enough said. Click on Save to store the changed settings. Back to the Akeeba Backup Professional Control Panel, click on the “Backup Now” icon. It’s backup time!
Ignore the warning about the “Default output directory in use”. We don’t need to care about it; our backup archives will end up securely stored on Amazon S3 anyway. Just click on the big “Backup Now!” button and sit back.
The upload to Amazon S3 takes place in the final step of the process, titled “Finalizing the backup process”. If during this stage you observe that the timeout bar – the bar which looks like a progress bar – fills all the way to the right, you have a timeout error. This means that you have to go back to the configuration and lower the “Part size for archive splitting” setting. Important note: on local testing servers you will have to use ridiculously small part sizes, in the area of 1-5Mb, as the xDSL consumer Internet service has a much more limited bandwidth than your host.
As you can see, I just backed up my personal blog to Amazon S3:

Where To Go From Here
Backing up your site to the cloud is the first step to backup autonomy and data safety. However, you still have to login to your site’s back-end to take a cloud backup. This is suboptimal. What about when you are on the road for days, without reliable Internet connection? What about not wanting to go through this daily drill?
I am 100% behind you on this. I don’t like routine either. You know, programmers are lazy and get bored easily.
With Akeeba Backup Professional you have three (that’s not a typo, three) different options to automate your backup! Two of them are designed to utilize your host’s CRON scheduling, i.e. your host’s ability to run specific commands on his server, on a predefined schedule. This would mean that your backup is fully automated; you sleep at night, your site backs up itself. However, not all hosts support this method, especially the low end ones. For these cases, we have made Akeeba Remote Control, a desktop application which makes backing up your site a single click procedure; or zero-click, if you use its built-in scheduling function.
You can read more about Akeeba Backup’s scheduling options in the “Automating your backup” section of our User’s Guide.
Overall, the Amazon S3 upload was our first, successful experiment in adding affordable, enterprise-grade qualities to full a site backup solution. Even though that’s years ahead of the competition, we do not settle with it. Akeeba Backup has always been in very active development. Our desire to push the envelope is a core ingredient of the philosophy behinf the software. As a result, S3 was just the beginning. Our roadmap includes support for several options of taking the backup off your server: remote FTP storage (think NAS arrays), email, Microsoft Azure, DropBox and many more as long as they have a publicized integration API. If you have a specific need not covered by our base software, just contact us. We listen carefully to the community feedback and we make the impossible happen. All that for a very low subscription fee to the Professional downloads service: 30 Euros for a whole year of free upgrades.
About The Author
Nicholas is a Mechanical Engineer turned web developer. Having worked as a business consultant in a major European consultancy firm for just over two years, he has developed a passion for automation of tedious procedures and optimization of workflows. Most known as the lead developer of Akeeba Backup (formerly JoomlaPack), one of our Extension Development Partners, he enjoys developing PHP and Joomla applications, as well as writing articles about those subjects. You can find his latest articles on his personal blog site at www.dionysopoulos.me.
Need Help With Joomla Backups?
We can help you setup a backup and restore plan for your Joomla site: Submit a Joomla Support Request.







