Both Amazon AWS and Microsoft Azure are popular cloud platforms that offer virtual machines, storage, databases, and developer tools to run applications on the cloud.
These platforms provide IaaS (Infrastructure as a Service) and PaaS (Platform as a Service), helping developers deploy, manage, and scale applications.
Programming on Amazon AWS
(a) Amazon EC2 – Virtual Machine Service
- EC2 stands for Elastic Compute Cloud.
- It allows users to rent virtual machines (VMs) on-demand.
- VMs are created using templates called AMIs (Amazon Machine Images).
- Users can start, stop, and terminate instances as needed and pay only for the hours used.
AMI Creation Steps:
Create AMI → Create Key Pair → Configure Firewall → Launch Instance
(b) Amazon S3 – Object Storage Service
- S3 stands for Simple Storage Service.
- It stores data as objects inside buckets.
- Each object is accessed using a unique key.
Key Features of S3:
- Highly durable (99.999999999% durability)
- Supports REST and SOAP APIs
- Secure with access control lists (ACLs)
- Data transfer within the same AWS region is free
- Pricing depends on storage size and bandwidth

(c) Amazon EBS – Block Storage
- EBS = Elastic Block Store
- Used to store persistent data even after EC2 is stopped.
- Acts like a hard disk and supports block-level access.
- Allows creation of snapshots to back up data.
- Multiple volumes can be attached to one EC2 instance.
(d) Amazon SimpleDB – NoSQL Database
- A schema-less database service, simpler than RDS.
- Data is stored in domains (similar to tables).
- Each item = row, and each attribute = column.
- Allows multiple values for a single attribute (unlike traditional RDBMS).
- Best suited for small, structured datasets or metadata storage.
- It’s a “LittleTable” compared to Google’s BigTable.
(e) Additional AWS Services
Service | Purpose |
---|---|
SQS | Simple Queue Service – handles messaging between processes |
SNS | Simple Notification Service – sends alerts or messages to users |
CloudWatch | Monitors AWS resources like CPU, disk, and memory usage |
Elastic Load Balancer | Distributes traffic across multiple EC2 instances |
Auto-scaling | Automatically adds/removes EC2 instances based on demand |
Programming on Microsoft Azure
(a) Azure Compute Roles
- Azure has two main compute roles:
- Web Role – for hosting web applications (like IIS)
- Worker Role – for background jobs or processes
Role Lifecycle Methods:
OnStart()
– initializationRun()
– main logicOnStop()
– clean shutdown
Roles support HTTP(S) and TCP, and are load balanced like AWS.
(b) SQL Azure – Cloud Database Service
- Provides Microsoft SQL Server as a service on the cloud.
- Similar to RDS in AWS.
- Supports full relational database features.
- Storage is replicated 3 times for fault tolerance.
- Accessed using SQL commands or REST APIs.
(c) Azure Storage Services
Storage Type | Description |
---|---|
Blob Storage | For storing large files, media, backups |
Page Blobs | Random read/write access (e.g., for disks) |
Block Blobs | Optimized for streaming large files |
Blobs are organized as:
Account → Containers → Blobs (Page or Block)
(d) Azure Table Storage – NoSQL Service
- Similar to SimpleDB in AWS.
- Stores structured NoSQL data in the form of tables.
- Each record is called an Entity, and columns are Properties.
- Supports PartitionKey and RowKey:
PartitionKey
helps group related dataRowKey
is a unique ID for the entity
- Ideal for storing small-scale structured data.
- Data access is done using LINQ or ADO.NET.
(e) Azure Queues – Message Queues
- Used to communicate between web and worker roles.
- Each message is max 8KB.
- Supports Create, Read, Delete operations.
