Pay for what you use
No need to buy expensive hardware upfront. You pay only for the computing power, storage, or services you actually use.
Cloud computing simply means using computing power (like servers, storage, and databases) over the internet, instead of buying and running your own physical machines.
Every app you use every day needs some kind of backend to work. When you open a video app, the video has to come from somewhere. When you order food online, your order details, payment, and delivery location all get stored and processed somewhere. When companies build AI chatbots or dashboards, they need huge amounts of computing power and storage. Earlier, companies had to buy physical servers, keep them in data centers, and handle cooling, electricity, security, backups, and hardware upgrades themselves. That was expensive and hard to scale.
Cloud computing solves this. Instead of buying servers, companies rent computing power, storage, databases, networking, and even AI tools from a cloud provider, and pay only for what they actually use.
Pay for what you use
No need to buy expensive hardware upfront. You pay only for the computing power, storage, or services you actually use.
Scales up and down
Got more users today? Add more capacity. Traffic dropped? Reduce it. You are never stuck with a fixed amount of hardware.
No hardware maintenance
The cloud provider takes care of the physical servers, cooling, electricity, and security of the data centers.
Available worldwide
Cloud providers have data centers all over the world, so you can put your app closer to your users for faster performance.
A cloud provider is a company that owns huge data centers and rents out computing resources to others. There are many cloud providers, but the two we will use as real-world examples throughout this guide are:
There are other cloud providers too, etc., but the ideas in this guide apply to almost all of them, because the concepts stay the same - only the names of the services change from provider to provider.
These are a few basic words you’ll see everywhere in the cloud, no matter which provider you use.
Every cloud provider needs a top-level container where your resources (servers, databases, storage, and so on) live. This container is usually called an account or a project. Whenever you create a server, a database, or a storage bucket, it belongs to this container. Companies often create a separate one for each application, so billing, permissions, and resources stay organized and easy to manage. Before creating anything in the cloud, you usually create or select this container first.
A region is a geographical location where the cloud provider’s data centers are available, for example, a region in Asia, Europe, or the US. A zone is a smaller location inside a region. Think of a region as a city, and zones as different buildings inside that city.
This matters because when you create a server or database, you choose where it should run. If most of your users are in one country, you want your resources closer to them, so the app feels faster.
API stands for Application Programming Interface. In simple words, an API lets one piece of software talk to another piece of software. For example, when you book a cab, the app might use a maps API to calculate distance. When you pay online, the app uses a payment gateway API. In the cloud, most services work through APIs, and you often need to turn on (enable) a service’s API in your project before you can use it.
IAM controls who can access what. Imagine your team has several people: one should only view reports, another manages servers, another handles billing. You don’t want everyone to have full control over everything - that’s risky. IAM lets you give the right permissions to the right people.
Cloud computing is never just one single service. It’s a combination of compute, storage, databases, networking, security, and monitoring, all working together to run a real application.
Compute simply means processing power - the CPU, RAM, and operating system needed to actually run your application. Whenever an app runs, it needs compute. Different apps need different levels of control, so cloud providers offer several different ways to run your code.
A virtual machine (VM) is like a computer that lives inside the cloud provider’s data center instead of sitting on your desk. You choose the operating system, CPU, RAM, and disk size. You get full control - you install your own software, configure the server, and manage security yourself.
Use it when you want full control over the server, like installing custom software or running an app exactly the way you want.
With a managed app hosting platform, you mainly focus on your application code. The provider manages the underlying infrastructure, scaling, and server maintenance for you.
Use it when you don’t want to manage servers yourself, and just want to deploy your code and let the platform handle the rest.
A managed container orchestration service runs and manages many containers for you - deciding where each container runs, restarting failed ones, and scaling automatically.
Use it for large, modern applications built with microservices and container-based deployments. We’ll cover this in detail in the next guide.
Serverless doesn’t mean there are no servers - it means you don’t manage them directly. You deploy your containerized app or a small function, and the provider runs it for you, automatically scaling up when there’s traffic and scaling down to zero when there isn’t.
Use it for apps or small tasks that only need to run occasionally, or when traffic is unpredictable.
| Generic Concept | AWS | GCP |
|---|---|---|
| Virtual Machine | EC2 | Compute Engine |
| Managed App Platform (PaaS) | Elastic Beanstalk | App Engine |
| Managed Kubernetes | EKS | GKE (Google Kubernetes Engine) |
| Serverless Containers | App Runner / Fargate | Cloud Run |
| Serverless Functions (event-driven) | Lambda | Cloud Run functions |
Beginners often confuse these two, so let’s clear it up first. Storage is used for files. Database is used for organized data.
For example, product images, videos, PDFs, invoices, backups, and audio files go into storage. But customer names, email IDs, order IDs, payment status, and prices usually go into a database.
Object storage is used to store files - images, videos, documents, backups, CSV files, machine learning datasets, and app assets. Files are stored as objects inside a bucket. A bucket is like a container or folder, but more powerful than a normal folder.
When you create a virtual machine, it needs a disk to store its operating system, installed software, and application files. This is a separate kind of storage that’s attached directly to one VM, unlike object storage, which is used for files in general and can be accessed from anywhere.
| Generic Concept | AWS | GCP |
|---|---|---|
| Object Storage (files, buckets) | S3 | Cloud Storage |
| Disk Storage (attached to a VM) | EBS | Persistent Disk |
A relational database stores data in tables, with rows and columns. For example, a shopping app might have a customer table, a product table, an orders table, and a payment table. Relational databases are best when your data is structured and you want to use SQL queries.
A NoSQL database is used when data is huge, changes quickly, and doesn’t fit neatly into tables. Instead of rows and columns, it stores data as documents or key-value pairs, which is useful for mobile apps, chat apps, and apps where the data structure can change over time.
Some NoSQL databases are built specifically for massive workloads, like millions of devices sending sensor data every second, or systems storing huge amounts of time-series data. These are designed for speed and scale, far beyond what a normal relational database can handle.
For companies with global users, huge transaction volumes, and a need for very high availability, some providers offer a database that combines relational database features with the ability to grow across large, worldwide infrastructure.
| Generic Concept | AWS | GCP |
|---|---|---|
| Relational Database (managed) | RDS | Cloud SQL |
| NoSQL Document Database (serverless) | DynamoDB | Firestore |
| Wide-Column NoSQL Database (massive scale) | DynamoDB / Keyspaces | Bigtable |
| Globally Distributed Relational Database | Aurora Global DB | Spanner |
Networking is how different systems connect and talk to each other. When a user opens a website, their request travels through the internet to a server, the server processes it, and sends the response back. Inside the cloud, networking decides how your virtual machines, databases, storage, APIs, and users all communicate.
A private network is your own isolated network inside the cloud provider, separate from everyone else’s. When you create resources like virtual machines, they need a network to communicate on. This private network gives you that space, and lets you control exactly which parts of your system can talk to which other parts - for example, letting only your backend server talk to your database, instead of exposing the database directly to the internet.
A load balancer spreads incoming user traffic across multiple servers. Imagine a busy restaurant with only one billing counter - the line gets too long. So the restaurant opens more counters, and a manager directs people to different counters. That manager is exactly what a load balancer does for your servers - if all traffic went to one server, it could slow down or crash, so a load balancer spreads it out.
A CDN delivers content faster by storing (caching) copies of it closer to your users, all around the world. If your main server is far away from some of your users, things can feel slow. A CDN keeps copies of your content - like images, videos, CSS, and JavaScript files - closer to users, so it loads faster.
DNS converts domain names into IP addresses. Humans remember names like example.com, but computers communicate using IP addresses. DNS connects the name to the correct server.
| Generic Concept | AWS | GCP |
|---|---|---|
| Private Network | VPC | VPC |
| Load Balancer | Elastic Load Balancer (ELB) | Cloud Load Balancing |
| CDN | CloudFront | Cloud CDN |
| DNS | Route 53 | Cloud DNS |
A data warehouse stores large amounts of data from many different sources, and lets teams analyze it, usually using SQL-like queries. For example, an e-commerce company might collect data from website visits, orders, payments, ads, customer support, and delivery, and bring it all into one place for analysis - answering questions like “which product sold the most last month?” or “which marketing campaign performed best?”
A messaging service lets different parts of a system talk to each other without connecting directly. One system publishes a message, and other systems subscribe to it and react. For example, when a user places an order, the order system can publish an “order placed” message, and separately, the payment service, inventory service, and email service can all pick it up and take their own action - instead of every system being wired directly to every other system.
A data pipeline service moves data from one place to another, while cleaning, transforming, and enriching it along the way. For example, raw website logs might not be useful directly - you may need to clean them, remove errors, convert formats, calculate metrics, and then load them into your data warehouse. This can process both batch data (in chunks) and streaming data (continuously).
A BI tool turns data into dashboards, charts, and reports for business teams, so they don’t need to write SQL queries themselves. For example, a sales manager can open a dashboard and instantly see monthly revenue, top products, sales by region, and customer growth.
| Generic Concept | AWS | GCP |
|---|---|---|
| Data Warehouse / Analytics | Redshift | BigQuery |
| Messaging (Publish / Subscribe) | SNS / SQS | Pub/Sub |
| Data Pipeline (batch and streaming) | Glue / Kinesis Data Analytics | Dataflow |
| BI / Dashboards | QuickSight | Looker |
A secrets manager stores sensitive information safely, like API keys, database passwords, tokens, and certificates. You should never write passwords directly inside your code - if the code leaks, the password leaks too.
Logging stores a record of what happened in your cloud services and applications - for example, “user logged in,” “payment failed,” “API took too long to respond.” When something goes wrong, logs help developers understand the problem.
Monitoring checks the health of your system. It tracks things like CPU usage, memory usage, error rates, latency, and overall service performance, and can alert you before your users start complaining.
| Generic Concept | AWS | GCP |
|---|---|---|
| Identity and Access | IAM | IAM |
| Secrets Manager | Secrets Manager | Secret Manager |
| Logging | CloudWatch Logs | Cloud Logging |
| Monitoring | CloudWatch | Cloud Monitoring |
Let’s connect everything with one simple example: building an e-commerce website.
This is how real applications are built on the cloud - it’s never just one single service, but many services working together.
Here’s a simple, generic path any beginner can follow to deploy and use the major services on either AWS or GCP.
Create an account: Sign up on the provider’s website. Both AWS and GCP (and most other providers, etc.) offer a free tier or free trial credits for new accounts.
Create a project (or account/organization unit): This is the container that will hold all your resources. Give it a clear name related to what you’re building.
Set up billing: Link a payment method, and set up a budget alert so you get notified before you spend more than expected. This step is easy to forget, but very important.
Set up IAM: If you’re working with a team, create separate users and give each one only the permissions they actually need. Avoid giving everyone full access.
Choose a region close to your users: This keeps your app fast for the people actually using it.
Launch your first virtual machine: Pick a small, free-tier-eligible machine type first, just to get comfortable with creating, connecting to (via SSH), and deleting a VM.
Create a storage bucket: Practice uploading and organizing files in object storage.
Create a small database: Try a relational database first, since it’s usually the easiest to understand for beginners.
Try a serverless function or managed app platform: Deploy a very small app or function without worrying about servers at all.
Turn on logging and monitoring: Get used to checking logs and dashboards early, so troubleshooting later feels familiar.
Clean up unused resources: Once you’re done testing, delete VMs, databases, and other resources you no longer need, so you don’t get charged for things you’re not using anymore.
| Category | Generic Concept | AWS | GCP |
|---|---|---|---|
| Basics | Account / Project Container | Account | Project |
| Compute | Virtual Machine | EC2 | Compute Engine |
| Compute | Managed App Platform (PaaS) | Elastic Beanstalk | App Engine |
| Compute | Managed Kubernetes | EKS | GKE |
| Compute | Serverless Containers | App Runner / Fargate | Cloud Run |
| Compute | Serverless Functions | Lambda | Cloud Run functions |
| Storage | Object Storage | S3 | Cloud Storage |
| Storage | Disk Storage (attached to VM) | EBS | Persistent Disk |
| Database | Relational Database | RDS | Cloud SQL |
| Database | NoSQL Document Database | DynamoDB | Firestore |
| Database | Wide-Column NoSQL (massive scale) | DynamoDB / Keyspaces | Bigtable |
| Database | Globally Distributed Relational DB | Aurora Global DB | Spanner |
| Networking | Private Network | VPC | VPC |
| Networking | Load Balancer | Elastic Load Balancer | Cloud Load Balancing |
| Networking | CDN | CloudFront | Cloud CDN |
| Networking | DNS | Route 53 | Cloud DNS |
| Data & Analytics | Data Warehouse | Redshift | BigQuery |
| Data & Analytics | Messaging (Pub/Sub) | SNS / SQS | Pub/Sub |
| Data & Analytics | Data Pipeline | Glue / Kinesis Data Analytics | Dataflow |
| Data & Analytics | BI / Dashboards | QuickSight | Looker |
| Security | Identity and Access Management | IAM | IAM |
| Security | Secrets Manager | Secrets Manager | Secret Manager |
| Monitoring | Logging | CloudWatch Logs | Cloud Logging |
| Monitoring | Monitoring / Metrics | CloudWatch | Cloud Monitoring |