Azure high availability solution with synchronization of website and SQL server data

First, it is recommended to use Azure SQL, setting a SQL server by yourself is not secure and "standard". Azure SQL provides you many advanced features including high availability and disaster recovery. Use Azure SQL and configure failover group according to the doc. Now, your data layer is high availability enabled.

Second, suppose you have migrated your database to Azure SQL, create a new VM in the same virtual network of your current VM. And running the same application in new VM. Create a load balancer and add these two VMs to the backend pool. Now your application layer is high availability enabled.


You can configure StarWind VSAN on a top of just two virtual machines and get real highly-available storage solution in the cloud. I believe this manual should be useful for you, check it out.


You can easy to create a high availability set with the same servers, then set this high availability set as a backend pool in LB. It's recommended to use the Azure SQL database since Azure has many built-in platform features that support highly available applications. However, It's easy to use the local SQL server on the same Azure VM and you can get the quick response since application and database host in the same Azure VM.

For Azure SQL Database, data is replicated synchronously within the region. Also, To achieve high availability with Virtual Machines, you must use availability sets, which serve a similar function to fault and upgrade domains.

Refer to this doc.