Bird
Raised Fist0
Azurecloud~5 mins

Disaster recovery strategies in Azure - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Disaster recovery strategies help you prepare for unexpected problems like data loss or system failures. They make sure your important apps and data can be quickly restored so your business keeps running smoothly.
When you want to protect your data from accidental deletion or corruption.
When you need to recover your applications quickly after a hardware failure.
When you want to keep your services running during a natural disaster or power outage.
When you want to meet legal or company rules about data backup and recovery.
When you want to test that your backup and recovery plans actually work.
Config File - main.tf
main.tf
provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "East US"
}

resource "azurerm_recovery_services_vault" "example" {
  name                = "exampleRecoveryVault"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  sku                 = "Standard"
}

resource "azurerm_site_recovery_replication_policy" "example" {
  name                = "exampleReplicationPolicy"
  resource_group_name = azurerm_resource_group.example.name
  recovery_vault_name = azurerm_recovery_services_vault.example.name
  recovery_point_retention_in_minutes = 1440
  application_consistent_snapshot_frequency_in_minutes = 60
  multi_vm_sync_status = "Enabled"
}

resource "azurerm_site_recovery_protection_container_mapping" "example" {
  name                         = "exampleContainerMapping"
  resource_group_name          = azurerm_resource_group.example.name
  recovery_vault_name          = azurerm_recovery_services_vault.example.name
  source_protection_container_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault/replicationFabrics/exampleFabric/protectionContainers/exampleContainer"
  target_protection_container_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault/replicationFabrics/exampleFabric/protectionContainers/exampleTargetContainer"
  policy_id                    = azurerm_site_recovery_replication_policy.example.id
}

This Terraform file creates an Azure Recovery Services Vault to store backup and recovery data.

It defines a replication policy that controls how often recovery points are saved and how long they are kept.

It also sets up a protection container mapping to link source and target containers for disaster recovery replication.

Commands
This command initializes Terraform in the current directory. It downloads the Azure provider plugin needed to create resources.
Terminal
terraform init
Expected OutputExpected
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/azurerm... - Installing hashicorp/azurerm v3.64.0... - Installed hashicorp/azurerm v3.64.0 (signed by HashiCorp) Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work.
This command applies the Terraform configuration to create the disaster recovery resources in Azure automatically without asking for confirmation.
Terminal
terraform apply -auto-approve
Expected OutputExpected
azurerm_resource_group.example: Creating... azurerm_resource_group.example: Creation complete after 2s [id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources] azurerm_recovery_services_vault.example: Creating... azurerm_recovery_services_vault.example: Creation complete after 15s [id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault] azurerm_site_recovery_replication_policy.example: Creating... azurerm_site_recovery_replication_policy.example: Creation complete after 5s [id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault/replicationPolicies/exampleReplicationPolicy] azurerm_site_recovery_protection_container_mapping.example: Creating... azurerm_site_recovery_protection_container_mapping.example: Creation complete after 4s [id=/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault/protectionContainerMappings/exampleContainerMapping] Apply complete! Resources: 4 added, 0 changed, 0 destroyed.
-auto-approve - Skip manual approval to apply changes immediately
This Azure CLI command checks the details of the Recovery Services Vault to confirm it was created successfully.
Terminal
az backup vault show --name exampleRecoveryVault --resource-group example-resources
Expected OutputExpected
{ "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.RecoveryServices/vaults/exampleRecoveryVault", "location": "East US", "name": "exampleRecoveryVault", "properties": { "provisioningState": "Succeeded" }, "resourceGroup": "example-resources", "sku": { "name": "Standard" }, "type": "Microsoft.RecoveryServices/vaults" }
--name - Specifies the vault name to show
--resource-group - Specifies the resource group of the vault
Key Concept

If you remember nothing else from this pattern, remember: setting up a Recovery Services Vault with replication policies ensures your data and apps can be restored quickly after a disaster.

Common Mistakes
Not specifying the correct resource group when running Azure CLI commands.
The command will fail or show no results because it looks in the wrong place.
Always include the --resource-group flag with the exact resource group name.
Skipping the terraform init step before applying configuration.
Terraform won't have the necessary provider plugins and will error out.
Run terraform init first to prepare the working directory.
Not defining a replication policy in the Recovery Services Vault.
Without a policy, backups and replication won't happen as expected.
Create and attach a replication policy to control backup frequency and retention.
Summary
Initialize Terraform to prepare Azure provider plugins.
Apply Terraform configuration to create Recovery Services Vault and replication policy.
Verify the vault creation using Azure CLI to ensure disaster recovery resources are ready.

Practice

(1/5)
1. What is the main purpose of a disaster recovery strategy in Azure?
easy
A. To keep cloud services safe and running during failures
B. To reduce the cost of cloud services
C. To increase the speed of the internet connection
D. To create new cloud services automatically

Solution

  1. Step 1: Understand disaster recovery goals

    Disaster recovery aims to keep services available and safe during unexpected problems.
  2. Step 2: Identify the main purpose in Azure context

    Azure disaster recovery focuses on maintaining service continuity and data protection.
  3. Final Answer:

    To keep cloud services safe and running during failures -> Option A
  4. Quick Check:

    Disaster recovery = keep services running [OK]
Hint: Disaster recovery means keeping services running during problems [OK]
Common Mistakes:
  • Confusing disaster recovery with cost saving
  • Thinking it improves internet speed
  • Assuming it creates new services automatically
2. Which Azure service is used to organize backups and failover plans for disaster recovery?
easy
A. Azure Virtual Machines
B. Azure Recovery Services Vault
C. Azure Blob Storage
D. Azure Functions

Solution

  1. Step 1: Identify the service for backup and failover

    Azure Recovery Services Vault is designed to manage backups and disaster recovery plans.
  2. Step 2: Compare with other services

    Virtual Machines run workloads, Blob Storage stores data, Functions run code, but only Recovery Services Vault organizes recovery.
  3. Final Answer:

    Azure Recovery Services Vault -> Option B
  4. Quick Check:

    Recovery Vault = backup and failover organizer [OK]
Hint: Recovery Services Vault manages backups and failover plans [OK]
Common Mistakes:
  • Choosing Virtual Machines as backup organizer
  • Confusing Blob Storage with recovery management
  • Selecting Functions for disaster recovery
3. Consider this Azure CLI command snippet for disaster recovery setup:
az backup vault create --resource-group MyGroup --name MyVault
az backup protection enable-for-vm --vault-name MyVault --vm MyVM --policy-name DefaultPolicy
What is the expected result after running these commands?
medium
A. The backup policy DefaultPolicy is deleted
B. A virtual machine named MyVault is created and backed up
C. A backup vault named MyVault is created and MyVM is protected by backup
D. The resource group MyGroup is deleted

Solution

  1. Step 1: Analyze the first command

    The first command creates a backup vault named MyVault in resource group MyGroup.
  2. Step 2: Analyze the second command

    The second command enables backup protection for the VM named MyVM using the DefaultPolicy in the vault MyVault.
  3. Final Answer:

    A backup vault named MyVault is created and MyVM is protected by backup -> Option C
  4. Quick Check:

    Vault created + VM backup enabled = A backup vault named MyVault is created and MyVM is protected by backup [OK]
Hint: First create vault, then enable VM backup in that vault [OK]
Common Mistakes:
  • Thinking a VM named MyVault is created
  • Assuming resource group is deleted
  • Believing backup policy is deleted
4. You wrote this Azure Recovery Services Vault configuration but backups are not starting:
resource "azurerm_recovery_services_vault" "example" {
  name                = "example-vault"
  location            = "eastus"
  resource_group_name = "example-rg"
  sku                 = "Standard"
}

resource "azurerm_backup_policy_vm" "example_policy" {
  name                = "example-policy"
  resource_group_name = "example-rg"
  recovery_vault_name = azurerm_recovery_services_vault.example.name

  backup {
    frequency = "Daily"
    time      = "02:00"
    timezone  = "UTC"
  }

  retention_daily {
    count = 7
  }
}
What is the likely error preventing backups from starting?
medium
A. The backup frequency must be hourly, not daily
B. The vault SKU must be Premium, not Standard
C. The resource group name is incorrect
D. The backup policy is missing the 'timezone' setting

Solution

  1. Step 1: Review backup policy requirements

    Azure backup policies require a timezone setting to schedule backups correctly.
  2. Step 2: Check configuration details

    The policy lacks a timezone field, which can prevent backups from starting.
  3. Final Answer:

    The backup policy is missing the 'timezone' setting -> Option D
  4. Quick Check:

    Missing timezone in policy stops backups [OK]
Hint: Backup policies need timezone to schedule backups [OK]
Common Mistakes:
  • Assuming SKU Standard is invalid
  • Thinking resource group name is wrong without evidence
  • Believing frequency must be hourly
5. You want to design a disaster recovery plan in Azure that automatically fails over your web app to a secondary region if the primary region goes down. Which combination of Azure services and features should you use?
hard
A. Azure Traffic Manager with Recovery Services Vault and automated failover runbooks
B. Azure Blob Storage with manual backup and restore scripts
C. Azure Functions with local backups only
D. Azure Virtual Machines without any backup or failover setup

Solution

  1. Step 1: Identify failover automation tools

    Azure Traffic Manager can route traffic to a secondary region automatically when the primary fails.
  2. Step 2: Combine with backup and automation

    Recovery Services Vault stores backups, and runbooks automate failover processes for quick recovery.
  3. Step 3: Evaluate other options

    Blob Storage and Functions alone do not provide automated failover; VMs without backup lack recovery.
  4. Final Answer:

    Azure Traffic Manager with Recovery Services Vault and automated failover runbooks -> Option A
  5. Quick Check:

    Traffic Manager + Recovery Vault + automation = automated failover [OK]
Hint: Use Traffic Manager plus Recovery Vault and automation for failover [OK]
Common Mistakes:
  • Choosing manual backup without automation
  • Using Functions without failover setup
  • Ignoring backup and failover in VM-only option