Difference between revisions of "AWS vs Azure"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "**for most greenfield projects, standard microservices, and general container workloads, Fargate is the default best choice.** The reduced configuration, lack of node managem...")
 
 
Line 1: Line 1:
 +
Here is how the core AWS services map directly to their Azure counterparts across key infrastructure categories:
 +
 +
### Core Service Mapping
 +
 +
| Category | AWS Service | Azure Equivalent | Description |
 +
| --- | --- | --- | --- |
 +
| **Compute** | **EC2** | Virtual Machines (VMs) | On-demand virtual instances/servers. |
 +
|  | **AWS Lambda** | Azure Functions | Event-driven serverless compute. |
 +
|  | **Elastic Beanstalk** | Azure App Service | Managed PaaS for web app deployment. |
 +
| **Containers** | **EKS** | Azure Kubernetes Service (AKS) | Managed Kubernetes engine. |
 +
|  | **ECS / Fargate** | Azure Container Apps / ACI | Serverless container execution. |
 +
|  | **ECR** | Azure Container Registry (ACR) | Docker/OCI image repository. |
 +
| **Storage** | **S3** | Azure Blob Storage | Scalable object storage. |
 +
|  | **EBS** | Azure Managed Disks | Block storage attached to compute instances. |
 +
|  | **EFS / FSx** | Azure Files | Fully managed network file shares (NFS/SMB). |
 +
|  | **S3 Glacier** | Azure Archive Storage | Cold/archival storage for backups. |
 +
| **Databases** | **RDS** | Azure SQL Database / Flexible Server | Managed relational databases (PostgreSQL, MySQL, SQL Server). |
 +
|  | **DynamoDB** | Azure Cosmos DB | Fully managed NoSQL key-value/document database. |
 +
|  | **ElastiCache** | Azure Cache for Redis | In-memory caching. |
 +
| **Networking** | **VPC** | Virtual Network (VNet) | Isolated private cloud networking. |
 +
|  | **Route 53** | Azure DNS | Managed DNS routing service. |
 +
|  | **Direct Connect** | Azure ExpressRoute | Dedicated private link to on-premise hardware. |
 +
|  | **ALB / NLB** | Application Gateway / Load Balancer | Layer 7 (HTTP/HTTPS) and Layer 4 load balancing. |
 +
| **Identity & Security** | **AWS IAM** | Microsoft Entra ID (Azure AD) + RBAC | Identity management, auth, and role definitions. |
 +
|  | **AWS KMS** | Azure Key Vault | Key, secret, and certificate management. |
 +
|  | **AWS Shield / WAF** | Azure DDoS Protection / Web Application Firewall | DDoS defense and application security. |
 +
| **Analytics & AI** | **Redshift** | Azure Synapse Analytics | Cloud data warehousing. |
 +
|  | **Amazon SageMaker** | Azure Machine Learning | Platform for building, training, and deploying ML models. |
 +
|  | **AWS Glue** | Azure Data Factory | Managed ETL and data integration pipelines. |
 +
 +
---
 +
 +
### Key Structural Differences
 +
 +
* **Identity Model:** AWS centers permissions around IAM policies attached to users/roles via JSON documents. Azure heavily relies on Microsoft Entra ID with Role-Based Access Control (RBAC) applied across standard scope hierarchies (Management Groups → Subscriptions → Resource Groups → Resources).
 +
* **Resource Management:** Azure mandates that every resource resides within a **Resource Group** for unified lifecycle management. AWS tags resources globally or groups them logically, but lacks the strict single-container grouping model native to Azure.
 +
 +
 +
 
**for most greenfield projects, standard microservices, and general container workloads, Fargate is the default best choice.**
 
**for most greenfield projects, standard microservices, and general container workloads, Fargate is the default best choice.**
  

Latest revision as of 15:46, 1 August 2026

Here is how the core AWS services map directly to their Azure counterparts across key infrastructure categories:

Core Service Mapping

Category AWS Service Azure Equivalent Description
Compute EC2 Virtual Machines (VMs) On-demand virtual instances/servers.
AWS Lambda Azure Functions Event-driven serverless compute.
Elastic Beanstalk Azure App Service Managed PaaS for web app deployment.
Containers EKS Azure Kubernetes Service (AKS) Managed Kubernetes engine.
ECS / Fargate Azure Container Apps / ACI Serverless container execution.
ECR Azure Container Registry (ACR) Docker/OCI image repository.
Storage S3 Azure Blob Storage Scalable object storage.
EBS Azure Managed Disks Block storage attached to compute instances.
EFS / FSx Azure Files Fully managed network file shares (NFS/SMB).
S3 Glacier Azure Archive Storage Cold/archival storage for backups.
Databases RDS Azure SQL Database / Flexible Server Managed relational databases (PostgreSQL, MySQL, SQL Server).
DynamoDB Azure Cosmos DB Fully managed NoSQL key-value/document database.
ElastiCache Azure Cache for Redis In-memory caching.
Networking VPC Virtual Network (VNet) Isolated private cloud networking.
Route 53 Azure DNS Managed DNS routing service.
Direct Connect Azure ExpressRoute Dedicated private link to on-premise hardware.
ALB / NLB Application Gateway / Load Balancer Layer 7 (HTTP/HTTPS) and Layer 4 load balancing.
Identity & Security AWS IAM Microsoft Entra ID (Azure AD) + RBAC Identity management, auth, and role definitions.
AWS KMS Azure Key Vault Key, secret, and certificate management.
AWS Shield / WAF Azure DDoS Protection / Web Application Firewall DDoS defense and application security.
Analytics & AI Redshift Azure Synapse Analytics Cloud data warehousing.
Amazon SageMaker Azure Machine Learning Platform for building, training, and deploying ML models.
AWS Glue Azure Data Factory Managed ETL and data integration pipelines.

Key Structural Differences

  • Identity Model: AWS centers permissions around IAM policies attached to users/roles via JSON documents. Azure heavily relies on Microsoft Entra ID with Role-Based Access Control (RBAC) applied across standard scope hierarchies (Management Groups → Subscriptions → Resource Groups → Resources).
  • Resource Management: Azure mandates that every resource resides within a Resource Group for unified lifecycle management. AWS tags resources globally or groups them logically, but lacks the strict single-container grouping model native to Azure.

for most greenfield projects, standard microservices, and general container workloads, Fargate is the default best choice.

The reduced configuration, lack of node management (no OS patching, no AMI rotations, no cluster autoscaling setup), and per-task scaling make it the lower-overhead option for developer velocity.

However, saying it’s only when resources are "mostly pegged" misses a few critical non-cost boundaries where Fargate simply cannot be used or becomes significantly more expensive.


Non-Cost Constraints (When Fargate Is Not an Option)

Sometimes you must use EC2 regardless of price or utilization:

  1. GPU / Specialized Hardware Workloads: Machine learning inference/training (NVIDIA GPUs), high-performance media encoding, or AWS Inferentia/Trainium hardware require EC2 instance types. Fargate doesn't support GPU pass-through.
  2. Custom Daemon / Host-Level Monitoring: If you rely on daemonsets/agents that must run at the host OS level (e.g., specific kernel-level eBPF tracing, custom security agents, or system-wide log forwarders), Fargate’s serverless boundary prevents host access. Sidecar containers are required on Fargate instead.
  3. Privileged Mode & Kernel Tweaks: Tasks requiring Linux --privileged access, custom kernel module loading, raw network sockets, or sysctl modifications are blocked by Fargate’s isolation boundary.
  4. Extreme Local Disk I/O: Fargate task storage tops out at 200 GB of ephemeral storage. If your app requires terabytes of high-speed local NVMe scratch disk (like i3en or z1d instances), you need EC2.

Cost Decision Matrix

                    Is the workload continuous & predictable?
                                  /          \
                                 /            \
                                YES            NO (Bursty / Batch / Variable)
                               /                \
      Are you running high-volume baseline?      -->  Use FARGATE
                 /          \                         (Zero idle capacity waste)
                /            \
              YES             NO
              /                \
    Are you using 3-yr Savings  -->  Use FARGATE 
    Plans + tight bin-packing?       (Engineering time > ~20% savings)
            /
          YES
          /
     Use EC2
(Save up to 50%+)


Summary Checklist

Dimension Default Choice Shift to EC2 when...
Operational Effort Fargate (Zero node maintenance) You already have robust node automation (e.g., Karpenter/Cluster Autoscaler) and dedicated DevOps resource.
Scale Mechanism Fargate (Fast task provisioning) Scaling is predictable and you can handle warm node pools.
Hardware Fargate (Standard CPU/ARM + RAM) You require GPUs, host storage, or kernel/privileged access.
Cost at Scale Fargate (No waste from idle nodes) Your monthly compute bill is large enough ($5k–$10k+/mo) that saving 30–50% pays for the engineering time to manage nodes.