In this post, we will discuss the advantages of storing media content of your website on Amazon S3 and how MSP360 Explorer can help with this.
Overview
One of the typical ways to improve the scalability of a high traffic website is to serve its contents from several web servers.
For example, you may want to store your HTML files and dynamic script files at http://www.mysitecloudberry1.com/ while multimedia content such as images, video and audio files at http://media.mysitecloudberry1.com/
This way all request for HTML pages will go to first sever and requests for media content will go to the second one allowing each server to perform better under high load.
Let’s see how you can employ Amazon S3 as your second server. Amazon S3 offers you unlimited scalability and pay as you go model. You pay only for what actually is stored on your S3 account and pay only for the actual traffic. If the amount of data grows you pay more if it decreases you pay less. Same is with the traffic.
Amazon S3 can also act as a web server serving static content and this is where it comes handy. So instead of ordering another server to store your media content from your hosting provider you can sign-up for Amazon S3 account and move your images and video files there.
How to Get Amazon S3 Account and MSP360 Explorer
It takes just a couple of minutes to create your own Amazon S3 account. We have a corresponding blog post on this topic.
Further reading How to Sign Up for Amazon S3 Service and Connect to It with MSP360 Explorer
Click this link to download MSP360 Explorer S3 client.
Copying Files
Obviously, if you want to serve your media files from Amazon S3 you will have to copy your files to your Amazon S3 account. This is where you will need a client tool. There are many client tools available out there, but in this post, we will talk about MSP360 Explorer freeware.
Creating a Bucket
First, you will have to create a bucket that will have the same name as your domain name. for our example we will create a bucket called media.mysite.com, this will help us to configure a CNAME for the bucket and you will learn more about it later. Also, make sure the name of the bucket is in lowercase – this is a requirement if you want to serve files from your bucket.
Copying Files
Now you can copy files to your newly created bucket. Just select files on your local disk and click copy button on the toolbar.
Configuring Access Rights
To be able to serve your media files to internet users you will have to allow anonymous access to the files. You can do it easily by right-clicking the bucket and choosing the ACL Settings button in the menu.
ACL Editor will come up and you will have to grant “All Users” Read access to the bucket. “All Users” built-in group represents anonymous Internet users. Make sure the checkbox “Apply for all subfolders and files” is checked off as it will automatically propagate access rights to all files in the bucket and you won’t have to set them up one by one.
The ability to apply access rights to all objects in the bucket is one of the advantages of MSP360 Explorer over other tools.
Another cool feature is that you don’t have to care about access rights anymore - CloudBerry Explorer will apply bucket’s ACL to any new files copied to the bucket.
Generating URL
Now you have everything you need to start serving your files from Amazon S3. The syntax of the URL should conform to the following rule.
your files URLs will look like the following
MSP360 Explorer has an easy way to generate URLs for multiple files. Just select multiple files and click the “Web URL” button on the toolbar.
In the dialog box, you can see URLs for your files and you can click Copy to clipboard button to copy them and paste wherever you like.
Configuring CNAMEs
Would you like to be able to use a simpler link to your media files? Something like
http://media.mysitecloudberry1.com/verisign.bmp
Is this possible? Yes! This is where CNAME comes. I am not going to get into DNS internal but simply speaking CNAME is a way to create a subdomain and refer it to another location. In our case, we will refer a domain to the Amazon S3 bucket.
All you have to do is to configure appropriate CNAME in your hosting provider control panel. I use 1&1 but every hosting provider offers a way to create CNAMEs and you will just have to find out the details.
To create a CNAME record you will have to specify an alias media and s3.amazonaws.com domain. This is how it looks like in the 1&1 control panel:
It usually takes some time for DNS configuration to take effect, so the changes will not be available immediately.
Generating URLs with CNAME
Now you can start generating nice URLs using your newly created CNAME. Open the Web URL dialog box that you are already familiar with and type CNAME as indicated on the screen. You will see that all URLs will be automatically updated to include the CNAME.
That’s it. Now you are ready to update your HTML code with new URLs and improve the scalability of your web server by taking advantage of Amazon S3.
Automating Upload with PowerShell Command Line interface
If you are wondering how you can automate the process of copying the files to Amazon S3 you can check out MSP360 Explorer PowerShell command-line interface. It can automate most of the tasks available in MSP360 Explorer GUI.
There is also an open-source C# library called Resourceful that you can use to automate data transfer to S3. Click this link to download the library.
There is a huge number of 3rd party libraries for Amazon S3 available and those two are just examples.
Conclusion
As you could see Amazon S3 offers a great solution for hosting your media content while decreasing the load of your primary web server. There are some obvious advantages including pay as you go model and unlimited scalability. On the other hand, MSP360 Explorer can help copy files to S3 account, configure your files to be accessible by the web browser and automate the whole process.