
Exciting developments on the roadmap for year 2019
The holidays came and went, and while we hope you’ve had a great start for the year 2019, it’s only going to get better. A new year is a time of new plans and oh boy do we have much on the...
New! Welcome to a freshly redesigned UpCloud
Give yourself the unfair advantage, and deploy on cloud infrastructure with unrivaled performance & flexibility.
Our scalable MaxIOPS block storage provides higher performance at a lower price, and doesn’t throttle your performance based on price.
All cloud servers are deployed with our MaxIOPS technology, allowing you to create and boot up a cloud servers in just 45 seconds!
With a N+1 philosophy throughout our entire infrastructure, all single points of failure have been eliminated. We trust our redundancy so much, that we will give you a 100% SLA with 50x payback for any downtime of over 5 minutes.
We believe in providing help when it’s needed, not when it’s too late. With a 1m 55s average median response time and a 95% satisfaction rate, we pride ourselves in providing probably the best support in the industry.
Start out with one of our Simple plans, starting from $5/mo, or roll your own with our Flexible plan. Free trial and 30 day money back guarantee included!
Create custom images and make your cloud infrastructure completely your own! This allows for very efficient use of resources and complete automation for your infrastructure.
Our easy-to-use control panel and API let you spend more time coding and less time managing your infrastructure. Together with the community, we develop and maintain a large library of open source API-clients and tools.
View documentation
- 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)
// 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,
},
},
})
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
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);
},
);
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;
}
HTTP/1.0 200 OK
{
"servers": {
"server": [
{
"core_number": "1",
"hostname": "example.upcloud.com",
"license”: 0,
"memory_amount": "1024",
"plan": "1xCPU-1GB",
"state": "started",
"tags": {
"tag": []
},
"title": "Example UpCloud server",
"uuid": "00e8051f-86af-468b-b932-4fe4ac6c7f08",
"zone": "fi-hel1"
}
]
}
}
Hundreds of tutorials for almost anything, written by UpCloud together with the community.
ExploreCheck out the many open source resources and projects, that helps you take full advantage of your cloud.
ExploreCheck out what events we will participate in and let’s meet, or let’s host a meetup together!
ExploreThe holidays came and went, and while we hope you’ve had a great start for the year 2019, it’s only going to get better. A new year is a time of new plans and oh boy do we have much on the...
At the end of the year, it’s great to have a chance to kick back and relax a little. We wanted to take a moment to reflect on the past events and what we’ve accomplished this year. We’ve certainly been...
UpCloud was founded on the principle of offering developers and businesses around the world superior products, that are designed by an exceptionally talented team and catered through awesome customer service. We’ve come a long way from a small start-up with...
Cloud Spectator is an industry leading infrastructure-as-a-service marketplace analyst. They perform highly detailed and in-depth comparisons to find the best European cloud provider on the market. This year’s report on the cloud space in Europe saw highly competitive offerings across...
Have a look at our blog page for more stories Go to our blog
In this second post, in our series about hosting database in the cloud, we'll dive into the cloud-native databases.
In this quick guide to iptables and ipset we'll put a stop to the ever so prevalent issue of brute force SSH attempts on Linux cloud servers.
Our services have benefited from the new solution resulting a faster time to market with the performance that is required with large eCommerce systems.
This article describes instructions and configuration examples for setting up two DNS servers and an administrative web interface with NicTool.
Cloud infrastructure offers many benefits for hosting databases such as reduced maintenance, improved resilience, and easier scalability.
In this guide, we'll be checking some of the neat features on Buddy and how to integrate it with your UpCloud servers.
New! Welcome to a brand new UpCloud
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 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 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 was our 3rd office to be opened, and enjoys one of most engaged and fastest growing user bases we have ever seen.