Create a Database Cluster Using the 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
, doctl databases options regions
, and doctl databases options slugs
commands, respectively, to get a list of available values.
You can also review a list of available slugs for each engine on its pricing page.
How to Create a Database Using the DigitalOcean CLI
- Install
doctl
, the official DigitalOcean CLI.
- Create a personal access token and save it for use with
doctl
.
- Use the token to grant
doctl
access to your DigitalOcean account.
- Finally, run
doctl databases create
. Basic usage looks like this, but you can read the usage docs for more details:
doctl databases create <name> [flags]
The following example creates a database cluster named example-database
in the nyc1
region with a single 1 GB node:
doctl databases create example-database --region nyc1 --size db-s-1vcpu-1gb --num-nodes 1
Create a Database Cluster Using the 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 hard disk space). Use the /v2/databases/options
endpoint to get a list of available values.
You can also review a list of available slugs for each engine on its pricing page.
How to Create a Database Using the DigitalOcean API
- Create a personal access token and save it for use with the API.
- Send a POST request to
https://api.digitalocean.com/v2/databases
.
cURL
Using cURL:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-d '{"name": "backend", "engine": "pg", "version": "14", "region": "nyc3", "size": "db-s-2vcpu-4gb", "num_nodes": 2, "storage_size_mib": 61440, "tags": ["production"]}' \
"https://api.digitalocean.com/v2/databases"
Go
Using Godo, the official DigitalOcean API client for 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: "backend",
EngineSlug: "pg",
Version: "14",
Region: "nyc3",
SizeSlug: "db-s-2vcpu-4gb",
NumNodes: 2,
StorageSizeMiB : 61440,
}
cluster, _, err := client.Databases.Create(ctx, createRequest)
}
Python
Using PyDo, the official DigitalOcean API client for Python:
import os
from pydo import Client
client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))
create_req = {
"name": "backend",
"engine": "pg",
"version": "14",
"region": "nyc3",
"size": "db-s-2vcpu-4gb",
"num_nodes": 2,
"storage_size_mib": 61440,
"tags": [
"production"
]
}
create_resp = client.databases.create_cluster(body=create_req)
Create a Database Cluster Using the Control Panel
You can create an OpenSearch database cluster from the Create menu by selecting Databases. This takes you to the Create a Database page.
Choose a datacenter
In the Choose a datacenter section, select the datacenter for your database cluster.
This page lists the datacenters in which you currently have the most resources. The number of resources you have in each datacenter is listed to the right as X resources. Hover over this text to see the specific resources you have in that datacenter.
For the best performance, create your database in the same datacenter as your other DigitalOcean resources.
Each region has one or more datacenters, each with a different VPC network. By including resources in the same datacenter, they all gain access to the same private networking interface, which reduces lag and keeps traffic between them from being routed over the public internet.
Choose a database engine
In the Choose a database engine section, choose OpenSearch.
We currently support OpenSearch v1 and v2. You cannot change the OpenSearch version after creating a cluster.
Choose a cluster configuration
In the Choose a cluster configuration section, select a Droplet plan and quantity of nodes for the cluster.
For Basic plans, you can choose 1 or 3 nodes. For General Purpose and Memory-Optimized plans, you can choose 1, 3, 6, 9, or 15 nodes.
After creation, you can increase the number or size of nodes at any time. However, you cannot downsize nodes to have less storage than the current storage the cluster is currently using.
Choose a storage size
In the Choose a storage size section, you can specify the storage size by clicking the up or down arrow or by entering your desired storage amount, in increments of 10 GB, up to the maximum listed in the storage range. Additional storage you add to the cluster costs $0.21 per GiB per month.
You can increase your storage at any time. However, You cannot reduce the amount of added storage in a cluster lower than the amount of storage you are currently using in your cluster.
Finalize and create
In this section, enter the following information:
-
Choose a name: Use the automatically-generated name for the database or choose a custom name. Names must be unique, be between 3 and 63 characters long, and only contain alphanumeric characters, dashes, and periods.
-
Select a project: Use the default project or choose another one.
-
Tags: Add a tag in the text box and press enter. Tags can only contain letters, numbers, colons, dashes, and underscores.
After creation, you can edit the database’s tags or move it to another project; however, you can’t rename it.
Click the Create a Database Cluster button.
Clusters typically take five minutes or more to provision, but you can complete important configuration tasks such as restricting inbound connections while the cluster is provisioning.