Home Getting Started with Cloud and AWS — Regions, Availability Zones & IAM
Post
Cancel

Getting Started with Cloud and AWS — Regions, Availability Zones & IAM

Cloud computing has fundamentally changed how modern applications are built, deployed, and scaled. Before jumping into building on AWS, it is crucial to understand the foundational concepts — what the cloud is, why we need it, and how AWS structures its global infrastructure through Regions, Availability Zones, and IAM. This post walks through these fundamentals in detail.


Introduction to Cloud and AWS

What is Cloud Computing?

In traditional IT architecture, enterprises would purchase physical infrastructure sized for their peak load. Imagine an e-commerce application that sees massive traffic spikes during holiday seasons — say, 10,000 concurrent users — but handles only a fraction of that on normal days. To serve those peak moments, companies had to buy and maintain hardware capable of supporting that maximum load, even though most of the time that hardware would simply sit idle.

Challenges with Traditional Architecture

  • Low Infrastructure Utilization — Servers idle most of the time while being provisioned for peak load.
  • Ahead-of-time Planning — Predicting future peak load accurately is nearly impossible.
  • High Upfront Costs — Physical servers are expensive to procure.
  • Dedicated Maintenance Teams — In-house hardware requires ongoing operational overhead.

Why Use Cloud?

The cloud solves these problems with a simple principle: On-Demand Resource Provisioning. Instead of buying infrastructure, you rent it. You provision resources when you need them and release them back to the cloud when you don’t.

Key advantages of the cloud:

  • Pay-as-you-go — You only pay for what you use, for as long as you use it.
  • No upfront planning — React to demand as it comes in.
  • Managed services — AWS handles undifferentiated heavy lifting. Need a highly available, durable database? A few clicks in the console and you have one — no need to set up standbys, backup processes, or failover yourself.

Note: The most important challenge with the cloud is building a cloud-enabled application — one that takes full advantage of cloud primitives like elasticity, managed services, and global distribution.


Creating an IAM User for Your AWS Account

The root user of an AWS account has unrestricted access to everything. Because of this, AWS strongly recommends never using the root account for day-to-day activities. Instead, you should create an IAM user and work through that.

What is IAM?

IAM stands for Identity and Access Management. It is the AWS framework for managing digital identities and controlling access to AWS resources. IAM handles two core concepts:

  • Authentication — Verifying who you are (e.g., username + password, MFA).
  • Authorization — Controlling what you are allowed to do once authenticated (e.g., read S3 but not write).

Features of IAM

FeatureDescription
Shared AccessCreate separate usernames and passwords for individual users or applications
Granular PermissionsAllow downloads but deny updates — fine-grained policy control
MFA SupportMulti-Factor Authentication with one-time codes from a phone or hardware key
Identity FederationTrust external identity providers (Google, Facebook, corporate SSO)
Free to UseNo additional charge for IAM users, groups, or policies
PCI DSS CompliantMeets Payment Card Industry security standards
Password PolicyEnforce complexity rules, rotation schedules, and lockout policies

Components of IAM

Users

An IAM user is an identity with credentials and permissions. It can represent a human employee or an application. Each user belongs to exactly one AWS account, and by default, a newly created user has no permissions — access is explicitly granted.

Groups

An IAM group is a collection of IAM users. Instead of managing permissions user-by-user, you assign permissions at the group level and every user in that group inherits them. Adding a new user to the group automatically grants them all the group’s policies — dramatically reducing administrative burden.

Policies

IAM policies are JSON documents that define permissions — who can access what resources and what actions they can perform. There are three types:

  1. AWS Managed Policies — Pre-built, maintained by AWS (e.g., AdministratorAccess, ReadOnlyAccess)
  2. Customer Managed Policies — Custom policies you create and attach to multiple entities
  3. Inline Policies — Policies embedded directly into a single user, group, or role

Here is an example policy that grants read and write access to a specific S3 path:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": [
        "arn:aws:s3:::glue-demo-bucket-sudip/Read/moviesdata.csv*"
      ]
    }
  ]
}

Roles

An IAM role is a set of temporary permissions that any trusted entity (user, application, or AWS service like EC2 or Lambda) can assume. Unlike users, roles do not have permanent credentials. This makes them more secure — credentials are rotated automatically.

Best Practice: Whenever possible, use IAM Roles instead of long-lived access keys.


IAM Best Practices

  • Users — Create individual users; never share credentials.
  • Groups — Manage permissions through groups, not individual users.
  • Permissions — Grant least privilege — start with minimal access, add more as needed.
  • Password Policy — Enforce strong passwords with rotation requirements.
  • Auditing — Enable AWS CloudTrail to audit all IAM operations.
  • MFA — Enable MFA for all privileged users and the root account.
  • Roles — Use IAM Roles for EC2 instances instead of embedding access keys.
  • Rotate Credentials — Rotate security credentials regularly.
  • Root — Reduce or eliminate root account usage.

The Need for Regions and Availability Zones

To understand why AWS Regions and Availability Zones (AZs) exist, let’s trace the evolution of a hypothetical enterprise application.

Step 1: A Single Data Center

Imagine an application deployed in a single corporate data center in London.

Single Data Center in London A single data center in London serving users worldwide

Problems with this architecture:

  • High Latency — Users in Sydney, Mumbai, or New York experience slow access because all traffic has to travel to London.
  • Low Availability — If the data center crashes, the application goes down entirely.

Step 2: Adding a Second Data Center

To improve availability, we add a second data center — still in London.

Two Data Centers in London Two data centers in London for redundancy

Improvement: If one data center crashes, the other can still serve traffic. ✅
Remaining problems:

  • High latency for users outside London still persists ❌
  • If the entire London region is affected (e.g., a national calamity), both data centers go down ❌

Step 3: Multiple Regions

The solution is to deploy across multiple geographic regions.

Multi-Region Architecture Data centers spanning London and Mumbai for global availability and low latency

By adding a Mumbai region with its own pair of data centers:

  • Latency drops significantly for Indian users, who are now served from a nearby region.
  • Availability improves dramatically — even if all of London goes down, Mumbai continues serving the application.

This is the exact model AWS implements at global scale.


Introduction to AWS Regions

An AWS Region is a distinct physical geographical location around the globe. Each region operates independently and has:

  • Full redundancy — Each region has multiple data centers and independent network connectivity.
  • Data isolation — Data in one region does not automatically replicate to another; this is controlled by you.
  • AWS backbone connectivity — Inter-region communication uses AWS’s private global network, not the public internet.
  • Region-specific pricing — Prices vary between regions due to local operational costs and government regulations.

AWS currently operates 20+ regions across six continents (every continent except Antarctica). You can deploy your applications to any of them with a few clicks.

Services: Regional vs. Global

TypeExamplesBehaviour
Regional ServicesEC2, Lambda, S3, RDS, GlueCreated and operate within a specific region; you must select a region
Global ServicesIAM, CloudFront, Route 53Operate globally across all regions; no region selection required

Advantages of Multiple Regions

  • High Availability — If one region goes down, your application keeps running from another.
  • Low Latency — Serve users from the region nearest to them for faster response times.
  • Regulatory Compliance — Some governments require that citizen data be stored within national borders. Multiple regions let you comply easily (e.g., EU GDPR).

How to Choose the Right Region

When selecting an AWS region for your workload, consider these four factors:

  1. Data Governance & Legal Requirements — Local laws may restrict where data can be stored or processed (e.g., EU data protection directives, US government compliance).
  2. Proximity to Customers (Latency) — Choose the region closest to the majority of your users to minimize round-trip time.
  3. Service Availability — Not all AWS services are available in all regions. Verify your required services are present in your target region.
  4. Cost — Service pricing varies by region. Review the AWS pricing page for region-specific costs.

Availability Zones (AZs)

An Availability Zone (AZ) is an isolated physical location within an AWS Region. Every AWS Region contains a minimum of two AZs, and many have three, four, five, or even six.

Each AZ:

  • Contains one or more physical data centers (sometimes hundreds of thousands of servers)
  • Is connected to other AZs in the same region via low-latency, high-bandwidth, redundant private fiber
  • Is physically separated — different power grids, cooling systems, and flood plains — so a failure in one AZ does not cascade to others

AWS Availability Zones Multiple Availability Zones within a single AWS Region

Why Do We Need Availability Zones?

Even within a single country where regulations might restrict you to one region, AZs ensure high availability within that region. By deploying your application across two or more AZs in the same region, you can:

  • Survive a single AZ failure without downtime
  • Keep all data within the same country/region for compliance
  • Achieve redundancy with low-latency replication between AZs

AZ Naming Convention

AZs are named by appending a letter to the region code:

1
2
3
us-east-1a
us-east-1b
us-east-1c

Examples of AWS Regions and Availability Zones Examples of AWS Regions with their Availability Zone names


Summary

ConceptWhat it isWhy it matters
CloudOn-demand, rented infrastructureNo upfront costs, scale with demand
IAMIdentity & Access ManagementSecure, granular access control
AWS RegionGeographic cluster of data centersLatency, compliance, redundancy
Availability ZoneIsolated location within a regionHigh availability within a region

Understanding these foundational concepts is the first step to building reliable, scalable, and secure applications on AWS. In the next posts, we will dive into core AWS services like EC2, S3, VPC, and Lambda — building on this infrastructure foundation.


If you found this helpful, check out the rest of the AWS series for deeper dives into compute, storage, networking, and data services on AWS.

This post is licensed under CC BY 4.0 by the author.