---
title: "Microsoft Azure"
url: "https://docs.yugabyte.com/stable/deploy/public-clouds/azure/azure-arm/"
---

# Microsoft Azure

Deploy YugabyteDB on Microsoft Azure using Azure Resource Manager (ARM).

Deploy using Azure Resource Manager

YugabyteDB maintains an Azure Resource Manager template for deploying YugabyteDB on Azure cloud. This automated deployment deploys a multi-zone YugabyteDB universe to three nodes residing in three separate public subnets. The template is in the [Azure Resource Manager Template](https://github.com/yugabyte/azure-resource-manager "Azure Resource Manager Template") repository.

[![](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fyugabyte%2Fazure-resource-manager%2Fmaster%2Fyugabyte_deployment.json) [![](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/visualizebutton.png)](http://armviz.io/#/?load=https%3A%2F%2Fraw.githubusercontent.com%2Fyugabyte%2Fazure-resource-manager%2Fmaster%2Fyugabyte_deployment.json)

## Prerequisites

### Create a resource group for your YugabyteDB deployment

1. Log in to your [Azure portal](https://portal.azure.com/ "Azure portal").
2. Click Resource groups from the menu of services to access the Resource Groups blade. You will see all the resource groups in your subscription listed in tblade.
3. Click Add (+) to create a new resource group. The Create Resource Group blade appears.
4. Provide the needed information for the new resource group.
5. Click Create. The resource group might take a few seconds to create. Once it is created, you see the resource group on the Azure portal dashboard.

### Create an SSH key to get access to deployed YugabyteDB VMs

1. Open the terminal on your local computer.
2. Run the following command:
   
   ```sh
   $ ssh-keygen
   ```
   
   The utility prompts you to select a location for the keys. By default, the keys are stored in the `~/.ssh` directory with the file names `id_rsa` for the private key and `id_rsa.pub` for the public key. Using the default locations allows your SSH client to automatically find your SSH keys when authenticating.
3. Press **ENTER** to accept.
   
   ```output
   Generating a public/private RSA key pair.
   Enter file in which to save the key (/home/username/.ssh/id_rsa):
   ```
4. After you select a location for the key, you are prompted to enter an optional passphrase which encrypts the private key file on disk.
   
   ```output
   Created directory '/home/username/.ssh'.
   Enter passphrase (empty for no passphrase):
   Enter same passphrase again:
   ```

You now have a public and private key that you can use to authenticate YugabyteDB VMs.

```output
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:EX:AM:PL:E3:3e:a9:de:4e:77:11:58:b6:90:26 username@203.0.113.0
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+
```

## Deploy using Azure Cloud Shell

1. Launch [Azure Cloud Shell](https://shell.azure.com "Azure Cloud Shell").
2. Clone the [Azure Resource Manager Template](https://github.com/yugabyte/azure-resource-manager "Azure Resource Manager Template") repository.
   
   ```sh
   $ git clone https://github.com/yugabyte/azure-resource-manager.git
   ```
3. Change the current directory to the cloned GitHub repository directory
   
   ```sh
     $ cd azure-resource-manager
   ```
4. Use the Azure CLI command to create deployments.
   
   ```sh
    $ az group deployment create --resource-group <Your-Azure-Resource-Group> --template-file yugabyte_deployment.json --parameters ClusterName='<Your-Cluster-Name>'  SshUser='<Your-SSH-USER>' YBVersion='2.0.6.0' SshKeypair='<Your-SSH-USER-PublicKey-File-Contents>'
   ```
5. After the deployment creation is complete, you can describe it as shown below.
   
   ```sh
   $ az group deployment show -g <Your-Azure-Resource-Group> -n <Your-Deployment-Name> --query properties.outputs
   ```
   
   The output displays the YugabyteDB Admin URL, JDBC URL, YSQL, and YCQL connection strings. You can use the YugabyteDB Admin URL to access the Admin portal.

## Deploy using Azure Portal

1. Clone the following repository locally.
   
   ```sh
   $ git clone https://github.com/yugabyte/azure-resource-manager.git
   ```
2. Create a resource group. To create a new resource group, select **Resource groups** from the [Azure portal](https://portal.azure.com/ "Azure portal").
3. Under newly created Resource groups, select **Add**.
4. In opened marketplace, search for Template deployment (deploy using custom templates) and click **Create**.
5. Click **Build your own template in the editor**.
6. Click **Load file** in the Specify template section and upload the `yugabyte_deployment.json` file from the cloned repository.
7. Click **Save** at the bottom of the window.
8. Provide the required details.
9. Check the **Terms and Condition** checkbox and click **Purchase**.

Once deployments are completed, you can access the YugabyteDB Admin from the URL you get in the deployment output section.
