Create an OpenSearch Vector Database Cluster
Validated on 27 Apr 2026 • Last edited on 27 Apr 2026
DigitalOcean Managed OpenSearch for vector search uses the same managed OpenSearch engine available under Managed Databases. It bundles the k-NN, ML Commons, and Neural Search plugins for vector similarity search, hybrid vector and keyword search, and remote embedding models.
DigitalOcean Vector Databases includes OpenSearch alongside Weaviate and PostgreSQL (pgvector). An OpenSearch cluster created under Vector Databases is functionally the same managed OpenSearch engine available under Managed Databases. OpenSearch 2.19 bundles the k-NN, ML Commons, and Neural Search plugins, so they are preinstalled and available as soon as provisioning completes.
This how-to covers the options you should pick when creating a cluster specifically for vector workloads, and the three ways to provision it.
Prerequisites
- A DigitalOcean account with the ability to create managed databases.
- A VPC in your target region. New clusters join the region’s default VPC unless you pick a different one. See the VPC documentation.
- Optional:
doctlinstalled and authenticated for CLI provisioning.
Plan Your Cluster Size
Vector workloads are memory-bound. OpenSearch holds the HNSW graph in native memory outside the JVM heap, and query latency degrades sharply when the graph spills to disk. Size for RAM first, then disk, then CPU.
Estimate RAM
For FP32 vectors indexed with HNSW, a good starting estimate is:
The dimensions * 4 term is the raw FP32 vector. The m * 8 term is the HNSW graph edge overhead (approximately 128 bytes per vector at the default m=16). Add a 20-30% safety margin for JVM heap and OS page cache.
Example sizings for the default Faiss engine:
| Workload | Suggested plan |
|---|---|
| 100k vectors at 768 dimensions (around 320 MB) | Basic (2 GB RAM, 1 vCPU, 40 GiB) |
| 1M vectors at 768 dimensions (around 3.2 GB) | General Purpose (8 GB RAM, 2 vCPU, 80 GiB) |
| 10M vectors at 1024 dimensions (around 42 GB) | Memory-Optimized (64 GB RAM, 8 vCPU, 400 GiB) across 3 nodes |
| 100M or more vectors | Contact support; consider Faiss with product quantization |
If you expect to grow 10x over the next year, it is cheaper to start on a larger plan now than to re-index later.
Estimate Disk
Disk is not the limiting factor for vector search, but you still need space for the _source field, Lucene segments, and OpenSearch’s own indexes. A safe starting point is:
Choose a Region
Place the cluster in the same region as the application that issues queries. Cross-region latency can dominate k-NN query time. See Regional Availability for the full list of supported regions.
Choose a Node Count
For development and small-to-medium production workloads, a single node is fine. For production workloads with an SLA, use a three-node cluster. OpenSearch replicates primary shards across nodes, tolerating a single-node failure without data loss.
Create a Cluster from the Control Panel
- In the Control Panel, click Create > Vector Database.
- Under Supported Vector Database Engines, select OpenSearch 2.19. The form reloads with OpenSearch-specific options.
- Pick a plan: Basic Shared CPU, General Purpose Dedicated CPU, or Memory-Optimized Dedicated CPU based on your RAM estimate.
- Pick a datacenter region. Match it to your application’s region.
- Pick a VPC.
- Name and tag the cluster.
- Click Create Vector Database Cluster. Provisioning takes 3 to 5 minutes for Basic plans and up to 15 minutes for multi-node Memory-Optimized plans.
The create flow is the same whether you enter it through the Vector Databases page or the Managed Databases page.
Create a Cluster from the API
Use the POST /v2/databases endpoint:
curl -X POST "https://api.digitalocean.com/v2/databases" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my-vector-db",
"engine": "opensearch",
"version": "2.19",
"region": "sfo3",
"size": "os-s-1-2-40-dd",
"num_nodes": 1,
"tags": ["vector-search", "production"]
}'The response includes the cluster ID, connection details, and a status field that transitions from creating to online. Poll GET /v2/databases/{id} to check progress.
See the Databases API reference for all supported parameters.
Create a Cluster from doctl
doctl databases create my-vector-db \
--engine opensearch \
--version 2.19 \
--region sfo3 \
--size os-s-1-2-40-dd \
--num-nodes 1 \
--waitThe --wait flag blocks until the cluster is online and prints its connection string. See the doctl databases reference for the full command surface.
Next Steps
- Secure the cluster by configuring trusted sources.
- Continue with Create a k-NN Index and Index and Query Vectors.