Preparing your Azure account

BigAnimal requires you to check the readiness of your Azure subscription before you deploy your clusters. The checks that you perform ensure that your Azure subscription is prepared to meet your clusters' requirements and resource limits, such as:

  • Are the necessary Azure resource providers registered for your subscription?
  • Is there a restriction on SKUs for the standard Esv3 family and standard D2_v4 VM size?
  • Is there a sufficient limit on the number of vCPU or public IP addresses in your region?
Note

Before proceeding, see Understanding requirements in Azure for details on planning for your clusters' requirements and resource limits in Azure.

Check for readiness

We recommend using the biganimal-csp-preflight script to check whether all requirements and resource limits are met in your subscription. However, you can also manually check the requirements using the Azure CLI or the Azure Portal.

Method 1: Use EDB's shell script

EDB provides a shell script, called biganimal-csp-preflight, which checks whether requirements and resource limits are met in your Azure subscription based on the clusters you plan to deploy.

  1. Open the Azure Cloud Shell in your browser.

  2. From the Azure Cloud Shell, run the following command:

    curl -sL https://raw.githubusercontent.com/EnterpriseDB/cloud-utilities/main/azure/biganimal-csp-preflight | bash -s <target-subscription> <region> [options]

    The required arguments are:

    ArgumentDescription
    <target-subscription>Azure subscription ID of your BigAnimal deployment.
    <region>Azure region where your clusters are being deployed. See Supported regions for a list of possible regions.

    Possible options are:

    OptionsDescription
    -h or --helpDisplays the command help.
    -i or --instance-typeAzure VM instance type for the BigAnimal cluster. The help command provides a list of possible VM instance types. Choose the instance type that best suits your application and workload. Choose an instance type in the memory optimized ESv3 or ESv4 series for large data sets. Choose from the compute optimized FSv2 series for compute-bound applications. Choose from the general purpose DSv3 or DSv4 series if you don't require memory or compute optimization. See Sizes for virtual machines in Azure for information to help you choose the appropriate instance type.
    -a or --high-availabilityDEPRECATED - Enables high availability for the cluster. Replaced with -x or --cluster-architecture command.
    -x or --cluster-architectureDefines the cluster architecture and can be single, ha, or eha. See Supported cluster types for more information.
    -e or --endpointType of network endpoint for the BigAnimal cluster, either public or private. See Cluster networking architecture for more information.
    -r or --activate-regionSpecifies region activation if no clusters currently exist in the region.
    --onboardChecks if the user and subscription are correctly configured.

    The behavior of the script defaults to --onboard if you provide no other options.

    For example, if you want to deploy a cluster in an Azure subscription having an ID of 12412ab3d-1515-2217-96f5-0338184fcc04, with an instance type of e2s_v3, in the eastus2 region, in a public network, and with no existing cluster deployed, run the following command:

    curl -sL https://raw.githubusercontent.com/EnterpriseDB/cloud-utilities/main/azure/biganimal-csp-preflight | bash -s \
    12412ab3d-1515-2217-96f5-0338184fcc04 eastus2 \
    --instance-type e2s_v3 \
    --cluster-architecture ha \
    --endpoint public \
    --activate-region

The script displays the following output:

  • A list of required Azure resource providers and their registration status. Ensure that you register the resource providers that are displayed as NotRegistered in the RegistrationState column. See Register Azure resource providers.

    #######################
    # Provider            #
    #######################
    
    Namespace                                RegistrationPolicy    RegistrationState    ProviderAuthorizationConsentState
    ---------------------------------------  --------------------  -----------------
    Microsoft.Capacity                       RegistrationRequired  NotRegistered
    Microsoft.ContainerInstance              RegistrationRequired  NotRegistered
    Microsoft.Compute                        RegistrationRequired  NotRegistered
    Microsoft.ContainerService               RegistrationRequired  NotRegistered
    Microsoft.KeyVault                       RegistrationRequired  NotRegistered
    Microsoft.ManagedIdentity                RegistrationRequired  NotRegistered
    Microsoft.Network                        RegistrationRequired  NotRegistered
    Microsoft.OperationalInsights            RegistrationRequired  NotRegistered
    Microsoft.OperationsManagement           RegistrationRequired  NotRegistered
    Microsoft.Portal                         RegistrationFree      Registered
    Microsoft.Storage                        RegistrationRequired  Registered
    Microsoft.AlertsManagement               RegistrationRequired  NotRegistered
  • Whether your Azure subscription restricts vCPUs for the Standard_D2_v4 and Standard_E2s_v3 VM size families in your region (and availability zone, if HA is enabled). Open a support request to remove SKU restrictions for the VM families with NotAvailableForSubscription displayed in the Restrictions column. See Fix issues with SKU restrictions.

    #######################
    # Virtual-Machine SKU #
    #######################
    
    ResourceType      Locations              Name                    Zones    Restrictions
    ------------      ---------              ----                    -----    ------------
    virtualMachines   eastus2                Standard_D2_v4          1,2,3    None
    virtualMachines   eastus2                Standard_E2s_v3         1,2,3    NotAvailableForSubscription, type: Zone, locations: eastus2, zones: 1,3
    
  • Whether your Azure subscription has sufficient limits on vCPUs and IP addresses for your region. Open a support request to raise limits for the vCPUs and IP addresses if they exceed the available VM families with NotAvailableForSubscription displayed in the Restrictions column. See Increase Public IP addresses and Increase vCPU limits.

    #######################
    # Quota Limitation #
    #######################
    
     Resource                        Limit   Used    Available    Gap   Suggestion
     Total Regional vCPUs            130     27      103          89    OK
     Standard Dv4 Family vCPUs       20      14      6            0     Need Increase
     Standard ESv3 Family vCPUs      20      4       16           8     OK
     Public IP Addresses — Standard  20      3       17           16    OK

Method 2: Manually check readiness

You can manually check the requirements instead of using the biganimal-csp-preflight script.

Check Azure resource provider registrations using Azure Cloud Shell

To check if an Azure resource provider is registered, use the following command.

az provider show -n Microsoft.ContainerService
Output
Namespace                   RegistrationPolicy    RegistrationState
--------------------------  --------------------  -------------------
Microsoft.ContainerService  RegistrationRequired  Registered

Check for SKU restrictions for the specific VM size

You can check SKU restrictions for the VM size using the Azure Cloud Shell. For example, to check the Standard_E2s_v3 VM SKU restriction in eastus2 location for all zones, run the following command:

az vm list-skus -l eastus2 --zone --size Standard_E2s_v3
Output
ResourceType     Locations    Name              Zones    Restrictions
---------------  -----------  ---------------   -------  ------------
virtualMachines  eastus2      Standard_E2s_v3   1,2,3    NotAvailableForSubscription, type: Zone, locations: eastus2, zones: 3,2

Alternatively, to check for SKU restrictions using the Azure Portal, see Solution 3 - Azure portal.

Check the resource limits for vCPUs and public IP addresses for your region

To check if you have adequate Azure resources to provision new clusters:

  1. In the Azure Portal, select Subscription.
  2. Select your specific subscription.
  3. Select Usage + quotas in the Settings section.
  4. Search for Total Regional vCPUs and select the Location to check the regional vCPUs limits.
  5. Search for Dv4 and Esv3 to view virtual machine limits.
  6. Search for Public IP addresses to view network limits.

Configure your Azure subscription

After checking whether the requirements and resource limits are met, configure your Azure subscription.

Note

Before proceeding, see Understanding requirements in Azure for details on planning for your clusters' requirements and resource limits in Azure.

Register Azure resource providers

To register resource providers using the Azure Portal:

  1. In the Azure Portal, select Subscription.
  2. Select your specific subscription.
  3. In the navigation panel Settings group, select Resource providers.
  4. Review the status of the required providers. To register a provider, select the provider and, on the top menu, select Register.

To register resource providers using the Azure CLI, use the register command. For example:

az provider register -n Microsoft.ContainerService
Output
Registering is still on-going. You can monitor using 'az provider show -n Microsoft.ContainerService

Fix issues with SKU restrictions

Open a support request to remove SKU restrictions in a particular region.

Increase public IP addresses limits

Increase the limit of Public IP Addresses - Basic and Public IP Addresses - Standard for the regions where you plan to deploy your clusters with the total number of clusters you plan to use.

You can increase the number of public IP addresses for your account either by using the Azure portal or by submitting a support request. See:

Increase vCPU limits

You can increase the number of Dv4 or Esv3 family virtual machines per region by using the Azure Portal or by submitting a support request. See: