---
title: "Create a cloud server"
sidebar_label: "Create server"
sidebar_position: 3
hide_table_of_contents: true
description: "How to create a cloud server"
---

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'

# Create a cloud server

<Tabs queryString="create-cloud-server">
  <TabItem value="panel" default>
    <TabItemLabel>
      Control Panel
    </TabItemLabel>

    1. In the [Control panel](https://my.selectel.ru/vpc/default/servers/), on the top menu, click **Products** and select **Cloud Servers**.

    2. Click **Create server**.

    3. Fill in the blocks:

       * [Name and placement](#name-and-placement);
       * [Source](#source);
       * [Configuration](#configuration);
       * [Disks](#disks);
       * [Internet](#internet);
       * [Private network](#private-network);
       * [Security](#security);
       * [Access](#access);
       * optional: [Additional settings](#additional-settings).

    4. Check the cloud server pricing. Learn more in the [Cloud Server Payment Model and Pricing](/cloud-servers/about/payment.mdx) manual.

    5. Click **Create**.

    ### Name and location \{#name-and-placement}

    1. Enter the server name. It will be set as the hostname in the operating system.

    2. Select a [location](/infrastructure/locations.mdx) where the server will be created. The location determines the list of available server configurations and the resource cost. You cannot change the location after the server is created.

    ### Source \{#source}

    You can create a server:

    * from a [pre-built image](/cloud-servers/images/about-images.mdx#default-images) with a pre-installed and configured operating system;
    * [an application](/cloud-servers/applications/);
    * [a custom image](/cloud-servers/images/about-images.mdx#own-images);
    * [a network volume](/cloud-servers/volumes/about-network-volumes.mdx);
    * or [a snapshot](/cloud-servers/volumes/snapshots.mdx).

    <Tabs queryString="choose-source">
      <TabItem value="default-image" default>
        <TabItemLabel>
          Pre-built image
        </TabItemLabel>

        1. Open the **OS** tab.

        2. Select an image. Pre-built images are available in all pool segments.

        3. If you are creating a server with a GPU, turn on the **Auto-select GPU image** switch to automatically choose an optimized OS image when selecting a configuration.

        4. Optional: If you need another current or archived OS version, select the required version in the **Version** field. OSs marked as **GPU optimized** contain the drivers required to work with GPUs.
      </TabItem>

      <TabItem value="application">
        <TabItemLabel>
          Application
        </TabItemLabel>

        1. Open the **Applications** tab.

        2. Select an application. All applications, except for ML applications, are available in all pool segments.

        3. Optional: if you need a different current or archived application version, select the required version in the **Version** field.
      </TabItem>

      <TabItem value="network-volume">
        <TabItemLabel>
          Network volume
        </TabItemLabel>

        1. Open the **Volumes** tab.

        2. Select a volume. The volume must be in the same pool segment as the server.
      </TabItem>

      <TabItem value="own-image">
        <TabItemLabel>
          Custom image
        </TabItemLabel>

        1. Open the **Images** tab.

        2. Select an image. The image must be in the same pool as the server.
      </TabItem>

      <TabItem value="snapshot">
        <TabItemLabel>
          Snapshot
        </TabItemLabel>

        1. Open the **Snapshots** tab.

        2. Select a snapshot. The snapshot must be in the same pool segment as the server.
      </TabItem>
    </Tabs>

    ### Configuration \{#configuration}

    For all [lines](/cloud-servers/create/configurations.mdx#lines) except [Shared](/cloud-servers/create/configurations.mdx#shared) and [Dedicated](/cloud-servers/create/configurations.mdx#dedicated), two types of server configurations are available:

    * fixed configurations — configurations of lines with different specifications, where the resource ratio is fixed;
    * custom configurations — configurations that allow you to specify any resource ratio.

    Configurations use different [processors](/cloud-servers/create/configurations.mdx#available-processors) depending on the line and pool segment. You can configure the selected setting. Once the server is created, you will be able to [change the configuration](/cloud-servers/manage/change-server-configuration.mdx).

    <Tabs queryString="select-configuration">
      <TabItem value="fixed" default>
        <TabItemLabel>
          Fixed configuration
        </TabItemLabel>

        1. Open the tab with the line.

        2. Click **Fixed**.

        3. Optional: you can adjust the configuration if you are creating a server in a [multi-AZ pool](/infrastructure/locations.mdx#multi-az-pool) segment ru-6 or pool segments ru-3b, ru-7a and ru-7b:

           3.1. Expand the block with the configuration settings description.

           3.2. Optional: select a processor manufacturer. Manufacturer selection is not available in all pools.

           3.3. Optional: if you do not want physical processor cores assigned to the cloud server vCPUs, uncheck the **Dedicated cores** checkbox. Learn more in the [Dedicated Cores](/cloud-servers/about/dedicated-cores.mdx) guide.

           3.4. Optional: if you want to disable [Hyper-Threading](/cloud-servers/about/dedicated-cores.mdx#hyper-threading), uncheck the **Hyper-Threading (SMT)** checkbox.

           3.5. Optional: if you are creating a cloud server with dedicated cores and want to place a multiprocessor server on one NUMA node, check the **Mandatory placement on one NUMA node** checkbox. A server with 4 vCPUs or more can be placed on one NUMA node. If the cloud server resources cannot be placed on one node, it will not be created. Learn more in the [Placement on one NUMA node](/cloud-servers/about/dedicated-cores.mdx#placing-on-one-numa-node) subsection of the [Dedicated Cores](/cloud-servers/about/dedicated-cores.mdx) guide.

        4. Select a [configuration](/cloud-servers/create/configurations.mdx).

        5. If both local and network volumes are available in the selected configuration, select the volume to be used as the boot volume:

           * [local disk](/cloud-servers/volumes/about-local-disks.mdx) — check the **Local SSD NVMe disk** checkbox. A server with a local disk can only be created from images and applications;
           * [network volume](/cloud-servers/volumes/about-network-volumes.mdx) — do not check the **Local SSD NVMe disk** checkbox.

           The amount of RAM allocated to the server may be less than the amount specified in the configuration — the operating system kernel reserves a portion of RAM depending on the kernel version and distribution. You can check the allocated volume on the server using the command `sudo dmesg | grep Memory`.
      </TabItem>

      <TabItem value="flex">
        <TabItemLabel>
          Custom configuration
        </TabItemLabel>

        1. Open the tab with the line.

        2. Click **Custom**.

        3. Optional: you can adjust the configuration if you are creating a server in a [multi-AZ pool](/infrastructure/locations.mdx#multi-az-pool) segment ru-6 or pool segments ru-3b, ru-7a and ru-7b:

           3.1. Expand the block with the configuration settings description.

           3.2. Optional: select a processor manufacturer. Manufacturer selection is not available in all pools.

           3.3. Optional: if you do not want physical processor cores assigned to the cloud server vCPUs, uncheck the **Dedicated cores** checkbox. Learn more in the [Dedicated Cores](/cloud-servers/about/dedicated-cores.mdx) guide.

           3.4. Optional: if you want to disable [Hyper-Threading](/cloud-servers/about/dedicated-cores.mdx#hyper-threading), uncheck the **Hyper-Threading (SMT)** checkbox.

           3.5. Optional: if you are creating a cloud server with dedicated cores and want to place a multiprocessor server on one NUMA node, check the **Mandatory placement on one NUMA node** checkbox. A cloud server with 4 vCPUs or more can be placed on one NUMA node. If the cloud server resources cannot be placed on one node, it will not be created. Learn more in the [Placement on one NUMA node](/cloud-servers/about/dedicated-cores.mdx#placing-on-one-numa-node) subsection of the [Dedicated Cores](/cloud-servers/about/dedicated-cores.mdx) guide.

        4. Specify the number of vCPUs.

        5. Specify the RAM size.

        6. If you need to add GPUs to the server, click **Add GPU**, select the [GPU type](/cloud-servers/create/gpus.mdx#available-gpus), and specify the number of GPUs. The selected configuration line will change to the GPU line. If you selected an image without GPU optimization in the **Source** block and have the **Auto-select GPU image** toggle enabled, the selected image will automatically change to a GPU-optimized image.

        7. If both local and network volumes are available in the selected configuration, select the volume to be used as the boot volume:

           * [local disk](/cloud-servers/volumes/about-local-disks.mdx) — check the **Local SSD NVMe disk** checkbox. A server with a local disk can only be created from images and applications;
           * [network volume](/cloud-servers/volumes/about-network-volumes.mdx) — do not check the **Local SSD NVMe disk** checkbox.

           The amount of RAM allocated to the server may be less than the amount specified in the configuration — the operating system kernel reserves a portion of RAM depending on the kernel version and distribution. You can check the allocated volume on the server using the command `sudo dmesg | grep Memory`.
      </TabItem>
    </Tabs>

    ### Volumes \{#disks}

    1. If you did not check the **Local SSD NVMe disk** checkbox when configuring, the first specified network volume will be used as the server boot volume. To configure it:

       1.1. Select the [type of network boot volume](/cloud-servers/volumes/about-network-volumes.mdx#network-volume-types).

       1.2. Specify the size of the network boot volume in GB or TB. Observe the [network volume maximum size limits](/cloud-servers/volumes/about-network-volumes.mdx#network-volume-limits).

       1.3. If you selected the Universal v2 or Fast SSD v2 volume type, specify the total IOPS for read and write operations. After the volume is created, you can [change the IOPS count](/cloud-servers/volumes/edit-volume.mdx#update-iops) —increase or decrease it. There is no limit on the number of IOPS changes.

    2. Optional: to add additional [network volumes](/cloud-servers/volumes/about-network-volumes.mdx) to the server:

       2.1. Click **Add**.

       2.2. Select the [type of network volume](/cloud-servers/volumes/about-network-volumes.mdx#network-volume-types).

       2.3. Specify the size of the network volume in GB or TB. Observe the [network volume maximum size limits](/cloud-servers/volumes/about-network-volumes.mdx#network-volume-limits).

       2.4. If you selected the Universal v2 or Fast SSD v2 volume type, specify the total IOPS for read and write operations. After the volume is created, you can [change the IOPS count](/cloud-servers/volumes/edit-volume.mdx#update-iops) —increase or decrease it. There is no limit on the number of IOPS changes.

       After the server is created, you can [detach additional volumes or attach new ones](/cloud-servers/volumes/attach-detach-volume.mdx).

    #### Internet \{#internet}

    Configure public access to the server.

    <Tabs queryString="configure-public-access">
      <TabItem value="public-floating-ip" default>
        <TabItemLabel>
          Public floating IP address
        </TabItemLabel>

        The cloud server will be added to a [private subnet](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx) that is connected to a [cloud router](/cloud-servers/cloud-networks/cloud-routers.mdx) with 1:1 NAT and internet access. Internet connectivity will be performed through the cloud router. The server will be accessible from the internet via a [public floating IP address](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx).

        1. In the **Internet connection** field, select the **Public floating IP address** access type.

        2. Select an available IP address or create a new one.
      </TabItem>

      <TabItem value="direct-public-ip" default>
        <TabItemLabel>
          Direct public IP address
        </TabItemLabel>

        A [direct public IP address](/cloud-servers/cloud-networks/direct-public-ip-addresses.mdx) will be assigned to the cloud server. Connectivity to and from the internet will be established directly via the public IP address without a cloud router.

        1. In the **Internet connection** field, select the **Direct public IP address** access type.

        2. Select an available IP address or create a new one.
      </TabItem>

      <TabItem value="public-subnet">
        <TabItemLabel>
          Public subnet
        </TabItemLabel>

        The cloud server will be added to a [public subnet](/cloud-servers/cloud-networks/public-subnets.mdx). A port with one IP address from the subnet will be added to the server; you can use the remaining subnet IP addresses for other devices in the same pool. Connectivity to and from the internet will be established directly via the public IP address without a cloud router.

        1. In the **Internet connection** field, select the **Public subnet** access type.

        2. In the **Subnet** field, select an existing subnet or create a new one of the required [size](/cloud-servers/cloud-networks/public-subnets.mdx#public-subnet-size).
      </TabItem>

      <TabItem value="no-access-from-internet">
        <TabItemLabel>
          No internet access
        </TabItemLabel>

        The cloud server will be added to a [private subnet](/cloud-servers/cloud-networks/private-networks-and-subnets.mdx).

        You will be able to access the server via a private network or through the [console](/cloud-servers/manage/connect-to-server.mdx#connect-through-console).

        In the **Internet connection** field, select the **No internet access** access type.
      </TabItem>
    </Tabs>

    #### Private network \{#private-network}

    Private network settings are available if you selected **Public floating IP address** or **No internet access** in the [Internet](#internet) block.

    A cloud server can be added to an already existing or a new private subnet.

    <Tabs queryString="add-network">
      <TabItem value="existing-network" default>
        <TabItemLabel>
          Existing private subnet
        </TabItemLabel>

        1. In the **Subnet** field, select a private subnet.

        2. Optional: in the **IP address** field, change the default IP address.

        3. Configure the connection to the cloud router. For a server with a public floating IP address, a router is mandatory. For a server without internet access, a router is optional — it allows the server to communicate with other private networks and access the internet, for example, to get updates. In this case, the server is not accessible from the internet.

           * If you selected no internet access and do not need a router, select **No router** in the **Router** field;

           * If you selected no internet access and need a router, select an existing router or create a new one in the **Router** field. To allow the server to access the internet via the router, check the **Connect router to the internet** checkbox;

           * If you selected internet access via a public floating IP address, select an existing router or create a new one in the **Router** field. If the selected router is not connected to the internet, it will be automatically connected after the server is created.
      </TabItem>

      <TabItem value="new-private-network" default>
        <TabItemLabel>
          New private subnet
        </TabItemLabel>

        1. In the **Subnet** field, select **New private subnet**.

        2. In the **Network** field, select an existing network or create a new one.

        3. Optional: change the subnet CIDR.

        4. Optional: in the **IP address** field, change the default IP address.

        5. Configure the connection to the cloud router. For a server with a public floating IP address, a router is mandatory. For a server without internet access, a router is optional — it allows the server to communicate with other private networks and access the internet, for example, to get updates. In this case, the server is not accessible from the internet.

           * If you selected no internet access and do not need a router, select **No router** in the **Router** field;

           * If you selected no internet access and need a router, select an existing router or create a new one in the **Router** field. To allow the server to access the internet via the router, check the **Connect router to the internet** checkbox;

           * If you selected internet access via a public floating IP address, select an existing router or create a new one in the **Router** field. If the selected router is not connected to the internet, it will be automatically connected after the server is created.
      </TabItem>
    </Tabs>

    ### Security \{#security}

    Select [security groups](/cloud-servers/security-groups/) to filter traffic on server ports. Without security groups, traffic will be denied. If the block is missing, [traffic filtering (port security](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security)) is disabled on the server network. With traffic filtering disabled, all traffic will be allowed.

    ### Access \{#access}

    1. Place an [SSH key for the project](/cloud-servers/manage/create-and-place-ssh-key.mdx#place-public-ssh-key) on the server for secure connection:

       1.1. If an SSH key for the project has not been added to the cloud platform, click **Add SSH key**, enter the key name, paste the public key in OpenSSH format, and click **Add**.

       1.2. If an SSH key for the project has been added to the cloud platform, select an existing key in the **SSH key** field. An SSH key is only available in the pool where it is stored.

    2. Optional: in the **Password for root** field:

       2.1. Copy the password for the `root` user—a user with unrestricted privileges for all system actions.

       2.2. Save the password in a safe place and do not share it in plain text.

    ### Optional: additional settings \{#additional-settings}

    1. To create a [preemptible server](/cloud-servers/about/preemptible-servers/), check the **Preemptible server** checkbox.

    2. If you are planning to create several servers and want to increase infrastructure fault tolerance, add the server to a [placement group](/cloud-servers/placement-groups/about-placement-groups/):

       2.1. To create a new group, select **New group** in the **Placement group** field, enter the group name and select a placement policy on different hosts:

       * soft — soft-anti-affinity. The system will try to place the servers on different hosts. If there is no suitable host when creating the server, it will be created on the same host;
       * mandatory — anti-affinity. Servers in the group must be placed on different hosts. If there is no suitable host when creating the server, the server will not be created.

       2.4. If the group has been created, select the placement group in the **Placement group** field.

    3. To add additional information or filter servers in the list, add server [tags](/cloud-servers/manage/tags.mdx). Operating system and configuration tags are added automatically. To add a new tag, enter it in the **Tags** field.

    4. To add a script that will be executed by the [cloud-init](https://cloud-init.io/) agent during the first OS startup, in the **Automation** block in the **User data** field:

       * open the **Text** tab and paste the script as text;
       * or open the **File** tab and upload the script file.

       You can view script examples and supported formats in the [User data](/cloud-servers/manage/user-data.mdx) guide.
  </TabItem>

  <TabItem value="openstack">
    <TabItemLabel>
      OpenStack CLI
    </TabItemLabel>

    You can view an example of creating multiple cloud servers in the [Create several cloud servers via OpenStack CLI](/cloud-servers/tools/openstack-cli/create-several-servers.mdx) guide.

    1. [Open the OpenStack CLI](/cloud-servers/tools/openstack-cli/).

    2. Create a cloud server:

       ```bash
       openstack server create \
           [--image <image> | --volume <volume> | --snapshot <snapshot>] \
           --flavor <flavor> \
           --availability-zone <pool_segment> \
           --nic net-id=<net_uuid> \
           --security-group <security_group> \
           --key-name <key_name> \
           <server_name>
       ```

       Specify:

       * source type:
         * `--image <image>` — to create a server from [a pre-built](/cloud-servers/images/about-images.mdx#default-images) or [a custom image](/cloud-servers/images/about-images.mdx#own-images). The `<image>` parameter is the image ID or name. The image must be in the same pool as the server. You can view the list of images using `openstack image list`;
         * `--volume <volume>` — to create a server from [a network volume](/cloud-servers/volumes/about-network-volumes.mdx). The `<volume>` parameter is the volume ID or name. The volume must be in the same pool segment as the server. You can view the list of network volumes using `openstack volume list`;
         * `--snapshot <snapshot>` — to create a server from [a snapshot](/cloud-servers/volumes/snapshots.mdx). The `<snapshot>` parameter is the snapshot ID or name. The snapshot must be in the same pool segment as the server. You can view the list of snapshots using `openstack snapshot list`;
       * `<flavor>` — flavor ID or name. Flavors correspond to [cloud server configurations](/cloud-servers/create/configurations.mdx) and determine the number of vCPUs, RAM and the local disk size (optional). You can use flavors of fixed configurations or [create a flavor](/cloud-servers/create/create-flavor.mdx). For example, `1015` — the ID for creating a server with a fixed Standard line configuration with 4 vCPUs and 16 GB of RAM in the ru-9 pool. You can view the list of flavors using `openstack flavor list` or in the [List of fixed configuration flavors in all pools](/cloud-servers/create/configurations.mdx#server-flavors-full-list) table;
       * `<pool_segment>` — [pool segment](/infrastructure/locations.mdx#pool) where the cloud server will be created, for example, `ru-9a`. The list of available pool segments can be viewed in the [Availability Matrix](/infrastructure/availability-matrix.mdx) guide;
       * `<net_uuid>` — ID of the private or public network to which the server will be connected. You can view the list of networks using `openstack network list`;
       * `<security_group>` — ID or name of the security group to be assigned to all server ports. To create a server with a security group, [traffic filtering (port security](/cloud-servers/cloud-networks/about-networks.mdx#traffic-filtering-port-security)) must be enabled in the network. You can view the list of groups using the `openstack security group list` command;
       * `<key_name>` — name of the SSH key pair for the service user. If SSH keys are not created, [generate them](/cloud-servers/manage/create-and-place-ssh-key.mdx#create-ssh-keys). You can view the list of key pairs using `openstack keypair list`;
       * optional: `--block-device-mapping vdb=<extra_volume>` — extra volume ID or name. You can view the list of volumes using `openstack volume list`;
       * optional: `--property x_cloud_smt_enabled=false` — disabling [Hyper-Threading (SMT](/cloud-servers/about/dedicated-cores.mdx#hyper-threading)). If the parameter is not specified, Hyper-Threading (SMT) will be enabled by default. Can only be used with flavors that support [dedicated cores](/cloud-servers/about/dedicated-cores.mdx). You can view the list of flavors in the [List of fixed configuration flavors in all pools](/cloud-servers/create/configurations.mdx#server-flavors-full-list) table;
       * optional: `--property x_cloud_numa_nodes=1` — placing resources on a single NUMA node. Can only be used with flavors that support [dedicated cores](/cloud-servers/about/dedicated-cores.mdx). You can view the list of flavors in the [List of fixed configuration flavors in all pools](/cloud-servers/create/configurations.mdx#server-flavors-full-list) table;
       * optional: `--tag <tag_name> --os-compute-api-version 2.52` — a [tag](/cloud-servers/manage/tags.mdx) for adding additional server information;
       * optional: `--tag preemptible --os-compute-api-version 2.72` — a tag for creating a [preemptible server](/cloud-servers/about/preemptible-servers.mdx);
       * optional: `--user-data <user_data.file>` — path to a script with Base64-encoded data. Scenarios and tasks from the script will be executed during the first OS startup. You can view script examples in the [User data](/cloud-servers/manage/user-data.mdx) guide;
       * `<server_name>` — server name.
  </TabItem>

  <TabItem value="terraform">
    <TabItemLabel>
      Terraform
    </TabItemLabel>

    Examples of cloud server creation can be found in the Terraform documentation:

    * [Create a custom configuration server with a bootable network volume and an additional network volume](/terraform/examples/cloud-servers/create-custom-server-with-boot-network-volume/);
    * [Create a fixed-configuration GPU line cloud server with a bootable network volume](/terraform/examples/cloud-servers/create-gpu-server/);
    * [Create a fixed-configuration Standard line cloud server and add it to a placement group](/terraform/examples/cloud-servers/create-server-and-add-to-placement-group/).
  </TabItem>
</Tabs>

<Formbricks />
