Accessing Azure and AWS Images
Choosing Cloud Instance Types
The following recommendations are intended as guidelines to instance type selection, derived from extensive lab-based testing and analysis. It is extremely important to keep in mind that inherent differences in deployment-specific usage patterns may necessitate use of larger, or smaller, instance types than these general-purpose recommendations.
Azure
Expected User Count | Recommended Instance Type | Specs |
up to 500 | F2 | 2 core, 4GB RAM |
up to 2000 | F4s_v2 | 4 core, 8GB RAM |
up to 5000 | F8s_v2 | 8 core, 16GB RAM |
AWS
Expected User Count | Recommended Instance Type | Specs |
up to 600 | c5.large* | 2 vCPU, 4GB RAM |
up to 1000 | c5.xlarge | 4 vCPU, 8GB RAM |
up to 3000 | c5.2xlarge | 8 vCPU, 16GB RAM |
NOTE: * c5 usage and performance numbers are valid ONLY with the April HF AMI (available by the end of April 2020).
Specifying Tunnel Address Pools
In traditional datacenter deployments the most commonly used method for managing tunnel client addressing is "Routed address pool (Dynamic)", a DHCP-driven model. However, DHCP restrictions enforced by both AWS and Azure within their virtual infrastructures cause this model to be impractical to use in those environments. This leaves two primary alternatives for use in cloud deployments - "Routed address pools (Static)" and "Translated address pools (Source NAT)". For most cloud deployments the first option, Static pools, is the recommended method.
Routed address pool (Static)
Static address pools allow for every tunnel client to have an independent and distinct IP address, and this type of supports very large pool sizes in order to maximize the number of tunnels that a particular instance will support. As when running in ESXi and HyperV deployments this is expected to support up to 5000 concurrent clients in most cases.
For compatibility with Azure and AWS environments this type of addressing will require additional configuration within the specific cloud environment as outlined here:
Translated address pool (Source NAT)
While convenient to set up and manage, Source NAT pools have several attributes that limit suitability except in very specific situations.
Due to inherent NAT limitations (source port exhaustion) the number of individual user tunnels that can be managed is limited to approximately 500 or fewer per SMA appliance. Deployments that expect to scale beyond this number will need to be designed as a GTO cluster with the count of managed nodes derived from the expected user count. It is recommended to target a 250-300 max tunnels per appliance in order to leave a safe margin.
There may be applications that do not run well in NAT environments.
On both AWS and Azure the NAT IP address must be explicitly added to the appliance's virtual network interface as follows:
Additional Note for both AWS and Azure for access thru the SMA to the Public Internet:
If it is desired to allow remote users to access the internet thru a cloud based SMA, there is an additional configuration required. There is a limitation in the NAT capability of these cloud platforms in relation to IP address pools.
- Routed Address Pool Static:
With a Routed Address Pool Static you must use a separate device, like an NSv, to handle the NAT translations. The cloud-based services to not inherently provide this ability.
- Source Route NAT Pool:
You can use the same approach for a Source Route NAT pool, or you can add a second IP address to the instance for that Source Route NAT IP and add an AWS Elastic IP (or the Azure equivalent) to that second instance IP. This allows the cloud service to handle the NAT for the single Pool IP address.
The typical scaling concerns for Source Route NAT applies in this case. With larger numbers of users this does not scale.