---
title: How to Create OpenSearch Clusters
description: Create an OpenSearch cluster from the DigitalOcean Control Panel.
product: Databases
url: https://docs.digitalocean.com/products/databases/opensearch/how-to/create/
last_updated: "2026-09-11"
---

> **For AI agents:** The documentation index is at [https://docs.digitalocean.com/llms.txt](https://docs.digitalocean.com/llms.txt). Markdown versions of pages use the same URL with `index.html.md` in place of the HTML page (for example, append `index.html.md` to the directory path instead of opening the HTML document).

# How to Create OpenSearch Clusters

You can create an OpenSearch cluster using `doctl`, the API, or the Control Panel.

We currently support OpenSearch versions 2.19, 3.3, and 3.6. New clusters use OpenSearch 2.19 by default. To view available major versions for new clusters, use the [/v2/databases/options](https://docs.digitalocean.com/reference/api/reference/databases/index.html.md#databases_list_options) response.

## Create a Database Cluster Using Automation

You can create a database cluster using the DigitalOcean CLI (`doctl`) or the API.

### Create a Database Cluster via CLI

To create a database using `doctl`, you need to provide values for the `--engine`, `--region`, and `--size` flags. Use the [`doctl databases options engines`](https://docs.digitalocean.com/reference/doctl/reference/databases/options/engines/index.html.md), [`doctl databases options regions`](https://docs.digitalocean.com/reference/doctl/reference/databases/options/regions/index.html.md), and [`doctl databases options slugs`](https://docs.digitalocean.com/reference/doctl/reference/databases/options/slugs/index.html.md) commands, respectively, to get a list of available values.

## How to Create a Database Cluster Using the DigitalOcean CLI

1. [Install `doctl`](https://docs.digitalocean.com/reference/doctl/how-to/install/index.html.md), the official DigitalOcean CLI.
2. [Create a personal access token](https://docs.digitalocean.com/reference/api/create-personal-access-token/index.html.md) and save it for use with `doctl`.
3. Use the token to grant `doctl` access to your DigitalOcean account.

   ```shell
   doctl auth init
   ```
4. Run [`doctl databases create`](https://docs.digitalocean.com/reference/doctl/reference/databases/create/index.html.md). Basic usage:

   ```shell
   doctl databases create <name> [flags]
   ```

   The following example creates an OpenSearch cluster named `example-database` in the `nyc1` region with a single 2 GB node:

   ```shell
   doctl databases create example-database --engine opensearch --version 2.19 --region nyc1 --size db-s-1vcpu-2gb --num-nodes 1
   ```

### Create a Database Cluster via API

To create a database using the API, you need to provide values for the `engine`, `region`, and `size` fields, which specify the database’s engine, its datacenter, and its configuration (number of CPUs, amount of RAM, and disk capacity). Use the [`/v2/databases/options`](https://docs.digitalocean.com/reference/api/reference/databases/index.html.md#databases_list_options) endpoint to get a list of available values.

## How to Create a Database Cluster Using the DigitalOcean API

### cURL

Send a POST request to `https://api.digitalocean.com/v2/databases` using cURL:

```shell
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{
    "name": "example-database",
    "engine": "opensearch",
    "version": "2.19",
    "region": "nyc1",
    "size": "db-s-1vcpu-2gb",
    "num_nodes": 1
  }' \
  "https://api.digitalocean.com/v2/databases"
```

### Go

Using [Godo](https://github.com/digitalocean/godo), the official DigitalOcean API client for Go:

```go
import (
    "context"
    "os"

    "github.com/digitalocean/godo"
)

func main() {
    token := os.Getenv("DIGITALOCEAN_TOKEN")

    client := godo.NewFromToken(token)
    ctx := context.TODO()

    createRequest := &godo.DatabaseCreateRequest{
        Name:       "example-database",
        EngineSlug: "opensearch",
        Version:    "2.19",
        Region:     "nyc1",
        SizeSlug:   "db-s-1vcpu-2gb",
        NumNodes:   1,
    }

    cluster, _, err := client.Databases.Create(ctx, createRequest)
}
```

### Python

Using [PyDo](https://github.com/digitalocean/pydo), the official DigitalOcean API client for Python:

```python
import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

create_req = {
  "name": "example-database",
  "engine": "opensearch",
  "version": "2.19",
  "region": "nyc1",
  "size": "db-s-1vcpu-2gb",
  "num_nodes": 1
}

create_resp = client.databases.create_cluster(body=create_req)
```

## Create a Database Cluster Using the Control Panel

To create an OpenSearch database cluster, go to the [**Databases page**](https://cloud.digitalocean.com/databases) and click **Create Database**. Or click **Create** at the top of any page and choose **Managed Database** from the **Data Services** section of the menu.

### Choose a Database Engine

On the **Create Database Cluster** page, in the **Choose a database engine** section, select **OpenSearch**, and then choose a version, if available. The database engine and version can’t be changed after creation.

![The database engine selection portion of the database create page](https://docs.digitalocean.com/screenshots/databases/choose-database-engine.db4d0f839466bc24bd29bfe412e5b7ec8ba8dd776b058c50e14fbc45e495b089.png)

### Choose a Database Configuration

In the **Choose a database configuration** section, select an option:

- **Basic - Shared CPU**: CPU processing power is shared among neighboring Droplets on the same host. Best for low-traffic, testing, or development workloads.
- **General Purpose - Dedicated CPU**: Provides the full processing power of a single vCPU at all times. Best for most workloads that need consistent CPU performance.
- **Memory-Optimized - Dedicated CPU**: Provides the full processing power of a single vCPU at all times. Best for memory-heavy workloads with large working sets and demanding read-heavy or analytics-style queries.

### Choose CPU Options

Under **CPU options**, select an option:

- **Regular (Disk: SSD)**: Use for standard workloads that don’t require NVMe-backed disk performance.
- **Premium AMD (Disk: NVMe)**: Use for workloads that benefit from faster local disk performance and higher network throughput. This option is only available for **Basic - Shared CPU** configurations.
- **Premium Intel (Disk: NVMe)**: Use for workloads that benefit from faster local disk performance, higher network throughput, and predictable CPU performance.

Changing the CPU option can change the available plan sizes, prices, and datacenter regions.

### Select a Plan

Under **Select a plan**, choose a plan size for the cluster. The plan determines the cluster’s vCPUs, RAM, and minimum storage. Each option shows its combined monthly cost and included resources.

After creation, you can [increase your cluster’s compute size](https://docs.digitalocean.com/products/databases/opensearch/how-to/resize/index.html.md) (number or size of nodes) at any time.

### Choose the Number of Nodes

If you select any of the **Dedicated CPU** plans, the **Number of Nodes** selector displays below the **Select a plan** section. Select **1 Node**, **3 Nodes**, **6 Nodes**, **9 Nodes**, or **15 Nodes**.

Most **Basic - Shared CPU** plans support **1 Node** or **3 Nodes**. The 1 vCPU / 2 GB plans are fixed at **1 Node**.

![Number of nodes selector with 1 Node selected and options for 3, 6, 9, and 15 nodes.](https://docs.digitalocean.com/screenshots/databases/create-select-nodes.111845a3a36e9df7542332e905a7d05c4306bab2256e5e28316344a26fb561c0.png)

For specific workloads:

- Use a single-node cluster for development or small production workloads that don’t require high availability.
- Use at least three nodes for production workloads that need automated failover. OpenSearch replicates primary shards across nodes to tolerate a node failure without data loss.

### Choose a Storage Size

Under **Choose a storage size**, you can increase storage in 10 GiB increments, up to the maximum in the **Storage range** (the storage range depends on the selected compute plan). Additional storage costs $0.21 per GiB per month.

![Choose a storage size section showing 40 GiB selected with cost and supported storage range.](https://docs.digitalocean.com/screenshots/databases/choose-storage-size.dfa2d9eb1f636d351a643558a9d955ec45a0d7389b98ef029e9eb510414d7590.png)

You can [increase or decrease storage](https://docs.digitalocean.com/products/databases/opensearch/how-to/resize/index.html.md) at any time, but you cannot reduce it below the amount currently in use, or below what’s required for backups and growth.

### Enable Storage Autoscaling

Under **Autoscale storage**, select **Enable Storage Autoscaling** to automatically increase storage when disk utilization on any node in the cluster reaches the specified threshold. The threshold is based on the worst-performing node in the cluster, not the average across nodes.

Click **Customize** to set a custom **Threshold** and **Storage Increment**. For performance and stability, autoscaling can increase storage only up to the maximum allowed by your current plan.

![Autoscale storage section with storage autoscaling enabled and customizable threshold and increment fields.](https://docs.digitalocean.com/screenshots/databases/create-autoscale-storage.823aae4099949605916f8fc65e766f8c003c15d425d8aeac4571732a5fbbc175.png)**Note**:

  When autoscaling occurs, the specified storage increment is added to each node in the cluster, not distributed across the cluster. Even when data is uneven across nodes, such as with different partition sizes, each node still receives the same increment. The total added storage is the increment multiplied by the number of nodes.

Autoscaling takes several minutes depending on the cluster size. It runs without downtime and you do not need to take any action. When autoscaling occurs, the system bills the added capacity as [additional storage](https://docs.digitalocean.com/products/databases/opensearch/details/pricing/index.html.md).

### Choose a Datacenter Region

The **Choose a datacenter region** section shows the datacenters where you currently have the most resources, with the number of resources shown to the right as **X resources**. Hover over this text to see the specific resources in the datacenter.

For best performance, choose a datacenter close to the resources that connect to the cluster. Resources in the same datacenter share a [VPC](https://docs.digitalocean.com/products/networking/vpc/index.html.md) network, which reduces latency and keeps traffic off the public internet.

![The datacenter selection portion of the databases create page](https://docs.digitalocean.com/screenshots/databases/choose-a-datacenter.83d4e016e854b43e910021dab949f1fc725855f15408f34f8d7dbf319f6f0d51.png)

Available regions depend on the CPU option and plan you select. For available regions, see [Regional Availability](https://docs.digitalocean.com/platform/regional-availability/index.html.md).

After creation, you can [relocate your cluster to another datacenter](https://docs.digitalocean.com/products/databases/opensearch/how-to/relocate/index.html.md).

### Finalize and Create

In the **Finalize and Create** section, enter a unique name for the cluster and select a project to add it to. After creation, you can move the cluster to another project, but its name can’t be changed.

![The Finalize and Create section of the Create a database page](https://docs.digitalocean.com/screenshots/databases/finalize-and-create.227a0744d8c767512004e1f38e81dc2d197177fbe968553a3223cf57106a5c89.png)

Review the monthly and hourly cost for the cluster. When finished, click **Create Database Cluster**.

Clusters typically take five minutes or more to provision. You can complete important configuration tasks such as [restricting inbound connections](https://docs.digitalocean.com/products/databases/opensearch/how-to/secure/index.html.md#firewalls) while you wait.