This is not a sponsored post, I just REALLY like this idea!
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:
Since it’s ARM-based, what can it run? As of this writing, all the major Linux distributions you could want:
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:
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:
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:
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”):
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:
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:
Now, I can upload the public key to Scaleway, and in SmarTTY, I can point to my keypair:
and sure enough I can log in over at the new Scaleway server and everything is as-advertised:
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:
You can then click on that entry and administer details:
the “>_ Console” button in the top-center is pretty cool – it’s a basic SSH terminal right in the browser!
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
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.
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.