Hosting content in the cloud can seem like a daunting task – but Amazon S3 makes life very simple for those needing cloud based storage. At the heart of Amazon’s cloud based solutions, they provide three principle services. Amazon EC2 (East Coast 2) is a virtual server farm where you can run virtual servers (other Amazon virtual farms have other names such as AP for their Asia Pacific data center). Amazon SQS which stands for Simplified Query Service which is their database equivalent. Lastly we have Amazon S3 which stands for Simplified Storage Service which is their content hosting and delivery service. In this article I want to focus in on the Amazon S3 service and how you can leverage it for your application, game or service.
Amazon S3 at its core is actually a very straight forward service. Think of it like an FTP server where you can perform get, put and delete operations on files. Each file within S3 is considered as an object and has a set of permissions and meta data that can be set to help control it.
The real golden goose of the service is that you can use it for many different purposes. If your application has a lot of media or large file size content then you can use S3 as a cost saver to serve those expensive static assets. Amazon allows you to set public viewing permissions as well as gives you control to header information to best serve your content. In essence your first step into the Content Delivery Network or CDN world.
Alternatively if your application requires lengthy backups that need to be preserved then Amazon S3 can be a very useful solution. Consider a scenario where you are required to create hourly backups of your database or data storage pool. Let’s assume a size of 10 gb for that data set. Due to the nature of the changes (or requirements) you have to take a full snapshot and not an incremental backup. The space you would need for a full days worth of backups is 240gb. For a month you would need roughly 7.2 tb. It’s not hard to see how quickly the price of this backup strategy can add up. Utilizing Amazon s3 you can quickly upload those backup files as compressed objects and literally forget about out them. No more changing out tapes, plugging in external hard drives, etc… These backups will exist in the S3 cloud until you remove them.
Amazon performs it’s pricing structure on a “break down” model. Meaning that it charges based upon the put actions, the get actions and the monthly storage size. While at first it might feel like you are getting penny pinched – this model actually allows for you to control your expenses as you really only pay for what you use.
If your usage is a set and forget operation such as the backup model above then your biggest charges will be on the long term storage. If you utilize s3 as a content delivery network then you will find the majority of your cost going to the get operations. In essence you are really on a “pay for only what you use” model instead of a blanket this is your monthly price model.
In the future we can dive more into other services and how you can use them to launch you online game or web service.