Dictionary
The fine print of multicloud: where the analogy breaks across Azure, AWS and GCP, with official sources and verified Terraform.
Dead-letter queueasync-event
Destination for messages that couldn't be processed after N attempts, to inspect and reprocess them without blocking the main queue.
Azure
- Service Bus dead-letter subqueue ($DeadLetterQueue)
It's an automatic subqueue of every queue; not created separately.
AWS
- SQS dead-letter queue (redrive policy)
It's another SQS queue, linked via redrive_policy.
GCP
- Pub/Sub dead-letter topic
It's another topic, and it needs its own subscription so messages aren't lost.
⚠ Where the analogy breaks
All three move the message after N failed deliveries, but the 'container' differs: implicit subqueue (Azure), separate queue (AWS) or separate topic that needs a subscription (GCP). In GCP a dead-letter topic without a subscription drops the messages.
Event routingasync-event
Event bus that filters and routes events from services and applications to targets.
Message queueasync-event
Producer/consumer decoupling with guaranteed delivery and retries.
GCP
- Pub/Sub (pull subscription)
It is pub/sub; a pull subscription behaves as a competing-consumer queue.
⚠ Where the analogy breaks
Peek-lock (Service Bus), visibility timeout (SQS) and ack deadline (Pub/Sub) are the same mechanism: at-least-once delivery. None of them frees you from idempotent consumers.
Workflow orchestrationasync-event
Coordinating stateful steps with retries and branching without your own server.
API managementcompute-web
API gateway with authentication, quotas, transformation and developer portal.
⚠ Where the analogy breaks
API Management and Apigee are full platforms (portal, monetization, policies); Amazon API Gateway and Google API Gateway are lighter gateways. Comparing APIM with AWS API Gateway on price alone compares products in different categories.
Event-driven computecompute-web
Code/container execution triggered by events or messages, scaling to zero.
AWS
- AWS Lambda
- Amazon ECS on Fargate
Can go down to 0 tasks with Application Auto Scaling, but it is not native event-driven scale-to-zero.
Managed Kubernetescompute-web
Provider-operated Kubernetes control plane.
⚠ Where the analogy breaks
Pod identity is where they differ most: AKS uses Microsoft Entra Workload ID (OIDC federation), EKS uses Pod Identity or IRSA, and GKE uses Workload Identity Federation for GKE. The concept is the same (Kubernetes service account token → cloud identity), the configuration isn't.
Serverless container platformcompute-web
Run HTTP containers without managing nodes or clusters, with managed scaling.
Azure
- Azure Container Apps
Runs inside an environment, which is the network and logging boundary.
⚠ Where the analogy breaks
ACA and Cloud Run include HTTP ingress and scale to zero. ECS Fargate doesn't: ingress is a separate ALB (with fixed cost) and scaling comes from Application Auto Scaling.
Governance guardrailsgovernance
Organization-scale policies that restrict or audit how resources are configured.
Azure
⚠ Where the analogy breaks
Azure Policy evaluates resource configuration and can audit, deny or remediate (modify, deployIfNotExists). AWS SCPs don't look at configuration: they limit which API actions principals can use, and configuration compliance goes through AWS Config. GCP organization policies restrict configuration with predefined or custom constraints, without automatic remediation.
Cryptographic key managementidentity
Managed encryption keys (CMK) with access control, rotation and auditing.
⚠ Where the analogy breaks
In AWS key access is defined first by the KMS key policy (in addition to IAM); in Azure and GCP RBAC/IAM on the key or its container is enough. Copying IAM permissions without the key policy is the typical mistake when migrating to AWS.
External identity federation (OIDC)identity
Trust in tokens from an external IdP (GitHub Actions, GitLab, Kubernetes, another cloud) to exchange them for short-lived credentials, with no stored secrets.
Azure
- Workload identity federation (federated identity credential)
On a user-assigned managed identity or an app registration.
⚠ Where the analogy breaks
Where the trust rule lives differs. In Azure, each federated identity credential is an issuer + subject pair that must match exactly (no wildcards, up to 20 per identity). In AWS it's a trust policy with condition operators (StringEquals/StringLike). In GCP it's a CEL expression (attribute_condition) plus IAM bindings on mapped attributes.
Resource access controlidentity
Permission model over cloud resources: who can do what, at which scope.
⚠ Where the analogy breaks
Azure and GCP assign roles at a scope that's inherited downward (management group/subscription/RG in Azure; organization/folder/project in GCP). AWS evaluates identity and resource policies per request, with explicit deny always winning, and the hard boundary is the account.
Secrets storeidentity
Managed secret storage with access control, versioning and auditing.
⚠ Where the analogy breaks
Key Vault groups secrets, keys and certificates. In AWS that is split across Secrets Manager, KMS and ACM; in GCP across Secret Manager, Cloud KMS and Certificate Manager.
Workload identity (secretless)identity
Platform-assigned identity a workload uses to obtain short-lived tokens, with no stored keys.
⚠ Where the analogy breaks
aws_iam_role has no 1:1 Azure resource. In AWS the role bundles identity + trust policy + permissions (attached policies). In Azure the identity (Managed Identity) and the permission (role assignment on a scope) are separate objects. In GCP the Service Account is the identity and the permission is an IAM binding on the resource.
CDN and global entry pointnetworking
Edge caching and TLS termination, with WAF and global routing to origins.
⚠ Where the analogy breaks
Cloud CDN isn't a standalone service: it's enabled on a global external Application Load Balancer. Front Door and CloudFront are entry points by themselves.
Data perimeter (anti-exfiltration)networking
Control preventing PaaS data from leaving to identities or networks outside the organization, even with valid credentials.
AWS
No direct equivalent
There is no single service. AWS's 'data perimeter' is assembled from Organizations SCPs/RCPs, VPC endpoint policies and bucket policies with conditions (aws:PrincipalOrgID, aws:SourceVpce, aws:ResourceOrgID).
↗ docsGCP
- VPC Service Controls
Configured at organization level (Access Context Manager), not per project.
Hybrid DNS forwarding (inbound and outbound)networking
Entry points for on-premises to query the cloud's private zones, and rules for the cloud to forward corporate domains to on-premises DNS.
⚠ Where the analogy breaks
In Azure and AWS, inbound and outbound are endpoints with IPs in subnets that you pay for hourly even with zero queries. In GCP there are no endpoints: the inbound policy takes one IP from each subnet in the VPC and outbound is a forwarding zone, billed like any zone plus queries.
Internal HTTP ingressnetworking
HTTP(S) entry point reachable only from the private network (or connected networks), without a public IP.
⚠ Where the analogy breaks
In ACA and the internal ALB, the network is the access boundary. In Cloud Run, 'internal' restricts the network origin, but by default IAM (roles/run.invoker) is also required on every request: two controls, not one.
L3/L4 traffic filteringnetworking
Stateful/stateless rules that allow or deny traffic between network resources.
⚠ Where the analogy breaks
AWS Security Groups only have allow rules (stateful) and attach to interfaces; explicit deny lives in NACLs (stateless, per subnet). Azure NSGs have prioritized allow and deny rules attached to a subnet or NIC. In GCP rules belong to the VPC and target instances by network tags or service accounts.
Managed network firewall (L3-L7)networking
Stateful firewall as a service to inspect and filter traffic between networks, to the internet and from on-premises, with centralized rules and policy.
⚠ Where the analogy breaks
The deployment model differs. Azure Firewall is a resource that lives in a dedicated subnet of the VNet. Network Firewall creates endpoints in VPC subnets and traffic reaches them through route tables. Cloud NGFW transparently intercepts the traffic that a policy rule selects and sends the packets to a zonal firewall endpoint for layer 7 inspection.
Outbound filtering by domain (FQDN)networking
Allows or denies outbound internet traffic by destination domain name, not only by IP and port.
⚠ Where the analogy breaks
The mechanism differs. Azure Firewall application rules (HTTP/S and MSSQL) and Network Firewall domain lists (with TLS_SNI and HTTP_HOST, HTTP and HTTPS) rely on the SNI or the Host header. Cloud NGFW FQDN objects, and the FQDNs in Azure Firewall network rules, are resolved to IPs through DNS.
Outbound internet NATnetworking
Address translation so resources with no public IP can reach the internet from fixed public IPs, without accepting unsolicited inbound connections.
⚠ Where the analogy breaks
In Azure the NAT gateway is attached to the subnet and needs no routing configuration in its route table. In AWS it lives in a public subnet and private subnets need a route that points to it. In GCP it is configured on a Cloud Router and, per the docs, is not based on proxy VMs or appliances.
Private access to PaaS servicesnetworking
Consume a managed service (storage, queues, databases) from the private network without traversing the internet.
Azure
- Private Endpoint (Private Link)
Private IP in your VNet per resource. Billed per hour + GB. Requires a private DNS zone.
- Service Endpoints
Free; the service keeps its public IP but filters by source subnet.
AWS
- Gateway VPC Endpoint (S3, DynamoDB)
Free; a route table entry. S3 and DynamoDB only.
- Interface VPC Endpoint (PrivateLink)
ENI with a private IP, billed per hour per AZ + GB. Conceptual equivalent of Private Endpoint.
GCP
- Private Google Access
Per-subnet flag, free. VMs without public IPs reach Google APIs.
- Private Service Connect (Google APIs)
⚠ Where the analogy breaks
'Private Endpoint' (Azure), 'Interface Endpoint' (AWS) and 'Private Service Connect' (GCP) are conceptually the same. 'Service Endpoint' (Azure), 'Gateway Endpoint' (AWS) and 'Private Google Access' (GCP) are similar in being free, but do NOT do the same thing: none gives the service a private IP in your network.
Private and hybrid DNSnetworking
DNS zones resolvable only from private networks, and resolution between cloud and on-premises.
⚠ Where the analogy breaks
The private zone resolves inside the cloud; for on-premises to resolve Private Endpoint/interface endpoint names (and vice versa) all three need a separate component: Private Resolver, Resolver endpoints or an inbound server policy.
Virtual networknetworking
Isolated private network where resources live, with their own subnets and routing.
⚠ Where the analogy breaks
GCP's VPC is global with regional subnets; Azure's VNet and AWS's VPC are regional. In AWS each subnet lives in a single AZ; in Azure a subnet spans every zone in the region.
Centralized loggingobservability
Collection, querying and retention of platform and application logs.
In-memory cache (Redis)storage-data
Managed Redis/Valkey for caching, sessions and lightweight queues.
Managed PostgreSQLstorage-data
PostgreSQL as a service with managed backups, HA and patching.
⚠ Where the analogy breaks
Azure SQL Database is NOT the equivalent of RDS PostgreSQL (it is SQL Server). Comparing different engines invalidates any conclusion about auth or cost.
NoSQL document / key-value databasestorage-data
Serverless or provisioned database for JSON documents or low-latency key access.
⚠ Where the analogy breaks
The cost model is the first thing that breaks when translating: Cosmos DB bills Request Units (provisioned or serverless), DynamoDB read/write capacity (on-demand or provisioned) and Firestore per operation. A partitioning design that's cheap in one can be expensive in another.
Object lifecycle (TTL / tiering)storage-data
Declarative rules that expire or re-tier objects by age, prefix or tags.
⚠ Where the analogy breaks
None of the three is an exact TTL. They are asynchronous background processes; design assuming the object may still exist hours or days after it "expires".
Object storagestorage-data
Durable blob/object storage accessed over an HTTP API, billed by stored GB, operations and egress.
Azure
- Azure Blob Storage
Lives inside a Storage Account, which is the unit for networking, encryption and authentication.
AWS
⚠ Where the analogy breaks
In Azure, networking, encryption and auth settings live on the Storage Account (which holds N containers); in S3 and Cloud Storage they live on each bucket. A 'bucket' is not a 'container': it is closer to Storage Account + container.