> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/ovh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Public Cloud instances

> Create and manage scalable cloud compute instances with pay-as-you-go or monthly pricing.

Public Cloud instances are on-demand virtual machines running on OVHcloud shared physical infrastructure. You choose the operating system and instance size, deploy your workloads, and pay only for what you use — billed by the hour or at a discounted monthly rate.

## Instance types

OVHcloud organises instances into families, each optimised for a specific workload profile.

| Type              | Resources                             | Typical use cases                                    |
| ----------------- | ------------------------------------- | ---------------------------------------------------- |
| General Purpose   | Balanced CPU and RAM                  | Web applications, dev servers, business workloads    |
| CPU Optimized     | High processor frequency              | CI/CD pipelines, parallel processing, microservices  |
| Memory Optimized  | High RAM-to-CPU ratio                 | Databases, big data, in-memory calculations          |
| Storage Optimized | NVMe local storage                    | High-IOPS databases, big data applications           |
| GPU               | Hardware-accelerated parallel compute | AI, deep learning, 3D rendering                      |
| Discovery         | Shared resources                      | Testing, proof-of-concept, light development         |
| Metal Instances   | Dedicated physical resources          | Maximum isolation, consistent bare-metal performance |

<Note>
  You can upgrade an instance to a larger model after creation. Downsizing is not supported for standard instances. Use a Flex instance if you need the flexibility to resize in both directions.
</Note>

## Creating your first instance

<Tabs>
  <Tab title="Control Panel">
    <Steps>
      <Step title="Add an SSH key">
        Generate a key pair on your local machine:

        ```bash theme={null}
        ssh-keygen -t ed25519 -a 100
        ```

        In the OVHcloud Control Panel, navigate to your Public Cloud project, open **Settings > SSH Keys**, and click **Add an SSH key**. Paste the contents of your public key file (`~/.ssh/id_ed25519.pub`).
      </Step>

      <Step title="Open the instance creation wizard">
        On the Public Cloud project home page, click **Create an instance**.
      </Step>

      <Step title="Name and locate your instance">
        Enter a name for the instance. Select the region closest to your users. For production workloads requiring high availability, choose a 3-AZ region.
      </Step>

      <Step title="Select an instance model">
        Open the **Instance Model** drop-down and choose the family that fits your workload. Select the specific flavor (size) that matches your CPU, RAM, and storage requirements.
      </Step>

      <Step title="Choose an image">
        Select an operating system from the **Distribution Type** menu, then pick a specific version. Available images depend on the model and region you chose.

        Available image categories include:

        * Linux distributions: Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, Fedora
        * Windows Server (licensed)
        * Pre-configured applications: Docker, cPanel, Plesk, NVIDIA GPU Cloud
        * Custom images you have imported in QCOW2 or RAW format
      </Step>

      <Step title="Attach your SSH key">
        Select the SSH key you added in step 1, or paste a public key string directly. SSH key authentication is required for all Linux instances.
      </Step>

      <Step title="Configure networking">
        Choose between **Public Mode** (direct Internet access via IPv4/IPv6) and **Private Mode** (accessible only through a Gateway or Load Balancer with a Floating IP). You can also connect your instance to a private network (vRack) and assign a Floating IP.
      </Step>

      <Step title="Select billing period">
        Choose **Hourly** for flexible usage or **Monthly** for a lower rate on long-running instances. Hourly instances bill as long as they exist, regardless of whether they are running.
      </Step>

      <Step title="Launch the instance">
        Review your configuration summary on the right, then click **Launch my instance**. Your instance is ready within a few minutes.
      </Step>

      <Step title="Connect via SSH">
        Once the instance status shows **Enabled**, connect using the preconfigured user and your private key:

        ```bash theme={null}
        ssh ubuntu@203.0.113.101
        ```

        The default username reflects the image installed (e.g. `ubuntu`, `debian`, `rocky`).
      </Step>
    </Steps>
  </Tab>

  <Tab title="OpenStack CLI">
    <Steps>
      <Step title="Install and configure the OpenStack CLI">
        Install the client and source your OpenStack credentials file (available from the OVHcloud Control Panel under **Users & Roles**):

        ```bash theme={null}
        pip install python-openstackclient
        source openrc.sh
        ```
      </Step>

      <Step title="List available flavors">
        ```bash theme={null}
        openstack flavor list
        ```
      </Step>

      <Step title="List available images">
        ```bash theme={null}
        openstack image list --public
        ```
      </Step>

      <Step title="Create the instance">
        ```bash theme={null}
        openstack server create \
          --flavor b2-7 \
          --image "Ubuntu 24.04" \
          --key-name my-ssh-key \
          --network Ext-Net \
          my-instance
        ```
      </Step>

      <Step title="Retrieve the public IP">
        ```bash theme={null}
        openstack server show my-instance -f value -c addresses
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## SSH key management

SSH keys are the primary authentication method for Public Cloud instances. A key pair consists of a public key (placed on the instance) and a private key (kept on your local machine).

```bash theme={null}
# Generate an Ed25519 key pair (recommended)
ssh-keygen -t ed25519 -a 100

# View the public key to copy into the Control Panel
cat ~/.ssh/id_ed25519.pub

# Connect to an instance using a named key file
ssh -i ~/.ssh/my-instance-key ubuntu@203.0.113.101
```

You can store multiple keys in the Control Panel and select the appropriate key at instance creation time. To add keys for additional users on a running instance, append their public keys to `~/.ssh/authorized_keys` on the instance.

## Volumes and object storage

Attach additional block storage volumes to expand instance storage without rebuilding the instance:

1. In the Control Panel, go to **Storage > Block Storage** and create a volume.
2. On the instance page, click **Attach a volume** and select the volume.
3. Mount the volume from inside the instance:

```bash theme={null}
# List attached disks
lsblk

# Format the new volume (first use only)
sudo mkfs.ext4 /dev/sdb

# Mount it
sudo mount /dev/sdb /mnt/data
```

For unstructured data, use **Object Storage** (S3-compatible) to store files independently of any instance.

## Billing and lifecycle

<AccordionGroup>
  <Accordion title="Hourly billing">
    Instances are billed per hour as long as they exist. Stopping an instance does not stop billing — you must delete it to stop charges. Billing is per minute, displayed as an hourly rate.
  </Accordion>

  <Accordion title="Monthly billing">
    Monthly billing offers lower rates for long-running instances. You can switch from hourly to monthly at any time, but you cannot switch back from monthly to hourly.
  </Accordion>

  <Accordion title="Savings Plans">
    Commit to consistent usage for 1 to 36 months to receive automatic discounts on all compatible instances. Savings Plans apply across instance types and sizes.
  </Accordion>

  <Accordion title="Instance lifecycle states">
    * **Enabled** — running and billable
    * **Off (stopped)** — compute released but still billable
    * **Suspended (shelved)** — compute released, reduced storage billing
    * **Deleted** — billing stops completely
  </Accordion>
</AccordionGroup>

## Image lifecycle

OVHcloud maintains a catalog of OS images and updates it regularly. Images follow the upstream OS vendor lifecycle. Check the [image lifecycle page](/public-cloud/compute) for end-of-life announcements. You can also upload custom images in QCOW2 or RAW format via the Control Panel or the OpenStack CLI:

```bash theme={null}
openstack image create \
  --container-format bare \
  --disk-format qcow2 \
  --file my-custom-image.qcow2 \
  "My Custom Image"
```

## Networking

### Floating IPs

A Floating IP is a persistent public IP address you can attach to and detach from instances independently. Use Floating IPs when you need a stable public endpoint that survives instance replacement.

### Security groups

Security groups act as stateful firewalls for your instances. The default security group allows all outgoing traffic and no incoming traffic except from within the group.

To allow SSH access, create a security group rule:

1. In the Horizon interface, navigate to **Network > Security Groups**.
2. Create a new security group (do not modify the `default` group).
3. Add a rule: **Direction** = Ingress, **Port** = 22, **CIDR** = your IP or `0.0.0.0/0`.

### Private networks (vRack)

Connect instances to an isolated private network to keep backend traffic off the public Internet. A vRack is created automatically with your Public Cloud project.

```bash theme={null}
# List existing networks
openstack network list

# Create a private network
openstack network create my-private-net
openstack subnet create \
  --network my-private-net \
  --subnet-range 10.0.0.0/24 \
  my-subnet
```

## Snapshots and backups

| Method           | Description                                        |
| ---------------- | -------------------------------------------------- |
| Manual snapshot  | Point-in-time disk image, created on demand        |
| Automated backup | Scheduled snapshots, 7 or 14-day retention         |
| Remote backup    | Automatic copy of the backup to a different region |

To create a manual backup:

```bash theme={null}
openstack server image create --name my-instance-snapshot my-instance
```

<Warning>
  Deleting an instance does not automatically delete its snapshots, volumes, or backups. Remove them separately to stop being billed for them.
</Warning>

## Related guides

<CardGroup cols={2}>
  <Card title="Block storage" icon="hard-drive" href="/storage/block-storage">
    Attach and manage additional volumes for your instances.
  </Card>

  <Card title="vRack private networking" icon="network-wired" href="/network/vrack">
    Connect instances to isolated private networks using vRack.
  </Card>

  <Card title="Managed databases" icon="database" href="/public-cloud/databases">
    Use fully managed PostgreSQL, MySQL, Redis, and more alongside your instances.
  </Card>

  <Card title="Containers & Kubernetes" icon="circle-nodes" href="/public-cloud/containers">
    Orchestrate containerized workloads with Managed Kubernetes.
  </Card>
</CardGroup>
