Week 2 of Learning Cloud Development: Amazon EC2

This week has been packed. I learned so much that I had to pause several times to let things sink in. I spent most of my time trying to understand Amazon EC2, and honestly, it’s starting to make sense now.
EC2 stands for Elastic Compute Cloud, and it’s basically how AWS lets you rent virtual machines. The compute here means the processing power needed to run apps, manage data, or perform calculations. You don’t need to own a physical server somewhere, you can just spin one up on the cloud, use it as long as you need, and shut it down when you’re done. It really shows how flexible cloud computing is.
So, these virtual machines you rent are what we call EC2 instances. Think of them as your own little servers, except they are inside AWS data centers. You can host your applications on them, scale up when your app starts to grow, or scale down when you no longer need that much power. It’s literally computing on demand.
How EC2 Works (from how I understood it)
The process is simple on the surface:
You launch an instance.
You connect to it.
You use it.
But behind that simplicity is a lot going on. When you launch an instance, you decide things like what operating system it runs (Linux, Windows, etc.) and the kind of instance type you want because not all EC2 instances are created equal. That’s where I got curious.
The Different Types of EC2 Instances
I discovered that there are five main categories of instance types:
General Purpose Instance are balanced for compute, memory, and networking. This is what you start with when you’re not sure what exactly you’ll need.
Compute Optimized are best for CPU-heavy tasks like simulations, scientific modeling, or machine learning.
Memory Optimized are for workloads that need a lot of memory, like databases or big data analytics.
Accelerated Computing have GPUs or other hardware accelerators for things like video rendering, floating-point calculations, or pattern recognition.
Storage Optimized are for tasks that need super-fast access to large amounts of locally stored data, like data warehousing.
The more I learned, the more I realized how customizable the cloud is. You literally choose what kind of virtual machine fits your need.
My Favorite Part — The Naming Convention
At first, I kept seeing instance names like C7GN.2xlarge and wondered, who came up with this code language? But after reading and practicing, I finally understood it.
Here’s how I break it down:
The first letter (like
C) represents the series or family. In this case, compute optimized.The number (
7) is the generation. So it’s the 7th version of that instance.The next part (
GN) stands for a specific instance option.The
.2xlargepart shows the instance size, meaning how much CPU and memory you get.
So, C7GN.2xlarge basically means: a compute-optimized instance from the 7th generation, with a certain GPU/network optimization, and the 2xlarge size configuration.
Multi-Tenancy and What That Even Means
I also came across something called multi-tenancy in cloud computing. These are multiple virtual machines (VMs) that can share the same physical host machine, but they still act like they’re independent. They don’t interfere with each other, and that’s made possible by a software called the hypervisor.
The hypervisor’s job is to manage these VMs, making sure they’re isolated and safe, even though they share the same hardware. That isolation is what makes cloud environments secure and efficient at the same time.
Scaling
Another interesting thing is how EC2 instances can scale. Imagine you start small or maybe your app is just getting a few users but as traffic grows, you can upgrade your instance type to get more memory or CPU power. That’s vertical scaling.
However, if you ever need more than one instance, like multiple servers running the same app, that’s horizontal scaling. I’ll get deeper into that later.

Amazon EC2 Pricing (This Part Took Me a While )
After wrapping my head around instance types, I went into EC2 pricing and it’s more layered than I expected. AWS gives you options depending on your workload and budget.
There are six main pricing models: On-Demand, Savings Plans, Spot Instances, Reserved Instances, Dedicated Hosts, and Dedicated Instances.
Here’s how I understood them:
On-Demand is when you just pay for what you use, no commitments. It’s perfect for testing or short-term workloads. It costs more per hour, but you’re paying for freedom.
Savings Plans let you save up to 72% if you commit to a consistent amount of compute usage (in dollars/hour) for 1 or 3 years. It’s best for predictable workloads.
Spot Instances are the discount section of AWS. You can get unused capacity for up to 90% off, but the catch is that AWS can take it back anytime with no warning. So, it’s great for jobs that can handle interruptions like testing or data analysis.
Reserved Instances (RIs) let you reserve capacity for 1 or 3 years and save up to 75%. It’s great for continuous workloads like apps that always need to be running.
Dedicated Hosts are entire physical servers reserved just for you. No one else’s workloads will run on that machine. You get full visibility and control, which makes it great for compliance-heavy or licensing-specific workloads (like SQL Server). You pay per host.
Dedicated Instances also run on hardware dedicated to your account, but you don’t control the physical server, AWS manages that. You pay per instance instead. It’s best for isolation when you don’t need hardware-level control.

The main difference between Dedicated Hosts and Dedicated Instances is visibility and control. Dedicated Hosts give you both while Dedicated Instances just give you isolation.

What I Took Away This Week
Learning about EC2 helped me see how much is going on behind something as simple as launching a website. Even the pricing models alone show how AWS is built for flexibility, whether you’re just testing an idea or managing a global app.
I’m only in week two, and it already feels like my brain has opened a new tab every day but I like it. It’s starting to connect. This week, i’ll be going deeper into scaling EC2, and directing traffic with Elastic Load Balancing.
I’m just documenting as I go, so if you’re also learning cloud, maybe this helps you feel less overwhelmed.
Until tomorrow, ciao 😁




