World's fastest cloud servers

Experience our next generation, faster-than-SSD cloud servers with a 100% uptime SLA.

Our simple but powerful control panel and API lets you spend more time coding and less time managing your cloud infrastructure. Together with the community, we develop and maintain a large library of open source API-clients and tools.

Sign up for a free trial

From $5/month

Faster-than-SSD

MaxIOPS block storage leaves the competition in the dust, and doesn’t throttle performance based on how much you pay.

Flexible plan

Frustrated with choosing between hundreds of instance types? Our Flexible plan lets you create your own!

Experience the awesome performance of

MaxIOPS

All cloud servers are deployed on enterprise-grade hardware. Together with our in-house developed software and proprietary MaxIOPS storage technology, you will get industry-leading performance at all times.

Cloud servers are deployed in less than 45 seconds. With incredibly fast boot times, you will get up and running within minutes.

See how we compare against AWS EC2 and DigitalOcean.

Compare us with DigitalOcean

UpCloud99,854

DigitalOcean59,484

AWS EC259,087

IOPS (fio, 4 KB block randread)

Simple but powerful API:

Automate your cloud

Our easy-to-use control panel and API let you spend more time coding and less time managing your infrastructure. Deploy in 45 seconds using the simple but powerful control panel, the Restful API or any software such as Ansible, Go or Python.

View documentation

Easily integrate with your applications


// Create the server
serverDetails, err := svc.CreateServer(&request.CreateServerRequest{
	Zone:             "fi-hel1",
	Title:            "My new server",
	Hostname:         "server.example.com",
	PasswordDelivery: request.PasswordDeliveryNone,
	StorageDevices: []request.CreateServerStorageDevice{
		{
			Action:  request.CreateStorageDeviceActionClone,
			Storage: "01000000-0000-4000-8000-000030060200",
			Title:   "disk1",
			Size:    30,
			Tier:    upcloud.StorageTierMaxIOPS,
		},
	},
	IPAddresses: []request.CreateServerIPAddress{
		{
			Access: upcloud.IPAddressAccessPrivate,
			Family: upcloud.IPAddressFamilyIPv4,
		},
		{
			Access: upcloud.IPAddressAccessPublic,
			Family: upcloud.IPAddressFamilyIPv4,
		},
		{
			Access: upcloud.IPAddressAccessPublic,
			Family: upcloud.IPAddressFamilyIPv6,
		},
	},
})

require_once(__DIR__ . '/vendor/autoload.php');

$api_instance = new Upcloud\ApiClient\Upcloud\AccountApi();
$config = $api_instance->getConfig();
$config->setUsername('YOUR UPCLOUD USERNAME');
$config->setPassword('YOUR UPCLOUD PASSWORD');

try {
    $result = $api_instance->getAccount();
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountApi->getAccount: ', $e->getMessage(), PHP_EOL;
}

var upcloud = require('upcloud');

var defaultClient = upcloud.ApiClient.instance;

// Configure HTTP basic authorization: baseAuth
var baseAuth = defaultClient.authentications['baseAuth'];
baseAuth.username = 'UPCLOUD_USERNAME';
baseAuth.password = 'UPCLOUD_PASSWORD';

var api = new upcloud.AccountApi();
api.getAccount().then(
  function(data) {
    console.log('API called successfully. Returned data: ' + data);
  },
  function(error) {
    console.error(error);
  },
);

import upcloud_api
from upcloud_api import Server, Storage, ZONE, login_user_block

manager = upcloud_api.CloudManager('api_user', 'password')
manager.authenticate()


login_user = login_user_block(
    username='theuser',
    ssh_keys=['ssh-rsa AAAAB3NzaC1yc2EAA[...]ptshi44x [email protected]'],
    create_password=False
)

cluster = {
    'web1': Server(
        core_number=1, # CPU cores
        memory_amount=1024, # RAM in MB
        hostname='web1.example.com',
        zone=ZONE.London, # ZONE.Helsinki and ZONE.Chicago available also
        storage_devices=[
            # OS: Ubuntu 14.04 from template
            # default tier: maxIOPS, the 100k IOPS storage backend
            Storage(os='Ubuntu 14.04', size=10),
            # secondary storage, hdd for reduced cost
            Storage(size=100, tier='hdd')
        ],
        login_user=login_user  # user and ssh-keys
    ),
    'web2': Server(
        core_number=1,
        memory_amount=1024,
        hostname='web2.example.com',
        zone=ZONE.London,
        storage_devices=[
            Storage(os='Ubuntu 14.04', size=10),
            Storage(size=100, tier='hdd'),
        ],
        login_user=login_user
    ),
    'db': Server(
        plan='2xCPU-4GB', # use a preconfigured plan, instead of custom
        hostname='db.example.com',
        zone=ZONE.London,
        storage_devices=[
            Storage(os='Ubuntu 14.04', size=10),
            Storage(size=100),
        ],
        login_user=login_user
    ),
    'lb': Server(
        core_number=2,
        memory_amount=1024,
        hostname='balancer.example.com',
        zone=ZONE.London,
        storage_devices=[
            Storage(os='Ubuntu 14.04', size=10)
        ],
        login_user=login_user
    )
}

for server in cluster:
    manager.create_server(cluster[server]) # automatically populates the Server objects with data from API

Multiple open source API-clients available


- hosts: localhost
  connection: local
  serial: 1
  gather_facts: no

  tasks:
    - name: Create upcloud server
      upcloud:
        state: present
        hostname: web1.example.com
        title: web1.example.com
        zone: uk-lon1
        plan: 1xCPU-1GB
        storage_devices:
            - { size: 25, os: Ubuntu 14.04 }
        user: root
        ssh_keys:
            - ssh-rsa AAAAB3NzaC1yc2EAA[...]ptshi44x [email protected]
            - ssh-dss AAAAB3NzaC1kc3MAA[...]VHRzAA== [email protected]
      register: upcloud_server

    - name: Wait for SSH to come up
      wait_for: host={{ upcloud_server.public_ip }} port=22 delay=5 timeout=320 state=started

    - name: tag the created server
      upcloud_tag:
        state: present
        uuid: "{{ upcloud_server.server.uuid }}"
        tags: [ webservers, london ]

resource "upcloud_server" "server1" {
    hostname = "terraform.example.com"
    zone = "nl-ams1"
    plan = "1xCPU-1GB"
    storage_devices = [
        {
            size = 25
            action = "clone"
            storage = "01000000-0000-4000-8000-000030080200"
            tier = "maxiops"
        }
    ]
    login {
        user = "root"
        keys = [
            "ssh-rsa public key xxx"
        ]
    }
}

{
   "variables": {
      "UPCLOUD_USERNAME": "{{ env `UPCLOUD_API_USER` }}",
      "UPCLOUD_PASSWORD": "{{ env `UPCLOUD_API_PASSWORD` }}"
   },
   "builders": [
      {
         "type": "upcloud",
         "username": "{{ user `UPCLOUD_USERNAME` }}",
         "password": "{{ user `UPCLOUD_PASSWORD` }}",
         "zone": "nl-ams1",
         "storage_uuid": "01000000-0000-4000-8000-000030060200"
      }
   ],
   "provisioners": [
      {
         "type": "shell",
         "inline": [
           "apt update",
           "apt upgrade -y",
           "echo '' | tee /root/.ssh/authorized_keys"
         ]
      }
   ]
}

for image in driver.list_images():
    if image.name.startswith('Ubuntu') \
    and image.name.count('16.04') \
    and image.id.endswith('0'):
        break

for size in driver.list_sizes():
    if size.name == '1xCPU-1GB':
        break

for location in driver.list_locations():
    if location.name.startswith('London'):
        break

node = driver.create_node(
    image=image,
    size=size,
    location=location,
    name='Libcloud Example',
    ex_hostname='libcloud.example.com'
    )

pprint(node.state)

Everything you need, batteries included

Deployment
and management

Deploy in 45 seconds

All cloud servers are by default deployed with MaxIOPS storage technology, allowing you to create and boot up new cloud servers in just 45 seconds.

Snapshots & scheduled backups

Instantly create or schedule periodic backups. Using true snapshots, backups are created in a blink of an eye and can be restored just as quickly.

Control panel, developed in-house

We’ve developed our control panel to give you full control over every aspect of your infrastructure and to give you a complete insight of your billing.

Linux & Windows support

Use one of the freely available templates, create your own from a backup or upload and boot from your own custom ISO. Your choice!

Server cloning

Easily setup a staging environment by cloning one of your cloud servers or storage disks. Convert it into a template and automate your deployments.

Simple but powerful API

Our powerful API lets you manage everything that can be controlled in the control panel. Get started in minutes with one of our open source libraries.

Infrastructure
and networking

Faster-than-SSD with MaxIOPS

MaxIOPS is our proprietary storage technology, built on enterprise-grade SSDs but up to 2x faster compared to industry-standard cloud servers.

Control panel, developed in-house

We’ve developed our control panel to give you full control over every aspect of your infrastructure and to give you a complete insight of your billing.

Native IPv6 Support

All of our cloud servers can be deployed or have a IPv6 address added, completely free of charge. Future-proof your business today!

Private networking across the globe

All our data centers are interconnected, allowing you to create highly available, multi-geolocation applications without a single point of failure.

Latest Intel CPUs

With the latest Intel processors, you will always get high performance no matter the workload, both single- and multi-threaded.

InfiniBand networking

We utilize InfiniBand networking for maximum throughput and minimum latency. It is the most commonly used interconnect in supercomputers since 2014.

Compliance
and security

Two-factor authentication

Secure your cloud by enabling two-factor authentication, completely free of charge. Make sure only you have access to your data.

Group accounts and server tags

Give team members access to your infrastructure, in a secure manner with granular permissions. You can even organize and allow access based on tags you assign your servers.

Out-of-band HTML5 console

You always have access to your server, even if you accidentally configured your network wrong and locked yourself out.

Firewall

Secure your environment with our highly configurable firewall, allowing or blocking traffic before it even reaches your servers.

Customer data

You enter into a service agreement with a company registered in Finland and all your data is thus protected under Finnish and EU legislation.

Simple Pricing

NEW!Sign up now and start your free trial
View the simple plans

Memory

1 GB

CPU

1

Storage

25 GB

Transfer

1 TB

$5/mo

Memory

4 GB

CPU

2

Storage

80 GB

Transfer

4 TB

$20/mo

Memory

8 GB

CPU

4

Storage

160 GB

Transfer

5 TB

$40/mo

Memory

16 GB

CPU

6

Storage

320 GB

Transfer

6 TB

$80/mo

Memory

32 GB

CPU

8

Storage

640 GB

Transfer

7 TB

$160/mo

Memory

48 GB

CPU

12

Storage

960 GB

Transfer

9 TB

$240/mo

Memory

64 GB

CPU

16

Storage

1280 GB

Transfer

10 TB

$320/mo

Memory

96 GB

CPU

20

Storage

1920 GB

Transfer

12 TB

$480/mo

Memory

128 GB

CPU

20

Storage

2048 GB

Transfer

24 TB

$640/mo

FlexiblePricing

Make your custom plan
View the flexible plans

CPU

x CPU Core

More CPU means more Power and Faster execution

Memory

GB

Keep your website up and running when you have lot’s of traffic

MaxIOPS

GB

Faster than SSD, by far

Location

Deploy your cloud servers worldwide

Our datacentres

Helsinki FI-HEL1

+358 9 4272 0661

Helsinki FI-HEL2

+358 9 4272 0661

London

+44 20 358 80000

Chicago

+1 415 830 8474

Frankfurt

+44 20 358 80000

Amsterdam

+44 20 358 80000

Singapore

+65 3163 7151

San José

+1 415 830 8474

New! Welcome to a brand new UpCloud

Sign up now for a free trial

Locations

Helsinki (HQ)

In the capital city of Finland, you will find our headquarters, and our first data centre. This is where we handle most of our development and innovation.

London

London was our second office to open, and a important step in introducing UpCloud to the world. Here our amazing staff can help you with both sales and support, in addition to host tons of interesting meetups.

Seattle

Seattle is our 4th and latest office to be opened, and our way to reach out across the pond to our many users in the Americas.

Singapore

Singapore was our 3rd office to be opened, and enjoys one of most engaged and fastest growing user bases we have ever seen.