AWS offers a range of potential benefits in cost, scalability, flexibility and reliability. Let's look at each one in detail: Cost Cost is one of the primary attractions to AWS. There are no upfront costs, and you only pay for what you use. Because the service has such huge amounts of computing resources to hand, it is able to allocate them as and when applications need them. You pay for what you use, and then when your application stops using resources, you stop paying for them. This point is where traditional hosting platforms can't really compete with a cloud service such as Amazon, particularly where a business, small or large, is undergoing change. The ability to use immense computing power without having to lay out an investment means smaller businesses can grow quickly. If your service only incurs costs when it is making money, this removes barriers that may otherwise have been prohibitive. The reason Amazon is able to offer this incredible value is simply the scale of the operation itself. Amazon has the resources to provide these services on a pay-as-you-go basis and will make money when the applications running on the platform make money, so they are able to pass the effect of this economy of scale onto their clients. It's a smart strategy, as they are creating an environment which makes innovation possible, and in those cases where it works, Amazon will naturally also reap the benefits – in other words it's win win. Scalability All business services have ups and downs in demand, particularly where new ventures are being explored. AWS-based systems are far more scalable than traditional hosted solutions. With non-cloud hosting packages, you typically have to pay for a set amount of storage, data transfer and other server utilities, whether or not these relate accurately to your operation. This off-the-shelf approach inevitably means that there are times when you're paying for more than you need. It also means that if your service undergoes sudden growth, you're faced with the immediate problem of not having enough available resources. Some hosts are better than others, but the process of upgrading can be a troublesome, time-consuming one. And what happens if all you've experienced was an isolated spike? If your business then reverts to a slower pace of uptake you're back to paying for more than you need. This is where the Amazon model offers real value, as systems can be scaled up or down on demand. Developers can engineer your systems to facilitate this scaling process in conjunction with Amazon's programming interfaces (APIs). Flexibility AWS allows developers to choose freely between the technologies available for delivering your systems. You can build applications using multiple languages and frameworks, communicating with other services as necessary - letting you choose the right implementation tools for each of your services. The fact that services are loosely coupled means that you can change approaches without significant maintenance issues in most cases. If your business undergoes major structural change, having your services deployed over the cloud puts you in a far better position to adapt. Reliability Reliability is obviously one of the central goals of anyone using, creating or supplying a hosting service. Unfortunately, it’s actually very hard to achieve – in particular, it gets harder and harder to achieve the closer you try to get to 100% reliability. Most traditional hosting companies quote reliabilities of 99.95%. Laypeople think this sounds good – but when you do the maths, it still leaves 5 hours downtime during a year – which is enough to create a headline when it happens to a major service, and enough to have a severe impact on a smaller one. Amazon’s approach to this problem is slightly different. They do not promise that their cloud servers will be 100% reliable. In fact, they specifically state that they won’t be. What Amazon does is provide a set of tools which their customers can use to design reliable systems. For example: - You can create Amazon cloud servers in multiple data centres.
- There is a tool (CloudWatch) which will generate alerts when a server stops working.
- You can design your system to make it restart servers.
What all of this means is that the system facilitates effective coping strategies for server failure, by accepting it as a reality and designing models to prevent it from impairing your services. AWS uses redundancy to deliver this improved level of reliability. Redundancy involves the system taking a copy of your server images so that your applications can continue functioning even if a server (or entire data centre) in the network goes down. The AWS cloud is particularly well positioned to implement this practice on account of its unique features, which we'll look at next. |