Let’s now get into the nuts and bolts of the cloud. Let’s start with a common question—how does the cloud actually work? Well, that’s quite complicated, because the cloud can take various forms.
Different Types of Cloud Computing
The concept of the cloud is difficult to grasp for lots of people, and that’s because the term covers a wide range of concepts. To start with, I’m going to go through some useful terms that are used when talking about the wider cloud concept:
IaaS (Infrastructure as a Service): a service provider gives you access to some or all of their technical infrastructure, i.e., their servers. This is what Amazon used to do right at the beginning of the story I’ve just told you (they now provide other cloud services).
Analogy: imagine that you’re doing a road trip across the United States with three friends. You need a car, so you contact a car rental company. If the car has any technical problems, you just need to return it to the car rental company and they’ll give you another one. It’s not up to you to resolve problems with the car’s engine.
With IaaS, you’re delegating responsibility for hardware problems. However, if some other friends decide to join you along the way, you’ll need to request additional cars to transport the whole group.
PaaS (Platform as a Service): you don’t just get access to the infrastructure, the provider will also manage the number of machines needed for your application to work correctly based on differing volumes of traffic. You also have access to features such as databases, cache servers, email servers and so on.
Analogy: let’s go back to our road trip across the United States with a group of friends. With PaaS, you won’t be renting cars directly with the rental company. You’ll be using the services of a person whose job it is to check that the trip is all running smoothly. Let’s call this person the concierge.
If three new friends join you along the way, the concierge will notice this and will rent a second car without waiting to be asked. If 20 new friends want to join in with the road trip all at once, the concierge will replace the cars with a bus that will be chartered especially for you.
This is exactly what a PaaS service like AWS provides. It checks that the visitors to your site will have the best experience. Servers are added or withdrawn based on traffic. You could even ask for refreshments if you were thirsty!
SaaS (Software as a Service): you are given access to a software application as a service. Previously, you would have had to install the software on your own machine (e.g., Microsoft Office). These days, a lot of software is available as a web application (which is essentially a supercharged website). You just need to go to a web address and you can use it (e.g., Microsoft Office 365, Google Workspace, etc.)
All of these cloud service types provide different levels of service. Just like programming languages, some services are “low level” (closer to the machine code) and others are “high level” (abstract concepts that are further away from the machine functionality).
As an example, the below graphic groups various cloud services based on their type:
When Should You Start Using the Cloud?
Should you build your next website entirely on cloud infrastructure? Only you can decide. Here are a few factors to consider that will help you make an objective decision if you’re not sure whether to launch on a PaaS platform like AWS:
In most cases, you can start using the cloud for free. In the case of AWS, you can use the service free of charge for one year if you don’t use many resources. You should be able to take part in this course without paying, you’ll be pleased to hear!
If your website traffic increases, you don’t need to do anything. The site will automatically use more servers (and charge you for the privilege via pay as you go).
You won’t need to deal with any low-level technical problems, such as loss of a hard disk or even a whole server. All of this is invisible to you.
You’ll be able to make use of some really useful features without having to install and maintain a database server, email server and so on. Basically, you’ll save time on your own deployments.
However:
You’ll need to adapt your site so that it will work within the constraints and features provided by your PaaS. There are rules that need to be adhered to when developing your application. For example, you’re not supposed to store your files on the same server as your website. You need to store them on other servers using a file storage service.
If you want to change provider, it’s not just a case of drag and drop. You might need to recode some or all of your website so that it works on a different PaaS.
Technical bugs are rare but can still crop up, whatever the sales people might have you believe! Don’t just blindly trust your cloud service. Make sure you have SLAs (Service Level Agreements) in place so you have a financial guarantee that your website will work correctly, especially if the website is critical to your business. SLAs mean that the provider will have to pay penalty charges if your site doesn’t work for a period of time and it’s their fault.
The Amazon Web Services Ecosystem
Let’s get back to business. Who are these cloud providers? And what goes on inside the black box that is Amazon Web Services?
The Main Cloud Providers
Amazon Web Services may have been the first to launch cloud services, but others soon followed. They may be lagging behind in terms of usage, but it’s worth knowing who they are. Some notable examples:
Microsoft Azure
Google Cloud Platform (GCP)
The magic quadrant below includes both IaaS (Infrastructure as a Service) and PaaS (Platform as a Service) cloud providers:
The following graphic from 2021 gives you an idea of the market share for each provider:
With a 33% market share, Amazon has been dominating the cloud computing market since the very beginning.
Other providers such as Google, Microsoft and IBM have a smaller market share but are experiencing stronger growth. This is quite logical when you think about it. It’s easier to grow quickly when you’re smaller than when you’re already huge.
I’ve actually tried Google and Azure services as well as AWS. They provide some interesting rival services, but can’t compete when it comes to diversity of services. It’s clear that AWS is making the most of the fact that it was the first on the market, continuing to innovate to provide new services.
AWS Services
If you want to see the full range of services offered by AWS, just visit the AWS home page.
You should see something like this:
Each element you see here is a category and each category includes a number of services, all of which are component parts of the overall AWS offering:
Each of these services is a whole self-contained universe with its own rich functionality. It could take weeks or even months to fully understand and get to grips with just one of the services.
But, that’s awful! So many things to learn—I’ll never understand all that!
That’s exactly what I thought the first time I saw AWS (and at that time, there were only about a third of the current services you see here today). The good news is, you don’t need to know everything. You can’t know everything. No one can. There’s just too much information.
Relax and remember that it’s completely normal to feel overwhelmed when you see all these services listed.
However, there are a few essential services you should understand. Because I’m very kind, here they are for you!
EC2: Elastic Compute Cloud
This service manages servers as virtual machines in the cloud. Essentially, you can launch these servers and do exactly what you want with them. You also have access to them via command line, so you can manage them remotely.
This is IaaS (Infrastructure as a Service). We could dedicate a number of full courses to this service alone.
RDS: Relational Database Service
This enables you to manage databases stored in the cloud. This means that you have access to a preconfigured database server. Unlike EC2, you don’t have access to the command line, and that’s deliberate. It means that you can focus on using the database. Amazon is responsible for looking after server management for you (e.g., security updates and backups). This might not seem like much, but it can be a time saver.
S3: Simple Storage Service
Amazon S3 (Simple Storage Service) is a service that enables you to store and distribute files. It’s kind of like a low-cost file warehouse where your data is guaranteed not to get lost. Use it to upload files to your site or store images.
IAM: Identity and Access Management
AWS IAM (Identity and Access Management) is the gold standard in security services. This is where we can define access rules for AWS service users. If you want to grant permission to your accountant to download an invoice but not to power down the servers, this is the service you’d use.
… and so many others!
I’m itching to tell you about lots more services.
But I’ll just have to restrain myself! Let’s stay focused and concentrate on the essentials.
Let’s Recap!
Cloud computing services fall into several categories, from the fully flexible SaaS to IaaS with its high-level access to low-level infrastructure.
The biggest players in the cloud space are AWS, Microsoft Azure and Google Cloud Platform.
One of the main strengths of cloud computing is the pay-as-you-go model. You only pay for what you actually use.
In the cloud environment, you are delegating the low-level infrastructure management. All of this is invisible to you.
The main services we’re going to explore on this course are EC2, RDS, S3 and IAM.
So that’s all you need to remember for the moment! We’re going to look at these ever-popular services (EC2, RDS, S3 and IAM) on this course.