Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

3-1: Setting up a Cloud VM

For this next and final section, we’re moving on from the Podman environments. There are limits to what we can do in a fully containerized world. It’s time to use what we’ve learned to build something real.

You’ll need a cloud VM.

Providers

There are multiple options for choosing a Virtual Private Server (VPS). AWS has a free tier that can suffice for this project. Microsoft Azure has a signup bonus of $200, which also works. I use Digital Ocean for my personal servers, which does not have a free tier.

Since I want this lab to be accessible to all, I will use AWS for these examples. The steps will be similar for other providers, with some platform-specific modifications.

That said, this is not a course on AWS operations. I will not be going through VM creation in every single detail; instead I will explain the necessary configurations for our purposes.

System Requirements

Our requirements are modest for our cloud VM. Keeping within the free tier for AWS, we’ll want a system with:

  • 2 vCPUs
  • 2 GB RAM
  • 30 GB root volume

Operating System

I’m going to use Ubuntu for commonality. If you choose another Linux distribution, there may be some differences in the setup commands.

Networking

We will require a public IP address as well. For the firewall rules, you’ll want to configure the following:

  • SSH allowed from your IP address, not the whole internet
  • HTTP/HTTPS allowed from everywhere
  • UDP 3478 allowed from everywhere—this may have to be configured after initial setup.

Access

Since we’re allowing SSH from our port, create an (or add an existing) SSH key to the VM.

Once the VM is set up and you’re connected, we’ll begin building a network with a more sophisticated Wireguard tool.