Most cross-cloud comparisons tell you what a service is called somewhere else.
This one tells you what breaks when you assume it works the same way, and it says so on
every row.
38 graded mappings, 16 colliding terms and 21 exams.
Free and open source, with primary sources and explicit caveats.
Cloud Foundations
AWS, Microsoft Azure and Google Cloud provide computing services that you configure and use through consoles, APIs and automation. This guide compares architectural behavior. It does not assume a certification or prior experience.
Imagine a photo-sharing application. A person uploads a photo, adds a caption, and later views it. The architecture has six decisions:
Decision
What the application needs
Compute
Run the code that checks an upload and responds to requests
Storage
Keep the photo as an object; query captions and ownership as database records
Networking
Decide which endpoints are public and how services reach each other
Identity
Authenticate people and give the application narrowly scoped permissions
Availability
Decide what should keep working after a machine, zone or region fails
Cost
Estimate usage, storage, requests, replicas and data transfer; set budgets and alerts
These are requirements, not a claim that every application needs the same products. The architecture atlas draws a logical request flow and three provider-specific implementations. They are alternatives, not a requirement to deploy to all three clouds.
What You Still Manage
A managed service reduces some operational work; it does not remove responsibility for data, access or configuration. In SaaS, customers still control user access, data handling and available application settings. IaaS generally also leaves the guest operating system and application stack to the customer. The exact division depends on the service. AWS shared responsibility, Azure shared responsibility, Google shared responsibility.
Customer duties remain across IaaS, PaaS and SaaS: protect data, manage access and configure available controls. Guest OS management is normally customer responsibility in IaaS and provider responsibility in managed PaaS and SaaS. Service-specific shared duties remain. Open full-size SVG
Vocabulary for the Next Chapter
Term
Meaning
Region
A geographic service location. Availability, supported features and prices depend on the region
Zone
A failure domain within a region. Resilience requires distribution and recovery, not just selecting a zone
Egress
Outbound data transfer. Charges depend on source, destination, service and allowances
Managed service
A service whose provider operates some infrastructure or software layers for you
Elasticity
Adjusting capacity to demand, within configured and available limits
Availability
Whether a service can successfully serve requests when needed
Durability
Whether stored data remains intact; different from immediate accessibility
RTO / RPO
Recovery time objective and recovery point objective: target recovery time and tolerable data-loss window
Treat pricing, quotas and service availability as design inputs to check, not constants to memorize. A cheaper storage rate may be outweighed by retrieval or transfer costs. A replicated database can still replicate an accidental deletion.
Learn the Provider Boundaries
An AWS account, an Azure subscription and a Google project are useful starting points for resource administration, but they are not interchangeable billing and identity systems. Resource models explain those differences before the service catalogue.
Already know one provider: use the decoder and architecture atlas to test which assumptions transfer.
Studying for an exam: use the exam map to find official objectives.
Market-share estimates and adoption surveys are not architecture requirements. Earlier research notes retain their historical context; they are not evidence that a provider is the best choice for this application.
Resource Ownership, Identity and Geography
Three questions need three answers: who administers a resource, where it runs, and which identity can access it. Billing is a related fourth question. Drawing all four as one nested hierarchy teaches the wrong model.
Administrative parentage only. Optional OUs, management groups and folders group workload boundaries. Regions and zones are not children in this tree. Open full-size SVG
The arrows in this drawing mean administrative parentage. They are not network connections. Optional intermediate groups are labelled. Regions and zones do not belong in this tree.
Provider
Workload administration
Related systems
AWS
An account contains resources and IAM configuration; Organizations groups accounts
Organizations supports consolidated billing. Workforce access can come from Identity Center or another identity provider
Azure
Management groups organize subscriptions; resource groups contain resources deployed at resource-group scope
A subscription trusts an Entra tenant. Billing accounts and agreements form a separate billing hierarchy
Google Cloud
An organization can contain folders and projects; projects contain workload resources
Projects link to billing accounts. Directory administration and resource IAM are separate responsibilities
Each subnet belongs to its virtual network. AWS subnets occupy one zone; Azure and Google subnets are regional. A network does not own geographic zones. Open full-size SVG
An AWS VPC is regional and its subnets each occupy one Availability Zone. An Azure VNet and its subnets are regional. A Google VPC is global and its subnets are regional. A Google project owns network resources; it does not own geographic regions. A VPC does not own a zone. AWS subnets, Azure VNets, Google VPCs.
A global network can connect regional resources; it does not make those resources global or resilient to regional failure. Routing, firewall rules and authorization still apply.
Grouping and Deletion
Object
What deletion means
AWS Resource Group
Removes the group, not its member resources
AWS organizational unit
Accounts and child OUs must first be removed or moved
Azure resource group
Requests deletion of members; locks, dependencies and service behavior can prevent completion
Google folder
Must be empty before deletion; it does not recursively delete projects
Google project
Starts shutdown and a recovery period; some resources may not be recoverable. Project IDs cannot be reused
An Azure availability set separates fault and update domains within a datacenter; it is not a multi-zone design. To tolerate a zone outage, place enough capacity in other zones and ensure clients, data and dependencies can fail over. A single VM in a zone remains a single VM. Azure availability sets.
AWS AZ names can map differently across accounts. Use AZ IDs to align physical locations when sharing resources. Do not replace “can differ” with “always differ.” AWS AZ IDs.
Quotas and Names
Nesting depth, project-creation quotas and resource-name rules are service-specific. Check current limits when designing an organization. S3 general-purpose bucket names, for example, are unique within an AWS partition; not every S3 bucket type has identical naming rules. AWS Organizations quotas, Azure management groups, S3 naming.
Identity and Access
Goal: explain who can act, what they can do, and where the permission applies. Start with cloud foundations if these terms are new.
An identity represents a person or a workload. Authentication establishes that identity; authorization decides whether its request is permitted. A principal is the identity making a request. A scope is the resource or collection to which a grant applies.
Same Word, Different Object
AWS STS issues temporary role-session credentials after successful role assumption. Azure RBAC and Google IAM assign a permission set to a principal at a scope; conditions and denies still apply. Open full-size SVG
The nearest translation runs the other way from the name: an Azure or Google role is closest to an AWS managed policy, and an AWS role is closest to a service principal or service account. The categories match; the trust and credential mechanisms do not. AWS · Azure · Google
Directory Administration Is Not Workload Access
Provider
Directory or workforce administration
Access to cloud resources
AWS
IAM Identity Center administration
Permission sets grant access through roles in target accounts
Azure
Microsoft Entra directory roles
Azure role-based access control (RBAC) assignments
Google Cloud
Workspace or Cloud Identity super administrator
Organization and resource IAM roles
For Azure, Global Administrator does not itself grant access to virtual machines. An elevated administrator receives User Access Administrator at root scope and can assign the needed resource roles. For Google, Organization Administrator manages organization IAM; it is not unrestricted access to all workloads. Keep recovery administration separate from routine work. AWS workforce access, Azure elevation, Google separation of duties.
How to Evaluate an AWS Request
First identify the principal, resource, account relationship, action, and applicable policies. Identity and resource policies can grant access; boundaries and organization policies constrain it. An applicable explicit deny overrides an allow. The interaction depends on context, so a single six-step “every layer must allow” rule is misleading. AWS evaluation logic.
Worked decision: an identity grant constrained by a boundary
Assume an IAM user requests s3:PutObject. Its identity policy allows that action, but its permissions boundary allows only s3:GetObject. There is no resource-policy grant and no other policy grants or restrictions in this example. Denied: the identity grant is limited by the boundary. Adding another identity allow does not expand the boundary.
Worked decision: a same-account resource grant
Assume an S3 bucket policy grants s3:GetObject directly to an IAM user's ARN in the same account. The user's identity policy and boundary omit that action, but neither explicitly denies it. No other applicable control restricts the request. Allowed: this kind of direct resource grant is not limited by those implicit denies. Naming a role ARN instead changes the analysis. AWS boundary and principal rules.
These are deliberately bounded examples, not advice to use IAM users for application credentials. For real requests also consider cross-account access, session policies, organization controls, resource-specific settings, conditions, and explicit denies.
Example A: identity allows PutObject but boundary allows only GetObject, so deny. Example B: same-account bucket policy directly grants an IAM user GetObject, so omission from identity policy and boundary alone does not block it. No other restrictions are assumed. Open full-size SVG
Inherited Grants in Azure and Google Cloud
Assigning a smaller role at a child resource does not subtract a grant inherited from its parent. An Azure Reader assignment on a resource group does not reduce a subscription-level Contributor grant. In Google Cloud, a project-level Viewer grant does not reduce inherited Editor access. Deny controls and conditions can restrict effective access; changing an allow grant alone is not the same operation. Configuration governance (Azure Policy or Google Organization Policy) answers a separate question from who may perform an operation. Azure access model, Google resource hierarchy, Google deny policies.
Give the Application an Identity
Workload
AWS
Azure
Google Cloud
Virtual machine
IAM role through an instance profile
Managed identity
Attached service account
Container application
ECS task role
Managed identity
Service identity on Cloud Run
Kubernetes workload
EKS Pod Identity or workload federation
Microsoft Entra Workload ID
Workload Identity Federation for GKE
An Azure system-assigned managed identity follows the resource lifecycle; a user-assigned identity is independent and can be shared. A Google service account is both an identity and a resource: permission to attach or impersonate it differs from the permissions it exercises. Prefer attached identities or federation to distributing long-lived keys, where the workload supports them. AWS instance profiles, Azure managed identities, Google service accounts.
Check Your Understanding
A photo service needs to create objects in one bucket. Does giving it an organization-wide administrator role solve the problem well?
Answer and reasoning:
It may grant sufficient access, but it grants far more than the task needs. Give the workload an identity and an object-creation permission at the appropriate resource scope. Check whether it also needs to read, overwrite, or delete objects before adding those permissions. A role's name is not evidence that its permissions fit the task.
Networking: Reachability Is Not Authorization
A successful request needs name resolution, a route, permitted traffic, a listening service and application authorization. A private address alone establishes none of the other four.
AWS VPCs and Azure VNets are regional. Google VPC networks are global. AWS subnets are zonal; Azure and Google subnets are regional. Defaults depend on account or project creation and organization policies, so inspect the actual network instead of assuming a default exists. Network and location drawing.
Traffic Filtering
AWS security groups are stateful allow-only while network ACLs are stateless allow/deny. Azure NSGs are stateful at subnet or NIC. Google VPC firewall rules belong to a network and target VM interfaces. Open full-size SVG
Control
Association or target
State and rule behavior
AWS security group
Network interfaces of supported resources
Stateful allow rules; no explicit deny
AWS network ACL
Subnet
Stateless, numbered allow/deny rules; first match wins
Azure NSG
Subnet, interface, or both
Stateful allow/deny rules; lower priority number evaluated first
Google VPC firewall rule
Defined on a network, applying to selected VM interfaces
Stateful allow/deny; priority and rule interactions matter
A new AWS security group has no inbound rules, while a default security group allows inbound traffic from members of that group. Default and custom network ACLs also have different initial rules. In Azure, custom NSG rules have higher precedence than built-in defaults. In Google, a deny takes precedence over an allow at the same priority; omitted targets mean all instances in the network, while supported selectors include network tags and service accounts. AWS security groups, AWS ACLs, Azure NSGs, Google firewall rules.
To block an address while broad AWS security-group allows remain, select a suitable deny-capable control. An ACL is one option; a network firewall or application-layer rule may better match the traffic and inspection requirement. A stateless ACL needs explicit return-path rules.
Outbound Access
For IPv4 internet access, choose an explicit egress path and inspect routes and firewall rules. AWS has both zonal and regional NAT gateways. Regional automatic mode can expand across workload zones, but expansion is not instantaneous and regional NAT does not support private NAT. Azure NAT Gateway behavior depends on SKU and configuration. Google Cloud NAT provides translation through distributed networking rather than a NAT VM in the packet path. AWS regional NAT, Azure NAT, Google Cloud NAT.
A NAT gateway is not a way to accept unsolicited inbound requests. Public IPs, proxies and load balancers have separate purposes. IPv6 egress has different design options.
Connecting Networks
Ordinary VPC/VNet peerings are not transit routers. A-to-B and B-to-C peering alone does not create A-to-C reachability. Address overlap and route exchange restrictions vary by provider and address type. Use a supported transit design for a hub network. AWS peering, Azure peering, Google peering.
Direct Connect, ExpressRoute and Cloud Interconnect provide private connectivity options; private connectivity is not a universal promise of encryption. Verify encryption, routing, redundancy and failure behavior for the selected connection.
Accessing Managed Services Privately
Consumer clients connect to a private endpoint in their network, which connects to a supported provider service outside that consumer network. AWS interface endpoints, Azure private endpoints and Google PSC endpoints need correct DNS, routes and permissions. Open full-size SVG
Mechanism
Important distinction
AWS gateway endpoint
Route-based S3 or DynamoDB access; no endpoint fee; not accessible through VPN, Direct Connect or peering
AWS interface endpoint
Endpoint interfaces for supported PrivateLink services; service support, DNS and costs vary
Azure service endpoint
Service retains its public address; not an on-premises private endpoint
Azure private endpoint
Private IP in the consumer VNet; hybrid clients need routing and DNS
Google Private Google Access
Access mechanism for supported Google APIs; distinct from a PSC private endpoint
Google Private Service Connect
Consumer endpoint/backend and producer-service patterns; connectivity varies by configuration
Creating a private endpoint does not universally disable the service's public endpoint, grant data access, or solve DNS. The managed service remains outside the consumer subnet; the endpoint is the network entry point, not the service itself.
Load Balancing and DNS
Requirement
AWS
Azure
Google Cloud
Regional HTTP proxy
Application Load Balancer
Application Gateway
Regional Application Load Balancer
Global HTTP entry point
CloudFront
Front Door
Global external Application Load Balancer
DNS traffic steering
Route 53 routing policies
Traffic Manager
Cloud DNS routing policies
Appliance insertion
Gateway Load Balancer
Gateway Load Balancer
Use a supported appliance/routing architecture
These are functional comparisons, not identical implementations. CloudFront is also a CDN; Global Accelerator is a TCP/UDP service, not a layer-7 header-routing engine. DNS steering does not proxy the connection or migrate established sessions. Proxy failover also does not promise that an existing connection survives an origin failure. AWS global acceleration, Azure Traffic Manager, Azure Gateway Load Balancer, Google DNS routing, Google load balancing.
Cloud Architecture Atlas
These are conceptual and logical architecture drawings for learning. They are not deployment plans, a security certification, or a claim that a provider guarantees an application's recovery time. Each view answers one question; read its assumptions before adapting it.
For network placement and recovery decisions, continue to the three deployment reference architectures. They connect ingress, private application access, database availability and operational responsibilities.
How to Read These Architectures
Follow the labelled arrows, then check which network and failure boundaries they cross.
Visual element
Meaning
Labelled dashed boundary
The named administrative, network or failure scope; the label states which
Service box
A named component or resource; its detail describes responsibility
Solid arrow
The relationship written on the arrow: parentage, data flow or replication
Dashed arrow
Control, assignment or recovery action, explicitly labelled
AWS / Azure / Google colors
Provider identity only; no implicit security or availability meaning
Ownership views omit geographic containment. Network views keep managed services outside the consumer subnet. Application views show logical service relationships, not hidden provider infrastructure. Full-size SVGs remain readable when opened separately; the web guide also allows horizontal scrolling without shrinking labels on a phone. Text descriptions accompany each view.
One Application, Three Implementations
A user uploads a photo through an authenticated HTTPS endpoint. Application code checks ownership and content, stores photo bytes in object storage, then stores an object key and caption in a database. The workload uses its own identity for data operations; the user's identity is a separate authorization concern.
These examples intentionally omit CDN delivery, upload acceleration, private networking and multi-region recovery. The database and object writes are not one transaction: use idempotent requests and a recovery/cleanup strategy for partial failures. For large files, consider a short-lived signed upload URL rather than sending the whole file through application code.
AWS
An authenticated user calls application code. Code authorizes access, writes object bytes and then metadata using its workload identity. The writes are separate operations and need idempotency and partial-failure recovery. Open full-size SVG
API Gateway invokes Lambda; the Lambda execution role grants the required S3 and DynamoDB operations. Configure the API's authentication/authorization and object-access controls. Do not place these regional managed service boxes inside a VPC unless a selected integration actually requires it. API Gateway integration, Lambda execution role, S3, DynamoDB.
Azure
An authenticated user calls application code. Code authorizes access, writes object bytes and then metadata using its workload identity. The writes are separate operations and need idempotency and partial-failure recovery. Open full-size SVG
An HTTP-triggered Function is the application endpoint. A managed identity can access Blob Storage and a supported Cosmos DB API using appropriate data-plane roles. Choose a Functions hosting plan and configure end-user authentication; a function access key alone is not a user identity or ownership check. The logical subscription boundary is not a VNet boundary. HTTP functions, Functions identity, Blob authorization, Cosmos DB data roles.
Google Cloud
An authenticated user calls application code. Code authorizes access, writes object bytes and then metadata using its workload identity. The writes are separate operations and need idempotency and partial-failure recovery. Open full-size SVG
Cloud Run executes the application with a service account. Grant that account the required Cloud Storage and Firestore permissions. Define who may invoke the service and how the application identifies and authorizes its users. The drawing does not imply that the managed services live inside a consumer VPC. Cloud Run service identity, Cloud Storage access, Firestore server access.
Resource Ownership and Network Geography
Administrative parentage only. Optional OUs, management groups and folders group workload boundaries. Regions and zones are not children in this tree. Open full-size SVG
Arrows represent administrative parentage. AWS OUs and Google folders are optional; the Azure view is within one directory and includes optional intermediate management groups. This does not draw the separate identity or billing associations. Resource groups cover resource-group scope, not every Azure resource type. Resource models and sources.
Each subnet belongs to its virtual network. AWS subnets occupy one zone; Azure and Google subnets are regional. A network does not own geographic zones. Open full-size SVG
A subnet belongs to a virtual network but has its own location rule. AWS subnets are zonal; Azure and Google subnets are regional. A global Google network does not make a regional VM or database global. Scope sources.
Identity and Permission Decisions
AWS STS issues temporary role-session credentials after successful role assumption. Azure RBAC and Google IAM assign a permission set to a principal at a scope; conditions and denies still apply. Open full-size SVG
The first row shows successful AWS role assumption followed by a resource request. The second shows a principal receiving a role at a scope in Azure or Google. Inherited grants remain subject to applicable conditions and deny controls. Identity explanation and sources.
Example A: identity allows PutObject but boundary allows only GetObject, so deny. Example B: same-account bucket policy directly grants an IAM user GetObject, so omission from identity policy and boundary alone does not block it. No other restrictions are assumed. Open full-size SVG
In A, an identity grant cannot exceed the permissions boundary. In B, a same-account bucket policy directly names an IAM user; identity/boundary omissions alone do not block that grant. Assume no explicit deny or other restriction. Changing the principal type or account relationship changes the evaluation. AWS boundaries.
Firewall Placement and Private Access
AWS security groups are stateful allow-only while network ACLs are stateless allow/deny. Azure NSGs are stateful at subnet or NIC. Google VPC firewall rules belong to a network and target VM interfaces. Open full-size SVG
The view compares native controls, not all available firewall products. Azure traffic must pass both NSGs when both subnet and interface NSGs apply. Google selectors apply rules to VM interfaces. Networking details and sources.
Consumer clients connect to a private endpoint in their network, which connects to a supported provider service outside that consumer network. AWS interface endpoints, Azure private endpoints and Google PSC endpoints need correct DNS, routes and permissions. Open full-size SVG
The endpoint is in the consumer network; the supported managed service is outside it. Hybrid access additionally requires DNS and routing. Private connectivity neither grants data permissions nor universally disables public access. Endpoint details and sources.
Database Replication and Recovery
A Multi-AZ DB instance has a synchronous unreadable standby. A Multi-AZ DB cluster has semisynchronous replication to two readable standbys in three zones. An ordinary read replica uses asynchronous replication and is not automatic failover for its source. Open full-size SVG
The DB instance pattern has an unreadable standby. The DB cluster has two readable failover targets and semisynchronous replication; it is distinct from Aurora. An ordinary read replica is not automatic source failover. Engine, version, region and replica lag matter. RDS DB clusters, RDS DB instances, RDS replicas.
Before failure the database endpoint directs clients to the primary in zone A, with synchronous replication to a non-readable standby in zone B. After RDS promotes the standby, clients reconnect using the endpoint; existing sessions are interrupted. Open full-size SVG
This example is specifically an RDS Multi-AZ DB instance. Promotion and DNS changes do not preserve existing database sessions; applications need reconnection and safe retry behavior. The same-region standby is not a complete response to a regional outage or accidental deletion. RDS failover.
Shared Responsibility
Customer duties remain across IaaS, PaaS and SaaS: protect data, manage access and configure available controls. Guest OS management is normally customer responsibility in IaaS and provider responsibility in managed PaaS and SaaS. Service-specific shared duties remain. Open full-size SVG
Customers retain data and access responsibilities even with SaaS. This is a responsibility summary, not a network diagram or an exhaustive contract matrix. Foundations and sources.
Before Using a Drawing for a Real System
Document the selected regions, service tiers, traffic volumes, trust model, RTO/RPO, backup retention and tested failure modes. Add monitoring, deployment and rollback behavior, cost estimates and operational ownership. Validate supported integrations against current provider documentation rather than inferring them from two boxes connected by a line.
Design a Resilient Web Application
A service comparison helps you find names. An architecture explains how requests reach your application, who can access its data, and what happens when a component fails. These three reference designs serve the same requirement: an internet-facing application with private application/data access and resilience to a zone failure within one region.
Start with the simpler photo applications if you are learning cloud basics. Use these deployment views when network placement and recovery become requirements. They are illustrative designs, not tested deployments or a promise of an availability target. Groups labelled “resources in” or “VMs in” a zone identify the depicted resources that share a failure location. A VPC or subnet does not own an availability zone.
Choose the Operating Model First
Requirement
Design shown
What your team owns
Control the operating system and application runtime on AWS
EC2 Auto Scaling, ALB, RDS Multi-AZ DB instance
Images, patching, scaling policies, application and recovery testing
Deploy a supported web runtime with less server management on Azure
Application, plan sizing, private integrations, database permissions and recovery
Run a VM-based application behind global HTTP ingress on Google Cloud
Regional managed instance group, global Application Load Balancer, Cloud SQL HA
Images, patching, group policies, firewall rules and recovery testing
These are design choices, not claims that a cloud only supports that operating model. AWS and Google also offer managed application runtimes; Azure also offers VM scale sets. Start with the simplest service that meets the workload's constraints, then add infrastructure for a specific requirement. Compare managed and self-managed responsibilities.
AWS: Private Compute Across Two Zones
Two zones contain private application and database subnets. A regional ALB reaches either app pool. Both pools use the RDS writer endpoint. The synchronous standby can be promoted but cannot serve application reads. Open full-size SVG
DNS resolves the public ALB address; clients connect with HTTPS. Associate a WAF policy with the ALB and configure its TLS certificate. DNS is name resolution, not an inline traffic hop.
The ALB forwards requests to healthy EC2 targets. Use public ALB subnets in two zones and private application subnets. One Auto Scaling group spans the zones; the diagram's boxes represent pools, not a requirement for exactly two instances.
Both application pools connect to the same RDS writer endpoint using encrypted database connections. This example selects a Multi-AZ DB instance with a non-readable standby. The synchronous replication arrow is provider-managed, not application dual-writing.
Allow only the application's port from the ALB security group to the application group, and only the database port from the application group to the database group. Also permit required health checks. Use workload roles for AWS API access. Database authentication remains a separate choice; a VM's IAM role alone does not grant SQL permissions. Define outbound routes and endpoints for updates and dependencies; those paths are omitted from this request view.
Failure behavior: health checks remove unhealthy targets; the application must reconnect when RDS fails over. Keep enough capacity in the surviving zone rather than assuming new capacity appears immediately. A same-region standby does not protect against every data error or regional outage.
Application Gateway reaches App Service through an inbound private endpoint. App Service uses a separate delegated integration subnet to reach the SQL private endpoint. App Service and SQL remain outside the consumer VNet. Open full-size SVG
Clients reach the public Application Gateway over HTTPS.
The zone-redundant WAF_v2 gateway evaluates traffic and uses private DNS to resolve its backend.
An App Service private endpoint provides the inbound path to the web app. Disable App Service public access explicitly.
App Service uses a different, delegated integration subnet for outbound connections.
Private DNS resolves the SQL hostname to a SQL private endpoint.
Private Link connects that endpoint to Azure SQL Database. Disable the SQL public endpoint and configure database permissions for the application's managed identity.
This drawing separates app and SQL private endpoints into two subnets for clarity and policy control. Microsoft’s baseline shares a private-endpoint subnet; splitting it is a design choice, not a Private Link requirement. The delegated integration and gateway subnets remain separate.
Choose supported App Service and SQL tiers, explicitly enable zone redundancy, and size for surviving capacity. The managed application and database are drawn outside the consumer VNet; private endpoints do not move these services into your subnet. The design omits Key Vault, logging paths and administrative access for readability; define them before implementation.
Failure behavior: zone redundancy must exist in every required tier. Application retries must tolerate interrupted database connections. The inbound private endpoint cannot replace outbound VNet integration.
Google Cloud: Global Front Door, Regional Dependencies
A global external Application Load Balancer sends traffic to a regional managed instance group. The drawing shows a regional slice of a global VPC. SQL traffic uses private services access to the Cloud SQL service network. Open full-size SVG
Clients reach the global external Application Load Balancer over HTTPS. Attach a Cloud Armor policy to the appropriate backend service.
A regional managed instance group distributes application VMs across selected zones. Its subnet is regional even though the VPC network is global. Configure firewall rules for the selected load-balancer proxy and health-check sources; do not expose VM public IPs.
Application VMs use the database's private address with encrypted connections and database authentication. Workload service accounts govern permitted Google API calls separately.
This design chooses private services access: allocate an address range and establish the private connection used by Cloud SQL. Cloud SQL remains outside the consumer VPC. Private Service Connect is a different option and is not the path illustrated here.
Choose a Cloud SQL HA configuration in the same region, disable its public IP and configure backups and point-in-time recovery. Separate application health checks, load-balancer health checks and autohealing decisions so a slow dependency does not trigger needless replacement.
Failure behavior: reserve capacity across the selected zones and reconnect after database failover. A global load-balancer address does not make the regional VM group or Cloud SQL instance survive a regional outage. Cloud SQL's HA standby is not a read-scaling endpoint.
The following are review questions for all three designs. The team must choose and test the answers for its workload; the boxes alone do not supply them.
Concern
Decision to record
Evidence to collect
User access
Authentication method, tenant and object-level authorization
One user cannot read or change another user's objects
Network access
Public entry points, private DNS, necessary egress and admin paths
App and database cannot be reached through unintended public paths
Availability
Minimum capacity after a zone failure, dependency behavior
Load test while a zone's application capacity is unavailable
Recovery time (RTO)
Maximum acceptable time to restore service
Measured failover and restore exercises, including DNS and reconnect time
Recovery point (RPO)
Maximum acceptable amount of lost data, measured in time
Restore to a chosen point and reconcile missing or duplicate writes
Data protection
Retention, encryption, deletion protection and restore permissions
A successful isolated restore; replication alone is insufficient
Operations
Service owner, latency/error/saturation alerts, runbook
An alert reaches an owner who can diagnose and recover
Changes
Deployment strategy, rollback and database compatibility
Roll back an application change without corrupting stored data
Cost
Baseline replicas, data transfer, logs, backups and networking charges
Estimate normal and peak demand using selected regions and tiers
For regional recovery, design a second-region data strategy, traffic switching and operational runbook explicitly. Choose the write model and acceptable replication lag before drawing a second region. More replicas alone do not solve conflicting writes or accidental deletion.
What Each Design Gives Up
An architecture that lists only what it provides is a brochure. All three vendors publish a review framework and expect a design to be defensible against it: AWS names six pillars (operational excellence, security, reliability, performance efficiency, cost optimization and sustainability), with equivalents from Azure and Google.
These three designs share a requirement, so they share their trade-offs. Each line is a deliberate choice, not an oversight.
The choice
What it buys
What it costs
Pillars in tension
Spread compute across zones
Surviving capacity when one zone fails
AWS and Google show two pools for clarity; Azure uses service-managed zone distribution. Size the surviving capacity for the actual load; a third zone does not imply a fixed cost increase
Reliability against cost
Private application and data access
Restricts direct public access to the origin and database
DNS, routing and authorization need separate configuration. Internet egress is omitted here; choose endpoints, NAT or a firewall only when dependencies require them
Security against operational complexity
One region
Avoids cross-region write coordination and a second application footprint
A regional outage still interrupts service; recovery requires an explicit second-region strategy
Reliability against cost and operational excellence
Zone-resilient database
Provider-managed recovery from a supported zonal failure
Replication and additional capacity cost resources; reconnect time remains. The depicted RDS DB-instance and Cloud SQL standbys do not serve reads. Azure behavior depends on the selected SQL tier
Reliability against performance efficiency and cost
Health-based backend routing
Directs requests away from failed application instances
In-flight requests may fail. Test all-backends-unhealthy behavior and use safe retries; health checks cannot repair bad application state
Reliability against application complexity
If a requirement makes one of these unacceptable, change the design rather than the diagram. Measure the bottleneck before adding replicas or regions. A dependency, failed deployment or untested restore can dominate recovery even when compute spans several zones.
Three Things to Explain Back
Why does a private endpoint still need both DNS and data permissions?
Which dependency would stop this application if its entire region became unavailable?
How would you prove that a backup can meet the business's recovery-time target?
A useful answer follows the request through every dependency and names the test that would prove recovery. Continue with failure and identity practice.
Databases: Read Scaling and Surviving Failure
Goal: choose a database deployment based on what must keep working. Prerequisite: cloud foundations. A database stores structured information that the application needs to query or change, such as the owner and caption of a photo.
Availability: can the application recover when a machine or zone fails?
Read scaling: can reporting queries run somewhere other than the writer?
Recovery: can we restore data after a mistake, deletion, or larger outage?
A replica is a copy. That word alone tells you neither whether clients can read it nor whether it can become the writer automatically. Replication also copies many mistakes; it is not a substitute for backups and a tested restore procedure.
Read the Deployment Type
A Multi-AZ DB instance has a synchronous unreadable standby. A Multi-AZ DB cluster has semisynchronous replication to two readable standbys in three zones. An ordinary read replica uses asynchronous replication and is not automatic failover for its source. Open full-size SVG
The other two clouds draw the same distinction with different names:
Deployment
Read from the secondary?
What to check
Azure SQL Database
Tier-dependent
Zone redundancy, read scale-out, and Hyperscale configuration
Azure SQL active geo-replication
Yes
Asynchronous copy; failover orchestration is a separate decision
Cloud SQL for MySQL regional HA
HA standby is not a read endpoint
Automatic failover; add read replicas separately when needed
Before failure the database endpoint directs clients to the primary in zone A, with synchronous replication to a non-readable standby in zone B. After RDS promotes the standby, clients reconnect using the endpoint; existing sessions are interrupted. Open full-size SVG
The drawing illustrates a primary/standby pattern, not every database deployment. The application must reconnect and retry safely during failover. A region-wide outage needs a separate recovery plan. Do not label a single-region standby diagram “disaster recovery” without defining the disaster.
Work Through a Decision
Your photo application's database uses an RDS Multi-AZ DB instance. A slow reporting query must move away from the primary. Can it run on the existing standby?
Answer and reasoning:
No. That standby does not serve reads. Evaluate a read replica, a different deployment such as a supported Multi-AZ DB cluster, or a separate analytics path. Keep the availability requirement while deciding how much replication lag reporting can tolerate. “Multi-AZ is never readable” is also wrong: the DB cluster deployment has readable standbys.
Change one constraint: the database must keep writes available after a zone failure. Adding an ordinary asynchronous read replica alone is not enough to claim automatic failover. Specify how failover happens, how clients reconnect, and what data-loss window is acceptable.
The word means something else here
16 terms the three clouds use differently. 7 of them name a different
kind of thing rather than the same thing behaving differently, which is why a service
comparison table cannot hold them.
Application security group. A named group of network interfaces that NSG rules can reference instead of listing addresses.
Why the distinction matters
One acronym, two services, different domains entirely, and both are common enough that the abbreviation gets used unqualified in study notes and team chat. Expand it every time.
Google does not use the Azure availability-set resource. Placement policies and distribution across zones must be evaluated against the intended failure domain.
Why the distinction matters
An availability set is not a multi-zone deployment. Surviving loss of a zone requires replicas in other zones and a functioning failover path. Merely placing all resources in one availability zone does not provide that protection.
An OCI container image or running container. The storage equivalent is a bucket.
Why the distinction matters
Azure uses the word for both meanings in the same portal. "Create a container" in a storage context means a blob grouping and has nothing to do with Docker, Kubernetes or Container Apps. Reading it as a compute object sends the whole answer wrong.
For VPC endpoints, gateway endpoints provide route-based S3 and DynamoDB access. Interface endpoints place endpoint interfaces in selected subnets for supported PrivateLink services. There are other endpoint types; identify the product and mode.
Two unrelated things. A service endpoint keeps traffic on the backbone while the service keeps its public IP. A private endpoint puts a private IP from your subnet in front of the service.
Private Service Connect endpoints, plus Private Google Access as a separate subnet setting.
Why the distinction matters
For the Azure service-endpoint/private-endpoint pair, only the private endpoint supplies a private address in the consumer VNet. Hybrid clients also need working routing and DNS. Endpoint connectivity does not itself grant permission or disable a service public endpoint.
An IAM allow policy binds roles to principals. IAM deny policies and organization policies are separate controls; their scope and supported operations differ.
Why the distinction matters
Specify the policy product and effect. An IAM permission grant, an IAM deny, and a resource-configuration constraint answer different questions. Governance controls do not substitute for application authorization.
A lifecycle and management container for resources deployed at resource-group scope. Deletion requests removal of its contents; locks, dependencies and service behavior can block completion. Not every Azure resource type belongs to a resource group.
Why the distinction matters
Deleting an AWS Resource Group removes the grouping, not its members. Azure resource-group deletion requests deletion of member resources, subject to locks and dependencies. Google projects are a different lifecycle boundary.
A named collection of permissions, bound to a member at a resource node.
Why the distinction matters
An AWS role is a thing you become; the other two are lists of verbs pinned to somebody else. Different categories of object behind one word. The nearest AWS equivalent of an Azure or Google role is a managed policy, and the nearest Azure or Google equivalent of an AWS role is a service principal or service account.
A resource and IAM administration boundary identified by a 12-digit number. Organizations supports consolidated billing; workforce identities can be federated across accounts.
Usually a user identity. A billing account is a separate payable object linked to projects. A service account is a machine identity.
Why the distinction matters
An AWS account holds workload resources and IAM configuration. In Azure and Google, qualify whether account means a person, workload identity, billing object or storage object. Identity, resource and payment boundaries are related but not identical.
A container for workload resources and API configuration. Organization, folder and billing resources exist outside projects. A project has a mutable name, an immutable unique ID and an assigned number.
Why the distinction matters
Project name, ID and number are different identifiers. The ID cannot be reused after deletion. Choose project boundaries for access, quotas and operations rather than assuming they map exactly to another provider account.
No object by this name. VPC firewall rules do the job, attached to the network and targeted by tag or service account.
Why the distinction matters
The AWS object cannot deny anything, which people consistently forget, and Azure's similarly named object can. In Entra ID, "security group" additionally means a directory group of users, a third unrelated sense.
A workload identity that is also an IAM-managed resource. Permission to attach it differs from permission to generate access tokens and from the permissions used by the workload.
Why the distinction matters
Service Account User supports attaching a Google service account; Token Creator supports credential generation. A grant to use the identity does not grant that identity permission to the application data. Check the intended authentication path.
Three distinct constructs: labels for resource metadata, network tags for firewall and route selection, and Resource Manager tags for governed key-value associations and supported policy conditions.
Why the distinction matters
A network tag is metadata with operational effects: firewall rules and routes can select it. A Resource Manager tag is a different governed construct. Do not treat either as interchangeable with a billing label.
An Availability Zone consists of one or more datacenters. AZ names can map differently between accounts; AZ IDs identify the same physical zone across accounts.
A deployment area within a region, named like us-central1-a.
Why the distinction matters
Compare AWS AZ IDs when physical alignment between accounts matters; equal AZ names do not guarantee it. Region and service support determine how zones can be selected. A DNS zone is a different meaning of the word.
A custom image, which is a global resource usable from any region without copying.
Why the distinction matters
Scope differs. Google images are global; AMIs are regional and need explicit copying, which is a step people forget in multi-region designs and which exam questions test directly.
An EC2 billing discount for matching usage. Regional Reserved Instances do not reserve capacity; zonal Reserved Instances include a capacity reservation. Savings Plans use a different commitment model.
Committed use discounts and capacity reservations are separate mechanisms. Sustained use discounts apply automatically only to eligible usage.
Why the distinction matters
A discount is not necessarily guaranteed capacity. Verify reservation scope and eligible machine families, regions and purchase options. Google sustained use discounts are not a blanket reduction for every VM or for usage already receiving another incompatible discount.
An Azure deployment stack manages a set of resources deployed from Bicep or ARM templates. Its deletion and detach behavior is configurable. Azure Stack is a separate hybrid product family.
Infrastructure Manager manages Terraform deployments. A deployment and its state are not a universal equivalent of an AWS CloudFormation stack.
Why the distinction matters
Azure deployment stacks exist and must not be confused with Azure Stack. In every provider, check retain, detach, deletion protection and state ownership rather than assuming deleting a deployment always deletes every resource.
A Google managed instance group is created as either zonal or regional, and the regional form spreads instances across zones for you. An AWS Auto Scaling group achieves the same thing by being given subnets in several availability zones, because the subnet is what carries the zone. Note the acronym trap: AWS ASG means Auto Scaling group, while Azure ASG means application security group, an unrelated networking object.
Google CloudCloud Run functionswas Cloud Functions, Cloud Functions (2nd gen)
Where it breaks
Cloud Functions (2nd gen) is now Cloud Run functions and uses the Cloud Run service model. The first generation remains distinct. Azure Functions behavior depends on the hosting plan, including timeout, scaling, and cold starts. AWS Lambda has its own invocation and concurrency model. A familiar function name does not establish identical runtime limits; check the generation, trigger, and hosting plan.
Fargate supplies compute for ECS or EKS, so an orchestrator remains part of the design. Azure Container Apps and Cloud Run expose a managed application deployment experience. Cloud Run services can scale to zero by default, but minimum instances and billing mode change idle behavior and cost. Storage, networking, databases, and other dependencies can still incur charges while application instances are at zero. Compare the whole architecture and the selected hosting plan.
Compare the operating mode, not just the Kubernetes service name. GKE Autopilot, EKS Auto Mode, and AKS Automatic all reduce infrastructure management, with different node controls, workload constraints, upgrade behavior, and billing. They are relevant alternatives, not identical products. GKE Autopilot billing can depend on workload and compute class; do not assume every workload is billed only by requested pod resources. Check the selected mode, region, and supported features.
The deployment and operating units differ. Azure App Service has deployment slots; Elastic Beanstalk manages visible AWS resources and supports blue/green deployment through environment URL swaps; App Engine supports versions and traffic allocation. These are related release patterns with different configuration, scaling, and rollback behavior. Compare the runtime, plan, and deployment unit rather than claiming that staging exists in only one cloud.
All three can reclaim this discounted capacity. Interruption handling, availability and pricing rules differ. Google Spot VMs and older preemptible VMs are distinct provisioning models: the older model has a 24-hour runtime limit; Spot VMs do not have that fixed limit. Design for loss of instances and uncertain replacement capacity.
Azure splits by engine into separate products, whereas RDS and Cloud SQL are one product with an engine choice. Azure SQL Database is also not simply hosted SQL Server: it is a platform service with its own feature set, distinct from Azure SQL Managed Instance, which is the closer match for lifting an existing SQL Server across. Picking between Database, Managed Instance and SQL on a VM is a recurring AZ-305 question.
In RDS, a Multi-AZ DB instance has a non-readable standby, while a Multi-AZ DB cluster has two readable standby instances with semisynchronous replication that also act as failover targets. The cluster form is the constraint that bites: it runs only on RDS for MySQL and PostgreSQL and only on NVMe-backed instance classes, so an engine or class chosen first can rule it out. It also applies flow control, throttling writes on the writer to contain replica lag, which trades write throughput for a shorter failover. Ordinary read replicas are a separate asynchronous mechanism; do not infer automatic failover from readability. Azure SQL Database zone redundancy and read scale-out depend on service tier, and active geo-replication is a separate readable asynchronous copy. Cloud SQL regional HA uses a standby for failover with read replicas added separately. Specify engine, deployment type and failure scope before choosing.
These products share some workloads but differ in data model and consistency controls. DynamoDB supports key-value and document data; Cosmos DB capabilities depend on the selected API. Firestore is document-oriented; Bigtable uses a wide-column model. Choose from required queries, transactions, consistency, throughput, and regional design, rather than translating a product name. A provider may offer several relevant database products beyond this shortlist.
Compare the actual deployment model: provisioned or serverless Redshift, Fabric Warehouse or Synapse SQL options, and BigQuery. Provisioned clusters and consumption-oriented services expose different capacity and cost controls. Fabric and Synapse are separate choices; retirement of an exam is not proof that a service is retired. Evaluate existing integrations, workload, governance, and purchasing model.
An in-memory cache is a shared concept, but engine/version support, persistence, clustering, failover, and networking depend on the product and tier. Microsoft is moving Azure Cache for Redis users to Azure Managed Redis on a published schedule. A new design should compare current offerings rather than treating an old cache name as a stable equivalent.
Queue processing, event routing, topic fan-out, and replayable streams are distinct requirements. AWS offers Kinesis, SQS, and SNS; Azure offers Event Hubs, Service Bus, and Event Grid; Google Pub/Sub overlaps several of these workloads. Compare ordering scope, acknowledgements, replay/retention, transactions, and delivery semantics for the chosen service. A queue requirement does not by itself select a streaming service.
An AWS account is a resource and IAM administration boundary, but workforce identities can be federated and Organizations can consolidate charges. Azure subscriptions are resource and billing scopes associated with an Entra tenant. Google projects hold workload resources and link to a billing account. Resource ownership, identity administration and payment responsibility must be designed separately in every cloud.
OUs, management groups and folders organize workload boundaries and inherited policy; they are not geographic regions. Their nesting limits differ. A Google folder must be empty before deletion. Consult current quotas rather than assuming identical depths or lifecycle behavior.
AWSResource groupOptional resource grouping; deleting the group does not delete members.
AzureResource groupLifecycle container for resources deployed at resource-group scope.
Google Cloudno equivalentNo equivalent. Labels and separate projects do this job.
Where it breaks
An Azure resource group is a lifecycle and management scope for resources deployed at resource-group scope. Deleting the group initiates deletion of its contents, subject to locks, dependencies, and service behavior. An AWS Resource Group is a grouping/query construct; deleting that group does not delete its member resources. Google projects and labels provide different grouping boundaries. Not every Azure resource type is deployed at resource-group scope.
A Google VPC is a global object spanning every region and carries no CIDR of its own; the subnets hold the ranges and are regional. One Google VPC can contain instances in Tokyo and Frankfurt that route to each other over Google's backbone with no peering. AWS and Azure networks are regional, so the same design needs peering or a transit construct. An AWS subnet additionally lives in exactly one availability zone, whereas Azure and Google subnets are regional and span zones.
An Azure availability set distributes VMs across fault and update domains; it does not provide protection from losing a whole datacenter. Zone resilience requires resources distributed across zones and a working failover design, not simply selecting one zone. AWS AZ names can map differently between accounts; use AZ IDs when physical alignment matters.
An SCP restricts the permissions available to affected member-account principals and never grants access. SCPs do not restrict the management account or service-linked roles. Azure Policy and Google Organization Policy govern resource configuration; the supported effects and enforcement points differ. Check the applicable control, scope and exceptions rather than treating governance policy as a permission grant.
These are different categories of object. An AWS role is an identity you assume, with its own temporary credentials issued by STS and a trust policy naming who may assume it. An Azure or Google role is a named set of permissions that carries no credentials and does nothing until assigned to a separate principal at a scope. The nearest AWS equivalent of an Azure or Google role is a managed policy; the nearest Azure or Google equivalent of an AWS role is a service principal or service account.
Azure system-assigned identities follow the resource lifecycle; user-assigned identities are independent. An EC2 role is attached through an instance profile; other AWS runtimes use their own role integration. In Google Cloud, permission to attach a service account (actAs) is distinct from permission to mint its credentials. Neither automatically grants the service account access to application data.
AWS evaluates applicable grants and restrictions rather than requiring an allow at every stage of a universal pipeline. Identity-based grants are constrained by boundaries and applicable organization or session policies. Same-account resource-based grants can behave differently depending on whether they name a user, role, or role session; an applicable explicit deny still wins. Azure RBAC and Google IAM allow grants inherit down their resource hierarchies, but deny controls and conditions must also be considered. A narrower role at a child scope does not remove an inherited grant.
Directory administration and workload access are different responsibilities in all three ecosystems. An Azure Global Administrator does not automatically receive resource permissions: elevation grants User Access Administrator at root scope, from which resource access can be assigned. Google Workspace or Cloud Identity super administrators manage the directory; Organization Administrator manages organization IAM and is not an unrestricted workload superuser. AWS Identity Center administration likewise does not replace the permission sets and IAM roles used to access member-account resources.
Azure subscriptions trust an Entra tenant. AWS IAM Identity Center provides workforce access using permission sets and account roles and can connect an external identity provider. Google Cloud Identity and Workforce Identity Federation offer different directory and federation models. Compare the source of identities, federation configuration and resource grants rather than treating a directory as permission to all workloads.
Key Vault includes secrets, cryptographic keys and certificates; AWS and Google expose separate services for some of those roles. Secrets Manager supports configured rotation using managed integrations or Lambda, but storing a secret does not automatically configure working rotation. Parameter Store supports secure parameters; rotation and pricing depend on tier and integration. Verify the secret type, rotation mechanism and application behavior.
An AWS security group has allow rules, not explicit deny rules. If broad allow rules must remain while one address is blocked, use an appropriate deny-capable control, such as a network ACL, network firewall, or application-layer control where applicable. Azure NSGs and Google VPC firewall rules support allow and deny decisions with priorities. Google VPC firewall rules belong to the network and select targets; do not assume all three attach and evaluate identically.
Azureno equivalentAn NSG on the subnet fills this position but is stateful.
Google Cloudno equivalentVPC firewall rules are stateful; they do not reproduce the AWS network ACL model.
Where it breaks
AWS network ACLs are stateless: allowing an inbound request does not automatically permit its outbound reply. Return traffic needs a matching rule. Azure NSGs and the Google VPC firewall rules compared here are stateful, so their connection tracking differs. This comparison concerns these native controls, not every possible firewall appliance or policy product.
The mechanism decides the limits. An AWS gateway endpoint adds a prefix-list route and the instance still reaches the service on its public address, so there is no private address to route to: that is why it cannot be used from on-premises over VPN or Direct Connect, or from a peered VPC. Its route is also regional, so traffic to the same service in another Region leaves through the internet gateway instead. Gateway endpoints serve only S3 and DynamoDB and carry no endpoint charge. An interface endpoint uses PrivateLink to place an address from your subnet in front of the service, which is what makes it reachable from on-premises, and it is billed. Azure draws the same line: a service endpoint keeps the service's public address and does not extend to on-premises clients, while a private endpoint gives it an address in your VNet. Google Private Service Connect and Private Google Access are different mechanisms again. Routing, DNS and authorization must still permit access in every case.
CloudFront and Front Door are global HTTP reverse-proxy services; neither is interchangeable with a regional application load balancer. Google offers a global external Application Load Balancer. Traffic Manager and Route 53 DNS routing select DNS answers rather than carrying application traffic. AWS Global Accelerator handles TCP/UDP traffic and is not a layer-7 routing engine. A global entry point does not make a single-region origin resilient to regional failure.
Peering between A and B and between B and C does not by itself give A a transit path to C in any of these three services. Check address-range overlap and supported route types: peering products have provider-specific restrictions and exceptions. A transitive design requires a supported transit or routing solution, not a chain of ordinary peerings.
AWS offers zonal and regional NAT gateways. Zonal gateways require an explicit per-zone design for zone resilience; regional gateways support automatic expansion across workload zones, with documented expansion delays and mode restrictions. Regional NAT does not support private NAT. Azure NAT Gateway capabilities depend on SKU and configuration. Google Cloud NAT is distributed translation, not a proxy VM through which packets are routed. NAT is not an inbound publishing or application-authentication mechanism.
Azure Blob Storage uses a container within a storage account; the account carries settings such as redundancy and naming. S3 and Cloud Storage expose buckets. An Azure blob container is unrelated to the container image used to package an application. Google bucket location options include regional, dual-region, and multi-region; compare these with replication and redundancy configurations in the other providers rather than assuming identical placement controls.
Google Archive remains online with low-latency reads. S3 Glacier Deep Archive requires a restore before access; Glacier Instant Retrieval is a different class. Azure Archive needs rehydration before normal reads. Minimum storage durations, retrieval operations, early deletion and data transfer affect total cost, so the lowest storage rate does not establish the cheapest design.
EBS volumes are zonal. Azure managed disks offer redundancy options including ZRS on supported disk types. Google regional Persistent Disk and Hyperdisk Balanced High Availability replicate across two zones. Availability does not imply shared-writer safety: multi-attach support, access modes, VM compatibility and clustered filesystems must be checked for the selected disk. Replicated storage still needs application failover and backups.
Choose the file protocol and service tier explicitly. EFS serves NFS; the FSx family includes separate Windows, Lustre, NetApp ONTAP and OpenZFS offerings. Azure Files supports SMB or NFS shares with different feature support; a share is not automatically dual-protocol. Filestore serves NFS. On-premises access requires supported connectivity, firewall, DNS and authentication configuration.
Azure configures redundancy on the storage account: LRS is local, ZRS spans zones, and geo-redundant options add asynchronous replication to a second region. Read-access variants expose the secondary. S3 storage classes include both One Zone-IA and Express One Zone as single-zone choices; other classes have different resilience and retrieval characteristics. Google Cloud Storage separates location type from storage class. Choose resilience and access behavior independently where the platform allows it.
18 current exams and 3 retired ones, each linked to the vendor's own
page. An exam retiring and a product retiring are separate events; only the exam is tracked here.
Exam version superseded by SCS-C03. The certification itself is current.
Practice Architectural Decisions
For each scenario, state the constraint, choose an option, and explain what changes when the constraint changes. These are learning exercises, not real exam questions or a score predictor.
An RDS Multi-AZ DB instance serves a photo application. Reporting queries need to move off the writer. Can they use the existing standby?
Answer: no. That deployment's standby is not a client read endpoint. Evaluate a read replica or a supported DB cluster configuration. Preserve the application's availability requirement. A Multi-AZ DB cluster has readable standbys, so “all Multi-AZ standbys are unreadable” is wrong. Deployment modes and sources.
A Private Address That Does Not Work
An on-premises client resolves an Azure service hostname to its public address, even after a private endpoint was created. Does adding a broader RBAC grant fix the network path?
Answer: no. Inspect DNS resolution and forwarding, routes, endpoint approval and traffic controls. Authorization matters after reachability is established. Creating the endpoint alone does not guarantee public access is disabled. Private access.
A Smaller Role Does Not Remove Access
A principal inherits a broad Azure or Google allow grant. You assign a narrower role on a child resource. Have you reduced the inherited permission?
Answer: no. The child allow grant does not subtract the parent grant. Change the relevant assignment or evaluate applicable deny and condition controls. Check other grants before concluding what the principal can do. Identity.
One Region Is Not a Recovery Plan
A web application has two instances in different zones but one unreplicated database. Is the application now resilient to every zone failure?
Answer: no. The database remains a dependency that can prevent useful service. Define the failure scope, data-loss objective and recovery time, then examine every dependency. Multi-zone resilience also does not establish recovery after a region-wide outage. Architecture assumptions.
One Product Name Can Hide a New Operating Mode
A design review claims that every AWS NAT gateway requires its own public subnet and one customer-managed gateway per Availability Zone. Is the statement current?
Answer: it describes the zonal public NAT pattern, not every mode. Regional NAT gateways support different placement and expansion behavior. Their mode restrictions and expansion delay still matter. NAT modes and sources.
Import the Optional Flashcards
Download the tab-separated deck. In Anki, import it with fields mapped to front, back and tags. Comparison answers include the grade, caveat and sources so a card does not teach a false equivalence. Provider links establish where to investigate; they do not replace reading the applicable conditions.
You can also practise without an account or flashcard application: cover the answer paragraph, write a justification, and check it against the linked chapter and primary sources. Revisit an answer when its source or required service configuration changes.