Scaleway IaaS dedicated ARM servers

This is not a sponsored post, I just REALLY like this idea!

image

So there is this company Scaleway in France who developed a Single Board Computer (SBC) similar to a Raspberry Pi, but specifically designed them to work in rackmount configuration. They have a data center full of these rack-mounted devices and let you rent out one of these SBC “servers”.

They have “console” connections to each server. Each tiny server has a quad-core ARM CPU, 50GB of local, dedicated SSD storage and 2GB of RAM. Below is a single 1U unit which holds 18 separate computers – those are the computers that they rent out:

image

Since it’s ARM-based, what can it run? As of this writing, all the major Linux distributions you could want:

image

OK, so you when you “rent” a server, you get dedicated hardware, but not crazy-big hardware. However, for many small to medium projects, these sorts of specs are enough to get your idea off the ground. You could easily and reasonably host a web server or mail server with something like this.

Now, what if I told you this costs $3.40/month per instance!?

By the way, they only charge when the computer is turned-on, so $3.40 is if the computer was turned on for the whole month.

How it works:
I have a few ideas how this might be useful and cost-effective for potentially a couple of projects. So, I created an account. Once you validate your e-mail, you view the terms of service. Given that this is a foreign company (based out of France), I did read the terms of service.

I was pleasantly surprised – they specifically do not monitor or store anything from your server, and are not compelled by a government to monitor and track usage.

With that said though, if you are in the United States, I believe this would be subject to NSA monitoring (I mean, more than usual). The FISA court established with the USA PATRIOT Act and NDAA are specifically for American citizens communicating with systems outside of the country. Since these servers are in France, I assume that applies. Just something to keep in mind…

OK – after you verify your e-mail and agree to the terms of service, you can then create a new server. This is as straight-forward as picking and name and an operating system:

image

It took just a few minutes (maybe 2 minutes?) to provision, and then I could connect.

Getting started – SSH keys:
One of the things you must do before connecting (or actually, before creating a server) is to upload your SSH public key. The only way to administer the server is via SSH, and you need at least one SSH public key listed. Only that connection will be able to connect to this server.

If you are on Linux, that’s easy, you can generate a keypair with:

$ ssh-keygen -t rsa -b 4096 -C jdoe@myworkstation

and when prompted, save those to ~/.ssh/ or you can just take the defaults:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/rcs/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rcs/.ssh/id_rsa.
Your public key has been saved in /home/rcs/.ssh/id_rsa.pub.
The key fingerprint is:
37:27:04:78:7b:4c:02:db:3b:98:75:a1:fb:35:5c:59 pi@raspi05
The key’s randomart image is:
+–[ RSA 4096]—-+
|      .o. .     E|
|      .ooo..   o |
|      ..+=o   o  |
|       +.=o. .   |
|      o S.+ =    |
|         + = .   |
|          .      |
|                 |
|                 |
+—————–+

That results in two files:

-rw——-  1 rcs rcs 3243 Sep  8 13:15 id_rsa
-rw-r–r–  1 rcs rcs  736 Sep  8 13:15 id_rsa.pub

You can tell which is which both by the name and by the permissions. Note how the file without .pub does not have any read permissions for group and world? That’s your private key. The .pub file is your public key. It’s just Base64-encoded text, so you can view it like this:

$ cat ./id_rsa.pub

which looks something like this:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChHPqoVPTYj63nGWhUd80CRNshBrQTaDMXvsyl0vDyEh72P6XwCuCW
3bkHj3hvJYK34IB9Ia3Fz6ZIbkuUDs3mQEDbESnd8dwc9+Ig7EdEWtN3FaT6D7MfcZOIeGFHERQc8pQIsDtDFobBlGhq
mVYjVxfsgkr9hBa3cE/YyUV+TwKLhmBKgM0+JOADXisIAtVa0531BPj/V/53sd3RiVj1RCoZQQBhe5N50mL0BeAPScF+
QoY4MzMY5FQVwMdYZqgkWHzKxOe2qBgq9Xub59sPt7hqUZ+WgktQV+9+XJRtsdekRl04wTgv6RL9Awm9rv2ROggOuK5v
Vs7spcom1cHBPVLo2+pZC2z3YyVW9Z6YLKvxbVbhayi8/XdwRcczBJbP0hrCLF4i/D6E9mHmB5HIu+1It1Cds4UnJaMa
/OLe2ys39h/dWSOH/ap3BwOqIkZMHXd0EfJv7fkdeVEg677jFs4caktekGCOTZddX4HS5Fv/v6r1c4k+8U/QQZTGqC3Y
HFE6yLtpqX6h6m7hUJOb4HumqirAC+YhUByMXxpn2NqNqJVtidscX3Fzyed6ntwkyzbvjkAhSGCDmG28D3iigGBkbJXO
fkklCPrtgC7sjjihGw1W1a8UfNm9AD/jhr7SSueRS1/aO1Q2KuJI5qKhRJIQ5tB8InVwem4ViiOEpw==
jdoe@example.com

You then take those public key contents and give them to Scaleway via the Credentials page (copy/paste your public key into the “SSH Key” textbox and then click “Use this SSH key”):

image

That’s great, but what about when you are Windows? To know me is to know how much I hate puTTY, and REALLY love SmarTTY (also see here). Look at the options I have when setting up a new SSH connection in SmarTTY:

image

I can specify a public key – if one existed. So, how do you generate a keypair on Windows? In short, I didn’t even begin to bother looking because I’m nearly certain the answer is going to be complexticated since Windows is not very SSH-friendly. So, I just took the easiest shortcut:

Create a keypair on Linux (or on your Raspberry Pi for example – any Linux machine you may have lying around), save the files to a different directory. I’m assuming that if you are potentially interested in renting a Linux server, that you already have a VM or Pi floating around your house. So, run this command:

$ ssh-keygen -t rsa -b 4096 -C jdoe@myworkstation

Then download both files (id_rsa, and id_rsa.pub) with SmarTTY to your local computer:

image

image

Now, I can upload the public key to Scaleway, and in SmarTTY, I can point to my keypair:

image

and sure enough I can log in over at the new Scaleway server and everything is as-advertised:

image

Working with the remote computer:
At this point, your server is up and you can connect to it. Now, from the Scaleway dashboard you can turn it on or off, and delete it:

image

You can then click on that entry and administer details:

image

the “>_ Console” button in the top-center is pretty cool – it’s a basic SSH terminal right in the browser!

image

Programmatic Access!
As if this wasn’t already pretty cool – everything you can do through the management console, you can do programmatically via JSON-based RESTful service calls!

Scaleway API Documentation
https://developer.scaleway.com/

This means that if you wanted to automate any part of turning machines on or off, or provisioning machines, there is already a pretty simple way to do that too.

Bottom line:
Why do I like this idea so much?

  • It’s super-cheap – and I know it’s super-cheap for them. These are basically Raspberry Pi’s but with more RAM and faster disk.
  • It’s arguably better then on-prem Raspberry Pi at your house. Pi’s are really great, but in this scenario these small, powerful computers are hosted in a robust data center with power conditioning, air handlers, and fire suppression. They are always on and available.
  • It’s a really quick and easy way to bring up an Internet-facing Linux computer – it’s faster, cheaper, and easier than anything else out there.
  • The API – I think it’s pretty awesome that you have web services for everything, so that one could automate provisioning or modifying a machine hosted in Scaleway.

With services like Azure and AWS getting more and more complexticated, this is really smart (and refreshing) idea. It’s super simple, super-cheap, and a good platform. Even better, these are not virtual machines, this is dedicated hardware you are renting for $3.40/month! So to me, they really hit the sweet spot of: cheap, easy, powerful, and simply effective.

There is no referral code and this is not a sponsored post, I just really like this idea and will be trying it out for a project or maybe two!

To be clear, you are not going to be able to handle Facebook-level user load on limited hardware like this – but it will be MORE than enough for any small to medium-sized project.

Posted in Cloud Computing, Computers and Internet, General, Infrastructure, Linux, New Technology, Professional Development, Security, Uncategorized

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Archives
Categories

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 5 other followers

%d bloggers like this: