AZ-104 & AZ-305 Comprehensive Study Guide
📅 Last Researched: May 2026
📖 Source: Microsoft Learn Official Study Guides
AZ-104Azure Administrator Associate
AZ-305Solutions Architect Expert
700 / 1000Pass Score (Both)
120 minDuration (Both)
⚡ Strategy: You already work heavily with Azure — this guide focuses on exam-specific nuances, decision-tree logic, and the details Microsoft actually tests. Conceptual overviews are kept brief; depth is on the tricky parts.
Exam Overview & Strategy
AZ-104 is operational and hands-on. You must know how to configure, deploy, and manage Azure resources — not just what they are. Expect scenario-based questions asking you to choose the right command, portal setting, or configuration sequence.
Recommended Study Order
D1 Identity & Governance
→
D2 Storage
→
D4 Networking
→
D3 Compute
→
D5 Monitor
Why This Order?
Identity and RBAC underpins every other domain. Networking is the hardest — study it before compute so you understand the network layer VMs/containers rely on.
Domain 1 – Manage Azure Identities and Governance
20–25%
1.1 Manage Microsoft Entra ID (formerly Azure AD)
What's Tested
- Create and manage users (bulk create via CSV, guest invites)
- Create and manage groups: Security vs. Microsoft 365, Assigned vs. Dynamic
- Dynamic group membership rules — e.g.,
user.department -eq "Sales"
- Manage device settings: Entra Join vs. Hybrid Entra Join vs. Entra Registered
- Self-Service Password Reset (SSPR) — enabling per group, authentication methods required
- Microsoft Entra Connect — password hash sync vs. pass-through auth vs. federation
| Feature | Entra Joined | Hybrid Entra Joined | Entra Registered |
| Who uses it | Cloud-only orgs | Corp devices with on-prem AD | BYOD / personal devices |
| Managed by | Intune/MDM | Group Policy + Intune | MDM (optional) |
| SSO to on-prem | No (without Hybrid) | Yes | No |
Entra ID Licenses:
- Free: Basic user/group management, MFA for admins
- P1: Conditional Access, dynamic groups, SSPR, Hybrid Entra Join
- P2: PIM, Identity Protection, Access Reviews
💡 Exam Tip
If a question involves Conditional Access, dynamic groups, or SSPR → P1 license required. If PIM or Identity Protection → P2 required.
1.2 Manage Azure Role-Based Access Control (RBAC)
What's Tested
- Assign built-in roles: Owner, Contributor, Reader, User Access Administrator
- Create custom roles — know
Actions, NotActions, DataActions, NotDataActions JSON fields
- Scope hierarchy: Management Group → Subscription → Resource Group → Resource
- Role assignments are additive — most permissive wins (except explicit deny)
- Managed Identities: System-assigned vs. User-assigned
| Role | Manage Resources | Assign Roles | Give Others Access |
| Owner | ✅ Yes | ✅ Yes | ✅ Yes |
| Contributor | ✅ Yes | ❌ No | ❌ No |
| Reader | ❌ Read-only | ❌ No | ❌ No |
| User Access Admin | ❌ No | ✅ Yes | ✅ Yes |
Managed Identity Use Cases:
- System-assigned: Tied to resource lifecycle. Deleted when resource is deleted. Use for single-resource access.
- User-assigned: Standalone resource. Can be shared across multiple resources. Use when multiple VMs/apps need the same identity.
⚠️ Exam Trap
"User Access Administrator" can grant roles but CANNOT manage resources. Often confused with Contributor.
1.3 Manage Azure Policy and Governance
What's Tested
- Azure Policy effects: Deny, Audit, AuditIfNotExists, DeployIfNotExists, Modify, Append
- Policy vs. Initiative (policy set)
- Management Groups: up to 6 levels deep below root, max 10,000 management groups
- Resource locks: CanNotDelete vs. ReadOnly
Policy Effects — Know the Priority:
- Disabled — policy not evaluated
- Append — adds fields to request (e.g., force tags)
- Modify — changes/adds properties
- Deny — blocks the request
- Audit / AuditIfNotExists — allows but logs non-compliance
- DeployIfNotExists — deploys a related resource if missing
Resource Locks:
- CanNotDelete: Can read and modify, cannot delete
- ReadOnly: Can read only, cannot modify or delete
- Applied at resource, RG, or subscription scope — inherited downward
- Only Owner or User Access Administrator can manage locks
⚠️ Exam Trap
ReadOnly lock on a storage account prevents listing access keys — even though it looks like a read. Listing keys is internally a write operation.
1.4 Manage Subscriptions and Costs
What's Tested
- Move resources between resource groups and subscriptions (not all resources are moveable)
- Apply and manage tags — tags are NOT inherited by default (use Policy)
- Cost Management + Budgets — create budget alerts
- Azure Reservations vs. Spot VMs vs. Savings Plans
Non-moveable resources (commonly tested): Azure AD Domain Services, Recovery Services Vaults (with conditions), VNet gateways when VNet has peerings.
Domain 2 – Implement and Manage Storage
15–20%
2.1 Configure Storage Accounts
What's Tested
- Types: Standard (GPv2) vs. Premium (BlockBlob, FileShares, Page)
- Redundancy: LRS → ZRS → GRS → GZRS (and read-access variants RA-GRS, RA-GZRS)
- Access tiers: Hot, Cool, Cold, Archive (Archive is offline — rehydration takes hours)
- Storage firewall and virtual network rules; private endpoints
| Redundancy | Copies | Survives | Cost |
| LRS | 3 in one datacenter | Hardware failure | Lowest |
| ZRS | 3 across AZs | Zone failure | Medium |
| GRS | 6 (3 local + 3 remote region) | Regional outage | Higher |
| GZRS | 6 (3 zone + 3 remote region) | Zone + regional | Highest |
🔑 Key Rule
Zone failure → ZRS minimum | Regional failure → GRS minimum | Zone AND regional → GZRS
2.2 Manage Azure Blob Storage
What's Tested
- Blob types: Block (files/streaming), Append (logging), Page (VHDs/random write)
- Lifecycle management policies — automate tier transitions and deletions
- Blob versioning, soft delete, point-in-time restore
- SAS: Account SAS vs. Service SAS vs. User Delegation SAS
- Immutability policies: Time-based retention vs. Legal hold
| SAS Type | Signed by | Recommended for |
| Account SAS | Storage account key | ⚠️ Avoid — broad access |
| Service SAS | Storage account key | Service-specific access |
| User Delegation SAS | Entra ID credentials | ✅ Preferred — most secure |
💡 Exam Tip
User Delegation SAS = signed with Entra ID = most secure. Always prefer this when the exam asks for "most secure" option.
2.3 Configure Azure Files and Azure File Sync
What's Tested
- SMB (port 445) vs. NFS shares — NFS requires Premium FileStorage + VNet
- Azure File Sync: Server endpoint, Cloud endpoint, Sync group
- Cloud tiering — stores hot files locally, cold files as pointers to Azure
- Mounting: Windows (
net use), Linux (cifs-utils)
- Sync group = one cloud endpoint (Azure file share) + one or more server endpoints
- Cloud tiering = only on server endpoints; frees up local disk but keeps namespace visible
- Registered server = Windows Server registered with Storage Sync Service
2.4 Configure Azure Storage Security and Tools
What's Tested
- Storage access keys vs. SAS vs. Entra ID RBAC (data plane)
- Azure Key Vault integration for customer-managed keys (CMK)
- AzCopy:
azcopy copy, azcopy sync, azcopy login
- Azure Data Box family: Data Box Disk, Data Box, Data Box Heavy (offline transfer)
azcopy copy 'https://source.blob.core.windows.net/container/file' \
'https://dest.blob.core.windows.net/container/' --recursive
azcopy sync 'source' 'dest' --delete-destination=true
azcopy login
Domain 3 – Deploy and Manage Azure Compute Resources
20–25%
3.1 Configure Virtual Machines
What's Tested
- VM sizes: D-series (general), F-series (compute), E/M-series (memory), L-series (storage), N-series (GPU)
- Availability: Availability Sets (FD/UD) vs. Availability Zones
- Managed Disks: Standard HDD, Standard SSD, Premium SSD, Ultra Disk
- Disk encryption: SSE (default) vs. ADE (guest OS level) vs. Encryption at host
- Resize a VM — requires deallocating if moving to a different hardware cluster
| Option | SLA | Scope | Use Case |
| None | No SLA (99.9% if Premium SSD) | Single VM | Dev/Test |
| Availability Set | 99.95% | Within a datacenter | Legacy HA (multiple racks) |
| Availability Zones | 99.99% | Separate physical datacenters | Production HA |
| VMSS (Flexible) | 99.99% | Cross-zone | Auto-scaling production |
💡 Exam Tip
Availability Sets = protect against rack failures within one datacenter. Availability Zones = protect against an entire datacenter failure. "Zone failure" in the question → needs Availability Zones.
3.2 ARM Templates and Bicep
What's Tested
- ARM template structure:
$schema, contentVersion, parameters, variables, resources, outputs
- Bicep syntax — transpiles to ARM JSON
- Deployment stacks: enforce what can/can't be deployed, managed cleanup
- What-if deployments before applying changes
- Template specs — store and share ARM templates as Azure resources
{
"type": "Microsoft.Compute/virtualMachines",
"apiVersion": "2023-09-01",
"name": "[parameters('vmName')]",
"dependsOn": ["[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"]
}
dependsOn = explicit dependency (when resource references don't create implicit dependency)
[resourceId()] = function to reference another resource's ID
- Bicep string interpolation:
'${param1}-suffix'
3.3 Virtual Machine Scale Sets (VMSS)
- Uniform vs. Flexible orchestration modes
- Autoscale rules: metric-based, schedule-based
- Scale-in policy: Default, NewestVM, OldestVM
- Overprovisioning — creates extra VMs, deletes extras (no charge for over-provisioned VMs)
- Rolling, blue/green upgrade policies
3.4 Azure App Service Plans and Web Apps
- Tiers: Free/Shared → Basic → Standard → Premium → Isolated (ASE)
- Deployment slots (Standard+): staging, swapping, traffic routing %
- Autoscale available on Standard and above
- App Service Environment (ASE) — fully isolated, VNet injected
ℹ️ Slot Swap Behavior
Slot-specific settings (marked "slot setting") stay in their slot. Non-slot settings swap with the app. Swap warms up new slot before completing → zero-downtime deployments.
3.5 Containers
| Scenario | Service |
| Run a single container, no orchestration | Azure Container Instances (ACI) |
| Microservices with event-driven scaling | Azure Container Apps (ACA) |
| Full Kubernetes control, custom workloads | Azure Kubernetes Service (AKS) |
| Build and store container images | Azure Container Registry (ACR) |
💡 Exam Tip
ACI = billed per second, no infrastructure management. ACA = Kubernetes abstracted (KEDA, Dapr). AKS = full control but you manage node pools.
Domain 4 – Implement and Manage Virtual Networking
15–20% (Hardest Domain)
4.1 Configure Virtual Networks
- VNet address space planning — Azure reserves 5 IPs per subnet: .0, .1, .2, .3, .255
- VNet peering: non-transitive by default (Hub-spoke requires UDR for transitivity)
- Service endpoints vs. Private endpoints
- DNS: Azure-provided vs. custom DNS servers vs. Private DNS zones
| Feature | Service Endpoint | Private Endpoint |
| Traffic path | Optimized public path | Private IP in your VNet |
| Source IP seen by service | VNet public IP | Private IP |
| Works from on-prem | ❌ No | ✅ Yes (via ER/VPN) |
| Cost | Free | Per hour + data charge |
| Recommended | Legacy/simple | Production, compliance |
🔑 Exam Rule
"On-premises access to Azure PaaS" or "private IP" → Private Endpoint. Service Endpoints don't extend on-prem.
4.2 Configure Network Security Groups (NSGs)
- NSG rules: Priority 100–4096 — lower number = higher priority
- Default rules: AllowVNetInBound, AllowAzureLoadBalancerInBound, DenyAllInBound
- NSG can attach to subnet AND/OR NIC — both apply
- Application Security Groups (ASGs) — tag VMs for NSG rules without managing IPs
NSG Evaluation Logic:
- Inbound: Subnet NSG → NIC NSG
- Outbound: NIC NSG → Subnet NSG
- Traffic must be allowed at BOTH levels to flow
⚠️ Exam Trap
NSG on subnet affects all VMs in that subnet. NSG on NIC affects only that specific VM. If both exist, BOTH must allow traffic.
4.3 Configure Load Balancing
| Requirement | Service |
| TCP/UDP load balancing within region | Azure Load Balancer (Standard) |
| HTTP/HTTPS routing, URL-based, WAF (regional) | Application Gateway |
| Global HTTP, CDN, WAF, anycast | Azure Front Door |
| DNS-based global routing, non-HTTP | Traffic Manager |
| Global redundancy across regional L4 LBs | Cross-region Load Balancer |
⚠️ Exam Trap
Standard Load Balancer requires NSG. Basic LB doesn't — but Basic is being retired. Always use Standard for new deployments.
4.4 Configure VPN Gateway and ExpressRoute
- Site-to-Site (S2S): on-prem to Azure, requires local network gateway + VPN gateway
- Point-to-Site (P2S): individual client machines to Azure VNet
- VNet-to-VNet: VPN between Azure VNets (different regions/subscriptions)
- ExpressRoute: private MPLS circuit, not over internet
- Basic VPN Gateway SKU: no zone support, no BGP, no active-active
- Global Reach: connect two on-prem sites through Microsoft backbone via ExpressRoute
4.5 Monitor and Troubleshoot Networking
- IP flow verify: tells you if traffic is allowed/denied and which NSG rule is responsible
- Next hop: tells you where traffic is routed (useful for UDR/BGP debugging)
- Connection Monitor: continuous monitoring between sources and endpoints
- Packet capture: capture traffic to/from a VM for deep analysis
Domain 5 – Monitor and Maintain Azure Resources
10–15%
5.1 Configure Azure Monitor
- Log Analytics workspaces — central store for logs (KQL queryable)
- Azure Monitor Metrics (numerical time-series) vs. Logs (KQL text)
- Diagnostic settings: platform logs/metrics → Log Analytics, Storage, Event Hub
- Action groups: email, SMS, webhook, ITSM, Azure Function, Logic App, Runbook
| Alert Type | Data Source | Latency | Use Case |
| Metric alert | Azure Monitor Metrics | ~1 min (near real-time) | CPU > 90%, memory spikes |
| Log query alert | Log Analytics | 1–15 min | Complex query conditions |
| Activity log alert | Activity log | ~5 min | Resource deletion, policy violations |
5.2 Configure Azure Backup and Recovery
- Recovery Services Vault: location must match resource being backed up
- Azure Backup for: VMs, SQL in VMs, Azure Files, blobs
- Soft delete — 14-day retention after backup item deletion
- Cross-region restore: replicate vault to paired region
- Backup Center — centralized management dashboard
5.3 Azure Update Manager and Automation
- Azure Update Manager: replaces Update Management in Automation for OS patching
- Azure Automation: runbooks (PowerShell, Python), schedules, DSC
- Change Tracking and Inventory for software/service change detection
Exam Overview & Strategy
AZ-305 is about architectural decision-making. You're not asked how to configure — you're asked which service to choose, why, and what the trade-offs are. Questions present a business requirement and ask which design meets it with the fewest compromises.
| AZ-104 (Admin) | AZ-305 (Architect) |
| "How do you configure X?" | "Which service should you use for Y?" |
| CLI commands, portal steps | Architectural trade-offs, cost/compliance |
| Single service deep dives | Cross-service integration patterns |
| Operations mindset | Design / architect mindset |
Azure Well-Architected Framework (WAF) — Always in Context
Every AZ-305 design decision should be evaluated against WAF pillars:
⚡ Reliability
HA, DR, resilience, fault tolerance
🔒 Security
Zero trust, defense in depth, least privilege
💰 Cost Optimization
Right-sizing, reserved capacity, eliminating waste
🛠️ Operational Excellence
Automation, observability, DevOps
🚀 Performance Efficiency
Scaling, caching, right service selection
Domain 1 – Design Identity, Governance, and Monitoring Solutions
25–30%
1.1 Design Identity and Access Management
- Choose between Entra ID, AD DS (on-prem), and Entra Domain Services
- Hybrid identity: password hash sync vs. pass-through auth vs. federation (ADFS)
- External identity: B2B (partner access) vs. B2C (customer-facing apps)
- Conditional Access: named locations, sign-in risk, device compliance
- PIM — just-in-time access, time-bound role assignments, approval workflows
| Entra ID | AD DS (on-prem) | Entra Domain Services |
| Protocol | REST / OAuth / OIDC | Kerberos / LDAP / NTLM | Kerberos / LDAP / NTLM |
| Managed | Fully managed | You manage | Fully managed |
| Use case | Cloud apps, SaaS | Legacy apps on-prem | Lift-and-shift needing Kerberos |
| Domain join | Entra Join | Traditional domain join | Classic domain join |
🔑 Exam Rule
Partners/vendors → B2B (Entra External ID). Customers/consumers of your app → B2C (separate tenant).
1.2 Design Governance Solutions
- Management group hierarchy and policy inheritance
- Azure Policy at scale — initiative assignments, remediation tasks
- Tagging strategy for cost allocation and resource organization
- Azure Cost Management: budgets, cost alerts, Advisor recommendations
- Landing Zone design (CAF) — platform and application landing zones
- Platform landing zone: Centralized shared services — identity, connectivity, management
- Application landing zone: Subscriptions for individual workloads/apps
- Hub-spoke: Hub = shared services (firewall, DNS, VPN/ER); Spokes = workload VNets
- Policies with
DeployIfNotExists or Modify require a managed identity for remediation tasks
1.3 Design Monitoring Solutions
- Azure Monitor: Metrics, Logs, Traces, Changes
- Application Insights: APM, distributed tracing, availability tests
- Microsoft Sentinel: SIEM/SOAR for security monitoring
- Azure Service Health (platform-wide) vs. Resource Health (your specific resource)
| Workspace Strategy | When to Use | Trade-off |
| Centralized (one workspace) | SMB, unified ops team | Data sovereignty concerns, noisy neighbors |
| Decentralized (per-team/region) | Large orgs, compliance | Higher cost, fragmented queries |
| Hybrid | Regulated industries | Balance of both |
💡 Exam Tip
"Logs must stay in EU" or data sovereignty requirements → separate workspace per region.
Domain 2 – Design Data Storage Solutions
20–25%
2.1 Design Storage Accounts
| Service | Use Case |
| Blob Storage | Unstructured data: images, videos, backups, logs |
| ADLS Gen2 | Big data analytics (Hadoop/Spark) — Blob + hierarchical namespace |
| Azure Files | SMB/NFS file shares, lift-and-shift file servers |
| Azure Queues | Simple message queuing, decoupling |
| Azure Tables | NoSQL key-value store, simple structured data |
| Azure Disks | VM OS and data disks |
2.2 Design Relational Database Solutions
| Scenario | Service |
| New cloud-native app, no special SQL features | Azure SQL Database (single DB) |
| Multiple DBs with variable/unpredictable load | Elastic Pool |
| Need SQL Agent, cross-DB queries, CLR, Service Broker | SQL Managed Instance |
| Full OS access, custom SQL install, third-party tools | SQL Server on Azure VM |
| Very large database (100 TB+), rapid scaling | Hyperscale tier |
🔑 Exam Rule
SQL Agent jobs, linked servers, CLR, MSDTC → SQL Managed Instance. Everything else → consider SQL Database first.
2.3 Design NoSQL / Cosmos DB Solutions
- Cosmos DB APIs: NoSQL (document), MongoDB, Cassandra, Table, Gremlin (graph)
- Request Units (RUs) — currency for Cosmos DB throughput
- Partition key selection — determines data distribution and hot partition risk
- Multi-region writes for global active-active
The 5 Consistency Levels (memorize these):
- Strong — linearizability, highest read consistency, highest latency
- Bounded Staleness — lag by K operations or T time
- Session — consistent within a session (default, most popular)
- Consistent Prefix — never see out-of-order writes
- Eventual — lowest latency, highest throughput, no ordering guarantees
| Use Case | Recommended Consistency |
| Financial transactions requiring accuracy | Strong |
| Shopping cart, user session | Session (default) |
| Social media likes, IoT telemetry | Eventual |
| Global reads with acceptable lag | Bounded Staleness |
⚠️ Exam Trap
"Session" is the default and best for most apps. "Strong" consistency kills performance across multi-region deployments — avoid unless truly required.
2.4 Design Data Integration Solutions
| Service | Model | Ordering | Retention | Best For |
| Event Hubs | Streaming | By partition | Up to 90 days | Telemetry, log ingestion, Kafka |
| Service Bus | Queue/Topic | FIFO per session | Up to 14 days | Transactional messaging, enterprise |
| Event Grid | Pub/Sub | No | Up to 24 hours | Reactive event routing, serverless |
| Storage Queue | Queue | Best-effort | 7 days | Simple, high-volume queue |
Domain 3 – Design Business Continuity Solutions
15–20%
3.1 Design for High Availability
- SLA targets and composite SLA calculation
- Availability Zones for zone-redundant services
- Regional pairs — used for GRS storage and some service replication
Composite SLA Formulas:
Serial (AND): SLA_A × SLA_B → 99.9% × 99.9% = 99.8%
Parallel (OR): 1 − (1 − SLA_A) × (1 − SLA_B) → 1 − (0.001 × 0.001) = 99.9999%
💡 Exam Tip
Two serial dependencies → composite SLA is always lower than the weakest individual SLA. Redundant (parallel) copies dramatically increase availability.
3.2 Design for Disaster Recovery
- RTO (Recovery Time Objective) — max acceptable downtime
- RPO (Recovery Point Objective) — max acceptable data loss
- Azure Site Recovery (ASR): VM replication — Azure-to-Azure, on-prem-to-Azure
- Azure Backup: point-in-time recovery for VMs, SQL, blobs, files
| Azure Site Recovery | Azure Backup |
| Purpose | DR — replicate whole workload | Backup — restore individual items |
| RPO | As low as 30 seconds (VMs) | Depends on policy (daily, hourly) |
| Fails over | Entire VM/workload | Individual files, databases, VMs |
| Cost driver | Replication + storage | Storage only |
| DR Pattern | RTO | RPO | Cost |
| Backup and restore | Hours | Hours | Lowest |
| Pilot light | 10s of minutes | Minutes | Low |
| Warm standby | Minutes | Seconds | Medium |
| Active-active | Near zero | Near zero | Highest |
3.3 Design Backup Solutions
- Azure Backup supports: VMs, SQL Server in VMs, Azure Files, SAP HANA, Azure Blobs
- Recovery Services Vault vs. Backup Vault (newer — for Blobs, Disks, PostgreSQL)
- Immutable vaults — prevent backup deletion (compliance)
- Long-term retention policies (years/decades for compliance)
Domain 4 – Design Infrastructure Solutions
30–35% — Largest Domain
4.1 Design Compute Solutions
| Scenario | Service |
| Lift-and-shift, full OS control | Azure VMs |
| Web/API app, no OS management | Azure App Service |
| Microservices, event-driven, serverless containers | Azure Container Apps |
| Full Kubernetes control | AKS |
| Short-lived event-driven functions | Azure Functions |
| Batch processing jobs | Azure Batch |
| ML training, GPU workloads | Azure ML + N-series / Spot VMs |
- Spot VMs: Fault-tolerant, interruptible workloads (ML training, batch, rendering)
- Azure Dedicated Hosts: Compliance/licensing requirements
- Proximity Placement Groups: Ultra-low latency between VMs
4.2 Design Network Solutions
- Hub-spoke vs. Virtual WAN (vWAN) — vWAN is a managed hub, auto-connects spokes
- Azure Firewall: stateful L3-L7, FQDN filtering, threat intelligence
- Private Link Service — expose your service to others via private endpoint
- DNS architecture: Azure DNS zones, Private DNS zones, DNS forwarding
Network Security — Defense in Depth (outer to inner):
- DDoS Protection (edge)
- Azure Firewall / NVA (hub)
- NSG (subnet/NIC)
- Application Gateway + WAF (app layer)
- Private Endpoints (PaaS access)
- Encryption in transit (TLS)
| Hub-Spoke (Custom) | Virtual WAN |
| Hub management | You manage hub VNet, firewall, routing | Microsoft managed |
| Any-to-any transit | Requires UDRs + NVA/firewall | Built-in |
| Best for | Custom NVA, complex routing | Large-scale, simplified management |
| Branch connectivity | Manual VPN/ExpressRoute setup | Automated |
4.3 Design Application Architecture
- API Management (APIM): gateway, rate limiting, transformation, developer portal
- Event-driven: Event Grid + Functions, Event Hubs + Stream Analytics
- Azure Cache for Redis: distributed cache, session state, pub/sub
- Deployment patterns: blue/green, canary, rolling
| APIM Tier | VNet Integration | Notes |
| Consumption | No (serverless) | Pay-per-call, no developer portal |
| Developer | External/Internal | Full features, not for production |
| Basic / Standard | External | Production, limited throughput |
| Premium | External/Internal | Multi-region, high throughput |
4.4 Design Migrations
| Source | Target | Tool |
| VMware / Hyper-V / Physical servers | Azure VMs | Azure Migrate + Site Recovery agent |
| SQL Server | Azure SQL DB / MI | Database Migration Service (DMS) |
| Web apps (IIS) | App Service | App Service Migration Assistant |
| File servers | Azure Files | Storage Migration Service |
| Large data (offline) | Azure Storage | Azure Data Box |
Migration phases: Discover → Assess → Migrate → Optimize
Storage Selection
Need to store...
├── Unstructured files/blobs (images, video, backups) → Blob Storage
├── Unstructured files + big data analytics → ADLS Gen2
├── File shares (SMB/NFS for VMs or on-prem) → Azure Files
├── VM disks → Azure Managed Disks
├── NoSQL key-value (simple) → Azure Table Storage
├── NoSQL document/graph/column → Cosmos DB (choose API)
├── Relational data (cloud-native) → Azure SQL Database
├── Relational (needs SQL Agent, CLR) → SQL Managed Instance
└── Full SQL Server control → SQL Server on Azure VM
Network Load Balancing
Traffic type?
├── HTTP/HTTPS
│ ├── Global + CDN + WAF → Azure Front Door
│ └── Regional only
│ ├── WAF required → Application Gateway + WAF
│ └── Basic L7 → Application Gateway
└── TCP/UDP (non-HTTP)
├── Global routing (DNS-based) → Traffic Manager
├── Regional L4 → Azure Load Balancer (Standard)
└── Global L4 → Cross-region Load Balancer
Identity Selection
Who needs access?
├── Employees (cloud-only) → Microsoft Entra ID
├── Employees (hybrid, on-prem AD) → Entra ID + Entra Connect
├── Partners/vendors (B2B) → Entra External ID (B2B)
├── Customers (consumer-facing app) → Entra External ID (B2C)
└── Legacy apps needing Kerberos/LDAP (cloud-only) → Entra Domain Services
CLI / PowerShell Cheat Sheet
Identity & RBAC
az ad user create --display-name "John Doe" --user-principal-name john@domain.com --password P@ssw0rd
az role assignment create --assignee <object-id> --role "Contributor" \
--scope /subscriptions/<sub-id>/resourceGroups/<rg>
az role definition create --role-definition @custom-role.json
az role assignment list --assignee <object-id> --all
Storage
az storage account create --name mystorageacct --resource-group myRG \
--location eastus --sku Standard_GRS
az storage blob generate-sas --account-name mystorageacct --auth-mode login \
--container-name mycontainer --name myblob --permissions r --expiry 2026-12-31
azcopy sync 'https://source.blob.core.windows.net/container' \
'https://dest.blob.core.windows.net/container' --recursive
Networking
az network vnet create --name myVNet --resource-group myRG \
--address-prefix 10.0.0.0/16 --subnet-name default --subnet-prefix 10.0.0.0/24
az network nsg rule create --name AllowSSH --nsg-name myNSG --resource-group myRG \
--priority 100 --protocol Tcp --direction Inbound --destination-port-ranges 22 --access Allow
az network watcher test-ip-flow --vm <vm-id> --direction Inbound --protocol TCP \
--local 10.0.0.4:22 --remote 203.0.113.0:12345
Compute
az vm create --resource-group myRG --name myVM --image Ubuntu2204 --size Standard_D2s_v3 \
--admin-username azureuser --generate-ssh-keys --zone 1
az vm deallocate --resource-group myRG --name myVM
az vm resize --resource-group myRG --name myVM --size Standard_D4s_v3
az vm start --resource-group myRG --name myVM
az vmss create --resource-group myRG --name myScaleSet --image Ubuntu2204 \
--upgrade-policy-mode automatic --admin-username azureuser --generate-ssh-keys
Common Exam Traps & Tips
AZ-104 Traps
1
ReadOnly lock on storage account blocks listing access keys — even though it looks like a read. Listing keys is internally a write operation.
2
NSG + subnet = BOTH must allow — traffic denied by either level is blocked. Don't assume subnet NSG alone controls everything.
3
VNet peering is non-transitive — A↔B and B↔C does NOT give A↔C connectivity. Requires UDR + NVA in hub.
4
Availability Set ≠ Availability Zones — AV Sets = rack failures within one DC. AV Zones = entire datacenter failures.
5
User Access Administrator can assign roles but CANNOT manage Azure resources. Often confused with Contributor.
6
Tags are not inherited by child resources — must use Azure Policy to enforce tag inheritance.
7
Standard Load Balancer requires NSG — without NSG, all inbound traffic is blocked by default on Standard LB.
8
Basic VPN Gateway SKU doesn't support BGP, zone redundancy, or active-active mode. Use VpnGw1 or higher.
9
Archive tier blobs must be rehydrated before access — this takes hours, not minutes.
10
Service Endpoints don't extend to on-prem. Private Endpoints do (via ExpressRoute/VPN).
AZ-305 Traps
1
SQL MI vs. SQL DB — SQL Agent jobs, cross-DB queries, CLR, linked servers → Managed Instance ONLY.
2
Cosmos DB consistency — "Session" is the default and best for most apps. "Strong" kills performance across regions.
3
ASR vs. Azure Backup — ASR = DR replication for whole workloads. Backup = point-in-time restore for individual data items.
4
Composite SLA is always LOWER than individual SLAs for serial dependencies. Two 99.9% services in series = 99.8%.
5
Traffic Manager = DNS only — it doesn't proxy traffic. Failover isn't instantaneous due to DNS TTL.
6
Front Door vs. App Gateway — Front Door = global HTTP/HTTPS + CDN. Application Gateway = regional L7 only.
7
Warm standby ≠ Hot standby — warm standby is scaled down until failover; hot standby runs at full capacity.
8
Entra Domain Services ≠ Entra ID — AADS provides Kerberos/LDAP for lift-and-shift. Entra ID is REST/OAuth only.
9
Policy remediation requires assigning a managed identity to the policy assignment for DeployIfNotExists/Modify effects.
10
vWAN vs. Hub-spoke — vWAN for simplicity at scale. Hub-spoke for custom NVAs and complex routing requirements.
General Strategy
✓
Read the entire question — Microsoft often adds critical constraints at the end that rule out most answer choices.
✓
"Minimum cost" + requirements = eliminate over-engineered solutions first. Pick the simplest service that meets all requirements.
✓
"Least administrative effort" = prefer managed PaaS services over IaaS VMs.
✓
"On-premises" in the scenario = think Private Endpoint, ExpressRoute, Hybrid Entra Join.
✓
AZ-305 case studies — read all requirements and constraints tab BEFORE looking at individual questions.
Recommended Study Resources
ℹ️ Study Guide Metadata
Compiled from Microsoft Learn official study guides. AZ-104 updated April 17, 2026. AZ-305 updated April 17, 2026.