Azure Marketplace Managed Application

Voyage Azure managed applications are Voyage models deployed as real-time inference API endpoints in a customer Azure account and virtual network (VNet). Azure managed applications offer several benefits to customers:

  1. Data flow and access control. Data never leave the customers' virtual network, comprehensively addressing data privacy risks associated with third-party or multi-tenant serving.
  2. Reliability and compliance backed by Azure. Only Azure will be the customer's sub-processor, and customers will inherit all Azure's reliability and compliance guarantees.
  3. Billing and payment through Azure. By transacting through a marketplace listing, customers can utilize their existing Azure billing information and credits to procure Voyage models. This streamlined process eliminates the need to manage a separate third-party payment and billing system.

Pricing. Voyage Azure managed applications are billed hourly. The total hourly cost will be the sum of the virtual machine (VM) price ($5 per hour) and the price of the underlying instance in your region. There is no management cost for this managed Azure application; this is why the listed Azure managed application monthly price is $0.

Prerequisites

  1. Azure Subscription. Ensure you have an existing Azure subscription.
  2. Virtual Network. You must have an existing virtual network into which you will deploy a Voyage Azure managed application. If do not have an existing one and need help creating one, see the Create a Virtual Network section below.
  3. Quota in Subscription and Region. You must have 24 Standard NCADS_A100_v4 Family vCPUs quota for each Voyage Azure managed application you want to deploy. The quota is specific to an Azure subscription and region. If you need help checking your quota or requesting a quota increase, see the Quota section below.

If you already meet all the prerequisites, you can jump to the Create a Voyage API Endpoint in Virtual Network section below.

Quota

In this section, we walk through how to check your quota and request an increase if necessary. You can skip this section if you know you have sufficient quota.

Check Quota

  1. Go to Subscriptions in your Azure portal.

    check-quota-subscriptions
  2. Select the subscription you want to use for the Azure managed application. In the example below, we selected our "Pay-As-You-Go" subscription. Within your subscription page, select Usage + quotas under Settings.

  3. Enter "Standard NCADS_A100_v4 Family vCPUs" in the search bar. Filter the Region for your desired region; in the example below, we filtered the region for "West US 2."

  4. Ensure you have sufficient "Standard NCADSA100_v4 Family vCPUs" quota for the number of Voyage Azure managed applications you want to deploy. Each Voyage Azure managed application requires 24 Standard NCADS_A100_v4 Family vCPUs. If you do not have sufficient quota, continue to the next section (Request Quota Increase) to request more quota.

Request Quota Increase

From the Usage + quotas page of your desired subscription, you can request to increase your quota:

  1. Check the checkbox for the “Standard NCADS_A100_v4 Family vCPUs” quota. Select the New Quota Request drop down, and select Enter a new limit. A New Quota Request panel will appear.

  2. In the New Quota Request panel, enter your desired quota in the New limit field. Click Submit.

Create a Virtual Network

You can skip this step if you already have an existing virtual network into which you want to deploy your Voyage Azure managed application.

  1. Click Create a resource.

  2. Search for “virtual network”. Select Virtual network from the results.

  3. Click Create.


  4. Fill out the fields in the Basics tab.

    FieldValue
    SubscriptionSelect your subscription.
    Resource groupSelect an existing resource group or create a new resource group.
    Virtual network nameProvide a name for your virtual network.
    RegionSelect your desired region. We assume your desired region has the required resource quota (see Quota in Subscription and Region prerequisite).
  5. There are several advanced configurations like security, IP addresses, and tags. If you have advanced configuration requirements, feel free to enter them in the appropriate tabs. Voyage does not require any advanced configuration to deploy our application. If you do not need any advanced configuration or do not know, click Review + create to directly review and create your application.

  6. In the Review + create tab, review your configuration and if it looks good, click Create. Otherwise, go to previous tabs to make changes; you can click on the Previous button at the bottom or directly click on the tab of interest.

  7. Verify your virtual network creation. As it is being created, you will see the status as "Deployment is in progress."

    You will see the status change to "Your deployment is complete" when your virtual network has been successfully created.

Create a Voyage API Endpoint in Virtual Network

We will deploy a Voyage Azure managed application to create a Voyage API endpoint in your virtual network.

  1. Select the Voyage Azure managed application you would like to subscribe to in the Azure Marketplace.

  2. Click Get it Now.

  3. Click Continue in the Create this app in Azure modal.

  4. Create a Standard Plan Azure managed application by selecting "Standard Plan" and clicking Create.

  5. Fill out the fields in the Basics tab. Click Next to move to Network Settings.

    FieldValue
    SubscriptionSelect your subscription.
    Resource groupSelect the resource group that contains your desired virtual network.
    RegionSelect your desired region. We assume your desired region has the required resource quota (see Quota in Subscription and Region prerequisite).
    Application NameProvide a name for your application.
  6. Fill out the fields in the Network Settings tab. Once complete, click Next to move to Review + create.

    FieldValue
    Select an existing virtual network (do not create a new vnet)Select your desired existing virtual network. The Voyage API endpoint will be deployed into this virtual network.
    Select or create a subnet that allows HTTP trafficSelect your desired subnet. Select "default" if you do not have custom or advanced subnets within your virtual network. The deployed Voyage API endpoint will have a private IP address within this subnet.
  7. In the Review + create tab, review your configuration and if it looks good, click Create. Otherwise, go to previous tabs to make changes; you can click on the Previous button at the bottom or directly click on the tab of interest.

  8. Verify your Voyage API endpoint creation. As it is being created, you will see the status as "Deployment is in progress."

    You will see the status change to "Your deployment is complete" when your Voyage API endpoint has been successfully created.

    IMPORTANT: Click Go to resource to view the application properties.

  9. IMPORTANT: From the application resource page, get the private IP of the Voyage endpoint by clicking on Parameters and Outputs under the Settings section. Take note of the private IP (”privateIPAddress” output); you will need this IP address to invoke the application endpoints.



Accessing Voyage API Endpoints

Once deployed, the Voyage API endpoints can be accessed via HTTP requests by any service within the same virtual network.

Create Bastion Virtual Machine

To demonstrate how to access the Voyage API endpoints, we will create a bastion virtual machine within the same virtual network. If you’d like to use or have other existing machines/servers in the network to query the model endpoints, you can skip this section and jump to the Invoke Voyage API Endpoint section.

  1. From the Azure portal home, click Create a resource.

  2. Search for “virtual machine”. Select Virtual machine from the results.

  3. Click Create.

We will walk through a low-cost virtual machine configuration for demo purposes only. Advanced users are welcome to make customized configurations.

Basics

Fill out the fields in the Basics tab. Once complete, click Next to move to Disks.

FieldValue
SubscriptionSelect your subscription.
Resource groupSelect the resource group that contains your Voyage API endpoint.
Virtual machine nameProvide a name for your virtual machine.
RegionSelect the region of your Voyage API endpoint.
Availability optionsSelect “No infrastructure redundancy required”
Security typeSelect “Standard”.
ImageSelect “Ubuntu Server 24.04 LTS - x64 Gen2”.
VM architectureSelect “x64”.
Run with Azure Spot discountLeave box unchecked.
SizeSelect “Standard_B1s - 1 vcpu, 1GiB memory”.
Enable HibernationLeave box unchecked.
Authentication typeSelect “SSH public key”.
UsernameEnter “voyage”.
SSH public key sourceSelect “Generate new key pair”.
SSH Key TypeSelect “RSA SSH Format”.
Key pair nameEnter “vm-voyage_key”.
Public inbound portsSelect “Allow selected ports”.
Select inbound portsSelect “SSH (22)”.

Disks

Fill out the fields in the Disks tab. Once complete, click Next to move to Networking.

FieldValue
Encryption at hostLeave box unchecked.
OS disk sizeSelect “Image default (30 GiB)”.
OS disk typeSelect “Standard HDD (locally-redundant storage)”.
Delete with VMCheck the box.
Key managementSelect “Platform-managed key”.
Enable Ultra Disk compatibilityLeave box unchecked.

Networking

Fill out the fields in the Networking tab. Once complete, click Review + create.

FieldValue
Virtual networkIMPORTANT. Select the virtual network in which your Voyage API endpoint is deployed.
SubnetIMPORTANT. Select the subnet within the virtual network in which your Voyage API endpoint is deployed.
Public IPIMPORTANT. Create a new public IP. If you do not create this, you will not be able to access your virtual machine from outside the virtual network.
NIC network security groupSelect “Basic”.
Public inbound portsSelect “Allow selected port”.
Select inbound portsSelect “SSH (22)”.
Delete public IP and NIC when VM is deletedLeave box unchecked.
Enable accelerated networkingLeave box unchecked.
Load balancing optionsSelect “None”.

Review and Create

  1. In the Review + create tab, review your configuration and if it looks good, click Create. Otherwise, go to previous tabs to make changes; you can click on the Previous button at the bottom or directly click on the tab of interest.


  2. A new Generate new key pair modal will appear. Click Download private key and create resource to save the key to your local machine. Note where you saved the key.

  3. Verify your bastion virtual machine creation. As it is being created, you will see the status as "Deployment is in progress." You will see the status change to "Your deployment is complete" when your bastion virtual machine has been successfully created. Click Go to resource to get your bastion virtual machine public IP address.


  4. In your bastion virtual machine page, you can find the public IP address in the Overview section, under Essentials.


  5. Update the permissions of the SSH private key you downloaded to read-only:
    chmod 400 vm-voyage_key.pem

  6. Securely login into the bastion virtual machine shell (SSH) using your private key. The format is: ssh -i {private-ssh-key} voyage@{bastion-vm-public-ip-address}. For example: ssh -i vm-voyage_key.pem [email protected].

Invoke Voyage API Endpoint

  1. Verify Voyage API is reachable with the following endpoint: http\://{voyage-app-vnet-private-ip}/info. For example, using cURL: curl -X POST http://10.0.0.4/info. An example successful response: "Voyage AI model [voyage-multilingual-2] up and running!"
  2. You can make a request to the Voyage API with the following endpoint: http://{voyage-app-vnet-private-ip}/embeddings. For example, using cURL:
curl -X POST "http://10.0.0.4/embeddings" -H "Content-Type: application/json" -d '{ "input": ["Best-in-class embedding models and rerankers"], "input_type": "query" }'

An example response:

{"data":[{"object":"embedding","embedding":["-0.031104945",...,"-0.037366055"],"index":0}],"object":"list","model":"voyage-multilingual-2","usage":{"total_tokens":13}}

For all the endpoint parameters, please see our API reference.

Delete a Voyage API Application

To delete your Voyage API endpoint, go to your application and click the Delete button in the Overview section. A confirmation modal will appear; click Yes in the modal to confirm the deletion. Note, you do not need to worry about deleting the associated managed resource group; it will be deleted as part of the application deletion.

Delete Bastion Virtual Machine

If you provisioned a bastion virtual machine, be sure to delete the virtual machine if you no longer need it. It will incur wasteful costs, potentially leading to unexpected charges.

  1. Go to your bastion virtual machine and click the Delete button in the Overview section. A delete panel will appear.

  2. In the delete panel, ensure all the virtual machine resources are deleted by checking all the checkboxes shown in the screenshot below: Apply force delete, OS disk, Network interfaces, Public IP addresses. Check the acknowledgment checkbox: "I have read and understand that this virtual machine as well as any selected associated resources listed above will be deleted." Finally, click Delete.

If you need assistance subscribing and deploying a Voyage Azure managed application from the Azure Marketplace, please send an email to [email protected] or join our Discord.