Quick Links

Many cloud server providers operate at such large economies of scale that they'll give away small instances for free, simply to entice you to use their platform. You can take advantage of this to run a small Linux box for development.

If you're just looking to run a simple website, you may not even need a Linux box---services like Github Pages and Google Sites can host simple pages for you for free.

Google Cloud Platform

Google's Cloud Platform provides the only VPS on this list that is truly free forever. Their

        f1-micro
    

 is always free, all the time.

On top of this, they also have a very good free trial---upon signing up for a new account, you'll be given $300 in credit to use on any GCP service. The credit expires after a year.

You'll need to link your card to your account to take advantage of this, but don't worry, you won't be charged for leaving a server running past the free trial. You'll have to manually upgrade your account to a paid account once the trial ends.

To get started, make an account and head to the Google Cloud Platform Console. You'll need to make a new "Project," which is like a container for all your services. Under Compute Engine > VM Instances, you'll be able to create a new instance:

You'll have to edit the instance details to add your SSH keys, or access it through a web-based terminal.

The

        f1-micro
    

 is free forever, and has 0.2 vCPUs and 600 MB of RAM. Not the best VPS in the world, but good enough to run Linux and a few simple applications. Though with the $300 free credit, you could run a

        n1-standard-1
    

 instance with 1 vCPU and 3.5 GB of RAM (about $25 a month) for the full 12 months before the credit runs out.

Amazon Web Services

AWS provides a free tier for almost all of their services for a year after you sign up. This includes a free general purpose 

        t2.micro
    

 instance with 1 vCPU and 1 GB of RAM.

You'll have to link your card to verify your account, and you should definitely set a reminder on your calendar 11 months in the future---AWS will charge you once your free tier is up, and they don't do a great job of advertising that it's a free trial and not exactly a free tier. One thing that does have a free tier forever is Lambda; if you want to run serverless cloud functions, you can do so entirely for free.

AWS doesn't give out promotional credit on signups, but if you're a student with a

        .edu
    

 email, you can get free credit through AWS Educate. If your school is partnered, you'll get $100, and if it's not, you'll get $40.

To get started, create an AWS account and head over to the AWS Management Console. From here, select Services > EC2. From the Instances tab, click "Launch Instance":

The

        t2.micro
    

 instance should be highlighted. You'll have to select an OS; Windows costs extra on most instances, but is free for your free

        t2.micro
    

 instance.

You'll be asked to download a PEM file; this is your private key to the instance. You'll want to use

        ssh -i keyfile.pem
    

 to connect to it.

Microsoft Azure

Azure has a free tier that includes a B1S instance with 1 vCPU and 1 GB of RAM. You'll also get $200 in free credit, but you're only given a month to use it. The free tier, however, lasts a whole year, after which the only services with free tiers are Azure Functions and other APIs.

The 12-month free tier includes 250 GB of SQL storage, so you'll be able to set up a large database for free. You're also given 64 GB of free block storage for your virtual machine to run on, as well as 5 GB of shared file storage.

Unlike AWS, you won't be charged after your free tier is up. You'll have to manually upgrade to a pay-as-you-go account to enable billing.

To get started, navigate to the Azure Portal and select "Virtual Machines" from the sidebar. From this tab, you can add a new instance:

Make sure you select the free-for-12-months BS1 instance, as the menu defaults to a much more expensive instance at $70 per month. You won't be charged if you leave it running, but you can't run that instance for more than a month without upgrading to a paid account.

You'll be asked to provide an administrative account name and SSH public keys during creation, so you'll be able to access it out of the box.