You can use Azure managed applications to deploy Voyage AI models as real-time inference API endpoints in a customer Azure account and virtual network (VNet). Azure managed applications offer the following key benefits:
Data flow and access control: Data never leaves your virtual network, addressing data privacy risks associated with third-party or multi-tenant serving.
Reliability and compliance backed by Azure: Azure serves as your sole sub-processor, so you inherit all of Azure's reliability and compliance guarantees.
Billing and payment through Azure: By using your existing Azure billing information and credits to purchase Voyage AI models, you don't need to manage a separate third-party payment and billing system.
Available Models
To see which models you can deploy, search for "Voyage AI by MongoDB" in Azure Marketplace.
To learn more about Voyage AI models, see Models Overview.
Pricing
Azure managed applications using Voyage AI models are billed hourly. The total hourly cost is 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, which is why the listed Azure managed application monthly price is $0.
Prerequisites
To deploy a Voyage Azure managed application, you must have the following:
An existing Azure subscription.
An existing virtual network to deploy a Voyage Azure managed application. For instructions, see the Create a Virtual Network section.
Sufficient GPU vCPU quota for the instance family required by your chosen Voyage Azure managed application. To learn how to check your quota or request a quota increase, see the Quota section.
If you meet all the prerequisites, skip to the Deploy a Voyage API Endpoint in Virtual Network section.
Quota
This section includes guidance on how to check your quota and request an increase if necessary. If you have sufficient quota, skip this section.
Check Quota
Go to Subscriptions in your Azure portal.
Verify quota.
Ensure you have sufficient GPU vCPU quota for the number of Voyage Azure managed applications you want to deploy. 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:
Create a Virtual Network
If you already have an existing virtual network into which you want to deploy your Voyage Azure managed application, skip this section.
Fill out Basics tab.
Fill out the fields in the Basics tab.
Field | Value |
|---|---|
Subscription | Select your subscription. |
Resource group | Select an existing resource group or create a new resource group. |
Virtual network name | Provide a name for your virtual network. |
Region | Select your desired region. This region must have the required resource quota. |
Configure advanced settings.
There are several advanced configurations like security, IP addresses, and tags. If you have advanced configuration requirements, 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.
Deploy a Voyage API Endpoint in Virtual Network
In this section, you deploy a Voyage Azure managed application in your virtual network.
Select the application.
Select the Voyage Azure managed application you would like to subscribe to in the Azure Marketplace.
Fill out Basics tab.
Fill out the fields in the Basics tab. Click Next to move to Network Settings.
Field | Value |
|---|---|
Subscription | Select your subscription. |
Resource group | Select the resource group that contains your desired virtual network. |
Region | Select your desired region. This region must have the required resource quota. |
Application Name | Provide a name for your application. |
Managed Resource Group | Provide a name for your managed resource group. |
Fill out Network Settings tab.
Fill out the fields in the Network Settings tab. Once complete, click Next.
Field | Value |
|---|---|
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 traffic | Select 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. |
If you need help deploying a Voyage API endpoint from the Azure Marketplace, contact MongoDB support.
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.
This procedure walks you through a low-cost virtual machine configuration for demo purposes only. If you're an advanced user, you can make customized configurations.
Basics
Fill out the fields in the Basics tab. Once complete, click Next.
Field | Value |
|---|---|
Subscription | Select your subscription. |
Resource group | Select the resource group that contains your Voyage API endpoint. |
Virtual machine name | Provide a name for your virtual machine. |
Region | Select the region of your Voyage API endpoint. |
Availability options | Select "No infrastructure redundancy required" |
Security type | Select "Standard". |
Image | Select "Ubuntu Server 24.04 LTS - x64 Gen2". |
VM architecture | Select "x64". |
Run with Azure Spot discount | Leave box unchecked. |
Size | Select "Standard_B1s - 1 vcpu, 1GiB memory". |
Enable Hibernation | Leave box unchecked. |
Authentication type | Select "SSH public key". |
Username | Enter "voyage". |
SSH public key source | Select "Generate new key pair". |
SSH Key Type | Select "RSA SSH Format". |
Key pair name | Enter "vm-voyage_key". |
Public inbound ports | Select "Allow selected ports". |
Select inbound ports | Select "SSH (22)". |
Disks
Fill out the fields in the Disks tab. Once complete, click Next to move to Networking.
Field | Value |
|---|---|
Encryption at host | Leave box unchecked. |
OS disk size | Select "Image default (30 GiB)". |
OS disk type | Select "Standard HDD (locally-redundant storage)". |
Delete with VM | Check the box. |
Key management | Select "Platform-managed key". |
Enable Ultra Disk compatibility | Leave box unchecked. |
Networking
Fill out the fields in the Networking tab. Once complete, click Review + create.
Field | Value |
|---|---|
Virtual network | IMPORTANT. Select the virtual network in which your Voyage API endpoint is deployed. |
Subnet | IMPORTANT. Select the subnet within the virtual network in which your Voyage API endpoint is deployed. |
Public IP | IMPORTANT. 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 group | Select "Basic". |
Public inbound ports | Select "Allow selected ports". |
Select inbound ports | Select "SSH (22)". |
Delete public IP and NIC when VM is deleted | Leave box unchecked. |
Enable accelerated networking | Leave box unchecked. |
Load balancing options | Select "None". |
Review and Create
Verify creation.
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.
Invoke Voyage API Endpoint
Make a request.
You can make a request to the Voyage API with the following
endpoint: http://{voyage-app-vnet-private-ip}/embeddings.
curl -X GET "http://10.0.0.4/embeddings" \ -H "Content-Type: application/json" \ -d '{ "input": ["Best-in-class embedding models and rerankers"], "input_type": "query" }'
{"data":[{"object":"embedding","embedding":["-0.031104945",...,"-0.037366055"],"index":0}],"object":"list","model":"voyage-4-large","usage":{"total_tokens":13}}
For all the endpoint parameters, refer to the 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. In the dialog box that appears, click Yes to confirm the deletion. This also deletes the associated managed resource group.
Delete Bastion Virtual Machine
If you have provisioned a bastion virtual machine, delete the virtual machine to avoid incurring wasteful costs and unexpected charges.
Confirm deletion.
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 acknowledgement 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.