How to Create a VPC

A Virtual Private Cloud (VPC) is a private network interface for collections of DigitalOcean resources. VPC networks are inaccessible from the public internet and other VPC networks, and traffic on them doesn’t count against bandwidth usage.


Create a VPC Network Using the CLI

The VPC creation command requires you to provide a datacenter region for the --region flag. Use doctl compute region list command to retrieve a list of available datacenter regions.

How to create a VPC network using the DigitalOcean CLI

To create a VPC network via the command-line, follow these steps:

  1. Install doctl, the DigitalOcean command-line tool.

  2. Create a personal access token, and save it for use with doctl.

  3. Use the token to grant doctl access to your DigitalOcean account.

                  doctl auth init
                
  4. Finally, create a VPC network with doctl vpcs create. The basic usage looks like this, but you'll want to read the usage docs for more details:

                  doctl vpcs create [flags]
                

    The following example creates a VPC network named example-vpc in the nyc1 region

                       doctl vpcs create --name example-vpc --region nyc1
                    

Create a VPC Network Using the API

The VPC creation call requires you to provide a datacenter region for the region field. Use the /v2/regions endpoint to retrieve a list of available datacenter regions.

How to create a VPC network using the DigitalOcean API

To create a VPC network using the DigitalOcean API, follow these steps:

  1. Create a personal access token, and save it for use with the API.

  2. Send a POST request to https://api.digitalocean.com/v2/vpcs

    cURL

    To create a VPC network with cURL, call:

    
                    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
      -d '{"name":"my-new-vpc", "region":"nyc1", "ip_range": "10.10.10.0/24"}' \
      "https://api.digitalocean.com/v2/vpcs"

    Go

    Go developers can use Godo, the official DigitalOcean V2 API client for Go. To create a VPC network with Godo, use the following code:

    
                    import (
        "context"
        "os"
    
        "github.com/digitalocean/godo"
    )
    
    func main() {
        token := os.Getenv("DIGITALOCEAN_TOKEN")
    
        client := godo.NewFromToken(token)
        ctx := context.TODO()
    
        createRequest := &godo.VPCCreateRequest{
         Name:       "my-new-vpc",
         RegionSlug: "nyc1",
         IPRange:    "10.10.10.0/24",
        }
    
        vpc, _, err := client.VPCs.Create(ctx, createRequest)
    }

    Python

    
                    import os
    from pydo import Client
    
    client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))
    
    req = {
      "name": "env.prod-vpc",
      "description": "VPC for production environment",
      "region": "nyc1",
      "ip_range": "10.10.10.0/24"
    }
    
    resp = client.vpcs.create(body=req)

Create a VPC Network Using the Control Panel

To create a VPC network, click Networking in the main menu, then click the VPC tab. In the VPC tab, click Create VPC Network.

On the Create VPC Network page, select the datacenter region for the VPC. Any resources you intend to add to the VPC need to reside in the same datacenter region as the VPC. DigitalOcean does not currently support adding resources to VPCs that reside in different datacenter regions.

VPC tab. Create VPC Network

On the Create VPC Network page, select a datacenter region for the VPC network. Any resources you add to the VPC network need to be in the network’s datacenter region.

Choose datacenter region

Under Configure Private IP Range, choose how you want your IP range to be generated. We strongly recommended Generate an IP range for me to save time calculating IP ranges and prevent your network ranges from overlapping.

Generate IP range

If you select Configure my own IP range, see Planning Your Network Size for more information about how to plan the size and range of your VPC network. The IP range of your VPC network can’t overlap with the ranges other networks in your account. The control panel prevents you from creating networks with overlapping ranges.

In the Choose a name and description section, name the VPC network and optionally add a description of it, then click Create VPC network.

Create VPC Network

Once the VPC network is created, you can create new resources in the network. VPC networks currently support Droplets, managed databases, load balancers, and Kubernetes clusters.

You can also migrate existing managed databases and Droplets to a VPC network, but currently cannot migrate Kubernetes clusters and load balancers.