This design demonstrates Storage Redundancy.
Topology: The Storage Account is in a Spoke VNet (Private Link).
+--------------+ +--------------------------+ +--------------+
| User / App | | HUB VNet | | SPOKE VNet |
| | | (DNS Resolver) | | (Data) |
+------+-------+ +------------+-------------+ +------+-------+
| | |
v | (Peering) |
+------+-------+ v v
| Private | +------------+-------------+ +------+-------+
| Endpoint |---------->| Private DNS Zone |<--------->| Storage |
| | | (privatelink.blob) | | Account |
+--------------+ +--------------------------+ +------+-------+
PRIMARY REGION (East US)
+-----------------------------------------------------------------------+
| HUB VNet: vnet-hub (10.0.0.0/16) |
| +-----------------------+ |
| | Private DNS Zone | |
| +-----------|-----------+ |
| | |
| v (Peering) |
+---------------|-------------------------------------------------------+
|
+---------------|-------------------------------------------------------+
| SPOKE VNet: vnet-storage-spoke (10.1.0.0/16) |
| +-----------------------+ |
| | Subnet: PrivateLink | |
| | [Private Endpoint] | |
| +-----------|-----------+ |
| | |
| v |
| +-----------------------+ |
| | Storage Account | |
| | (GZRS) | |
| +-----------------------+ |
+-----------------------------------------------------------------------+
SECONDARY REGION (West US)
+-----------------------------------------------------------------------+
| DR STRATEGY |
| +-----------------------+ |
| | Storage Replica | |
| | (Async Copy) | |
| +-----------------------+ |
+-----------------------------------------------------------------------+
1. Write: App writes to blob.core.windows.net.
2. DNS: Resolves to Private IP 10.1.1.5.
3. Commit: Data written to 3 Zones in East US.
4. Replicate: Data replicated to West US.
1. Create Resource Group: rg-design06-storage. Region: East US.
2. Create VNet:
* Name: vnet-storage-spoke.
* Address space: 10.1.0.0/16.
* Subnet: snet-privatelink (10.1.1.0/24).
3. Peering: Peer vnet-storage-spoke to vnet-hub.
1. Search: "Storage accounts" -> + Create.
2. Resource group: rg-design06-storage.
3. Name: stgzrscorp[uniqueid].
4. Region: East US.
5. Performance: Standard.
6. Redundancy: Geo-zone-redundant storage (GZRS).
* *Note: This ensures data is in 3 AZs in East US AND replicated to West US.*
7. Advanced tab:
* Enable storage account key access: Enabled (or Disabled if using Entra ID only).
8. Networking tab:
* Public network access: Disabled (We will use Private Link).
9. Create.
1. Go to the new Storage Account.
2. Networking -> Private endpoint connections -> + Private endpoint.
3. Resource group: rg-design06-storage.
4. Name: pe-storage-blob.
5. Target sub-resource: blob.
6. Virtual Network: vnet-storage-spoke.
7. Subnet: snet-privatelink.
8. DNS integration:
* Integrate with private DNS zone: Yes.
* Zone: privatelink.blob.core.windows.net.
9. Create.
1. From a VM in the Hub (or peered Spoke):
* Run nslookup stgzrscorp.blob.core.windows.net.
* It should resolve to 10.1.1.x (Private IP).
2. Attempt to access via Public Internet (Browser):
* It should fail (403 Forbidden) because Public Access is disabled.
1. Go to Storage Account -> Redundancy.
2. Note the Last Sync Time.
3. Prepare for customer-managed failover: (This is a disruptive action, usually for testing or real disaster).
* *Note: In a real scenario, you would click "Prepare for failover".*