Cloud, cloud, cloud. It’s all we ever hear about at the moment! But what is it? What’s it for?
Amazon Web Services (AWS) is, in fact, a cloud solution. It’s a service that gives you access to cloud computing mechanisms so that you can make the most of their features when hosting your next website.
Before we do anything else, you need to have a good high-level understanding of cloud principles, so in this first chapter, I’ll explain what the cloud is and how it works.
Discover the Relationship Between Servers and Cloud Computing
Let’s be clear about this to start off with. “Cloud” is first and foremost a marketing term. That’s why you hear it so frequently. Even though this is a course about the cloud (and to some degree, about how great it is!), I’d like to just help sharpen up your critical analysis skills.
Where did the name cloud come from? How did we discover and implement these new techniques? Let me give you a potted history of the cloud based on the story of Amazon Web Services.
We’ll need to go back a few years to July 2002. Amazon’s online sales website is really taking off. It started out as an online bookseller, but over time grew to a size where you could buy anything, from computer games and speakers through to clothing and shoes. To stay abreast of changes and an ever-growing client base, Amazon needed to build itself a huge technical infrastructure to deal with this growth, which meant servers. Lots of servers.
A site like Amazon needs to be hosted on countless servers that are grouped into huge warehouses known as data centers. All large websites have their own data centers and Amazon is no exception to this rule.
It looks like something out of a sci-fi movie, but this is the kind of place where the very biggest websites in the world are hosted. Well, okay then, perhaps we retouched the photo just a little!
Each vertical structure you see is known as a server rack. Inside each one, you can easily accommodate 20, 30 or even 40 servers. Let’s take a closer look:
Servers are computers like any other. They have USB ports, Ethernet ports and, of course, a power switch.
However, they are flat (so they can be stacked on top of each other) and they are almost never attached to a screen, as they are managed remotely. They are generally known as rack servers.
Where Did the Cloud Come From?
To meet ever-increasing demand, Amazon needed to understand how to standardize and automate the management of tens of thousands of servers located all over the world. They quickly realized how valuable this innovation could be to other businesses, both economically and technologically.
A developer would no longer need to buy a whole raft of servers, like Amazon did, just to cater for potential peaks in traffic. They could simply ask to use more servers temporarily at times when they have the most visitors. Amazon would take care of everything, making the right machines available, configuring them and replacing the ones that malfunction. Essentially, this means that the developer can focus on their business while Amazon manages their IT equipment and infrastructure in the most efficient way.
This simple yet highly attractive idea soon came to dominate the technology market, with the cloud becoming the star of the show.
AWS currently consists of millions of servers throughout the world, distributed between multiple data centers owned by Amazon and located in the United States, Europe and Asia, among others. These data centers have been mushrooming over the past few years.
How does this differ from a hosting service where you can rent servers?
In traditional hosting, also known as on-premise hosting, you purchase or rent your own servers. You can legitimately say when you enter the server room in your company or data center: “These servers are all mine!”
Amazon engineers had the idea of “hiding” the server’s visibility and only selling processing power and storage. Of course, in the end, it’s still a real server that responds to your requests. A server plugged into a power supply with a hard disk and everything! But the difference is that you don’t know which server is responding to your requests. Sometimes, the underlying server will switch to a different server during the course of the day without you being aware. But that’s fine, what matters is that your website continues to function.
The idea behind this functionality is that you no longer need to worry about physical hardware problems. If a hard disk fails, it’s not up to you to replace it.
This is where the cloud (or cloud computing) came from. There’s nothing mysterious about it. There are still servers, processors, memory and hard disks. But instead of renting a particular server with a particular serial number, you rent “server power.”
What Do We Mean by Shared Responsibility?
As you’ve probably gathered, the real power of any cloud service lies in taking the low-level server management tasks away from the client.
That’s all well and good, but what happens if there’s a fault or a security breach?
Well, that depends on the AWS service you’re using and the type of fault that’s occurred. This is why we talk about a shared responsibility model.
Let’s take a simple example where we give AWS full responsibility for managing our servers and databases. We have no control over any components, the only thing we can do is update the website’s PHP code. In this scenario, if there is a Linux security breach on the machine hosting our website, it’s clearly AWS’s responsibility to correct this fault.
If, however, there is a vulnerability in our PHP code, it’s down to us to resolve the issue. Our website depends on us to provide secure application code and on AWS to keep servers updated in a secure data center, and so on.
This is the shared responsibility model.
AWS’s specific responsibilities vary from one service to another (e.g., Amazon S3 or Amazon RDS). The golden rule is that if you have control of something, it’s your responsibility.
Let’s Recap!
The power of the cloud lies in the flexibility it provides for engineers and developers. You no longer rent a machine for a fixed period of time. You simply rent the processing power you need.
The cloud is still built on physical machines, you just delegate the server management to a third party.
The supplier’s responsibility varies depending on which service they provide. The more control you have over your service components, the more responsibility you have.
In the next chapter, I’ll be taking you through various different types of cloud services.