From an architectural point of view, it’s recommended to place any VMs which need to communicate with each other in the same region and availability zone to lower latency. Note that lower latency is a side effect not a design goal of using AZs.
One further level of latency optimisation possible in Azure is called Proximity Placement Groups.
What are Proximity Placement Groups?
While Availability zones allow resources to be placed in the same group of physical data centers, this still could mean they’re in different data centres perhaps many kilometers apart…
Proximity Placement Groups assure that resources are placed in the same data centre…
By using PPGs absolute physical distance which is one of the main factors impacting network latency between VMs can be reduced.
PPGs can benefit all multi-tiered apps but are ideal in very latency sensitive applications such as those used in banking, trading etc. When combined with accelerated networking sub-millisecond latency times between VMs can be achieved.
The data centre associated with a PPG is allocated when the first VM is added to the group. All subsequent VMs added to the PPG will get added to the same data centre as the first VM. A subsequent request for a different virtual machine SKU may fail since it’s not available in the data centre already selected. For this reason Microsoft recommends adding the most exotic SKU to your PPG first.
Creating Proximity Placement Groups in Azure Portal
Adding PPGs in the Azure portal is easy. Search for ‘proximity placement groups’, visit the default listing page and click new.
All that’s needed is resource group, region and name. Obviously your region must be the same as where your virtual machines are located.
You can create PPGs via ARM templates, the CLI and PowerShell too.
Note that you need to create the PPG first using one of the above approaches before you can place a new or existing VM into it, there is no ability to create a new PPG inline (as you might with resource groups).
When creating a new VM, the PPG section is found near the end of the page on the Advanced tab.
When editing an existing VM the PPG section is found in Settings -> Configuration. Note the virtual machine needs to be stopped/deallocated to amend its PPG config.