DEV Community

theo hutchings
theo hutchings

Posted on

Deploy Virtual Servers in Your VPC

You now have a VPC and firewall ready for use!
Let’s put some Linode Virtual Machines inside so we can start running our applications.


What Is Akamai Connected Cloud Compute?

Akamai Connected Cloud Compute (formerly Linode) is a core service provided by Akamai that offers scalable virtual servers in the cloud. These servers, known as Linode instances, let you deploy and run applications without managing physical hardware.

Key Features

  • Flexible OS (Operating System) Choices: Ubuntu, Debian, CentOS Stream, Fedora, and more
  • Plan Types:

    • Shared CPU
    • Dedicated CPU
    • High-Memory
    • GPU
  • Global Regions: Edge-optimized data centers worldwide for low-latency performance

  • On-Demand Scaling: Resize CPU/RAM or attach additional block storage at any time

  • Pay-As-You-Go: Only pay for the resources you use

Ideal Use Cases

  • Web hosting
  • Development & staging environments
  • Databases & data processing
  • Containerized & microservices workloads

With Akamai Connected Cloud Compute, you get the power and reliability of a global network—while keeping costs predictable and under your control.


Let’s now make our way to the Akamai Cloud Manager Dashboard and navigate to the Linodes tab under Compute.

Image description

At the top right, click Create Linode.

Image description

By default, the **OS* tab is selected — choose your operating system to build your application from the ground up. If you’d rather deploy a ready-made solution, switch to Marketplace for One-Click apps.*

Marketplace Tab

On the Marketplace tab, you’ll find a variety of pre-made applications you can deploy quickly. For example:

Image description

StackScripts

StackScripts allow you to run Bash scripts upon the first boot of the Linode instance. For example, you can install Nginx/Apache web servers or databases like MySQL/PostgreSQL.

Image description

To create your own StackScript, head to the StackScripts tab in Compute.

Image description

  1. Click Create StackScript. Image description
  2. Provide a relevant Label and Description to remind future you what it’s for.
  3. Select the Target Images (depending on the OS you plan to use).
  4. Paste your script into the Script section and click Create.

Image description

Images

Images let you deploy from a snapshot or custom image you’ve created/imported. This includes existing Linodes (entire root filesystem, configuration, installed packages, and user data). Images are incredibly useful for cross-region application replication.

  • In the Images tab, click Capture an Image to take a snapshot of an existing Linode.

Image description

  • Or click Upload an Image to import a custom image you have stored locally.

Image description

Backups & Cloning

  • Backups: View existing Linodes with backups enabled.
  • Clone Linode: Take an existing Linode and clone it one-time—perfect for replicating an existing server without snapshots.

Creating Your Linode Instance

Back in the OS tab, let’s start by creating a new Linode.

Image description

  1. Region: Select the same region where you created your VPC.

  2. OS: Choose an operating system based on your use case. Recommendations:

    1. General-purpose web/database server: Ubuntu LTS / Debian Stable
    2. Enterprise RHEL-compatible workloads: AlmaLinux / Rocky Linux
    3. Cutting-edge development & testing: Fedora / CentOS Stream
    4. Lightweight container host: Alpine Linux / Fedora CoreOS
    5. Compliance-driven environment (PCI, HIPAA): Ubuntu Pro / RHEL-compatible with ESM
    6. GUI-based management or desktop-style server: Ubuntu Desktop / Fedora Workstation

Although instances are scalable, it’s a good idea to start with resources close to your expected load.

  1. Linode Plan: Choose the resources for your Linode. Here are the instance types and suggested use cases:

    1. Dedicated CPU
  • Description: VMs with one or more full CPU cores reserved solely for you.
  • Use Cases: Consistent, CPU-intensive workloads like CI/CD builds, compilers, video encoding.
  • Pros: No “noisy neighbor” interference, predictable performance.

Image description

2. Shared CPU
Enter fullscreen mode Exit fullscreen mode
  • Description: “Burstable” VMs that share physical CPU cores with other tenants.
  • Use Cases: Development environments, low-traffic web servers, test boxes, small databases.
  • Pros: Lowest cost, flexible burst capacity when you need it.

Image description

3. High Memory
Enter fullscreen mode Exit fullscreen mode
  • Description: Plans that pack more RAM per CPU core than standard offerings.
  • Use Cases: In-memory databases (Redis, Memcached), big-data processing, caching layers.
  • Pros: Run large datasets entirely in RAM for ultra-fast access.

Image description

4. GPU
Enter fullscreen mode Exit fullscreen mode
  • Description: Instances attached to NVIDIA GPUs (e.g., Tesla T4) for parallel acceleration.
  • Use Cases: Machine learning training/inference, GPU-accelerated compute, video transcoding.
  • Pros: Massive floating-point throughput, CUDA/ROCm support.

Image description

5. Premium CPU
Enter fullscreen mode Exit fullscreen mode
  • Description: High-clock-speed Intel Xeon Scalable VMs with NVMe SSD storage.
  • Use Cases: High-performance web apps, single-threaded workloads, latency-sensitive services.
  • Pros: Faster cores, ultra-low disk I/O latency.

Image description

6. Accelerated Compute
Enter fullscreen mode Exit fullscreen mode
  • Description: Combines dedicated CPU cores with NVMe-backed storage for maximum throughput.
  • Use Cases: I/O-intensive applications like Elasticsearch, large-scale data analytics, CI runners.
  • Pros: Top-tier disk performance plus dedicated compute.

Image description

  1. Label & Tags: Assign a clear Label representing the instance’s purpose, and use Tags to pinpoint aspects of the application. For example:

Image description

  1. Security: Create a strong root password known only to trusted individuals.
  • Since we allowed SSH on port 22 via the firewall, it’s best practice to use SSH keys for even tighter security.
  • Click Add an SSH Key.

Image description

Label it: user-ssh-key
Key: Paste your local machine’s SSH public key.

  • To find your SSH public key, run on your local machine:

     ls ~/.ssh
     # Look for a .pub file, e.g., id_rsa.pub
     cat ~/.ssh/id_rsa.pub
    
  • Copy the output and paste it into the Linode creation form.

  1. Encryption: By default, Encrypted Disk is enabled—it’s free, so leave it on to protect data at rest.

  2. VPC & Firewall Assignment:

  • Under VPC, select the VPC you created earlier.
  • Enable Auto-Assign VPC IPv4 so the Linode automatically gets a private 10.x address.
  • Disable Public IPv4 Assignment if you want to restrict traffic to within your VPC.

Image description

  • For Subnet, select the backend subnet you set up for this Linode.
  • Under Firewall, select the firewall configured for your backend server.

Image description

Note: Auto-assigning a VPC IPv4 ensures the Linode is reachable within the VPC. Not assigning a public IPv4 means it won’t be directly accessible from the Internet—useful for private backend services.

  1. Backups: If you want automatic backups, enable the Backups option (recommended for production).

  2. Create Linode: Scroll to the bottom and click Create Linode.

Image description

You’ll see the new Linode provisioning. After about a minute, its status will change to RUNNING—awesome, you’ve successfully created a Linode server.


SSH into Your New Linode

  1. Copy the SSH command from the Dashboard (e.g., ssh root@172.236.21.197).
  2. On your local machine, run:
   ssh root@************
Enter fullscreen mode Exit fullscreen mode
  1. When prompted, enter the root password you set.

Initial Server Setup

1. Update & Upgrade Packages

# Refresh package index
sudo apt update

# Upgrade all installed packages
sudo apt upgrade -y
Enter fullscreen mode Exit fullscreen mode

2. Install Common Utilities

Install essential packages (including Docker prerequisites):

sudo apt install -y \
  curl \
  git \
  unzip \
  apt-transport-https \
  ca-certificates \
  gnupg \
  lsb-release
Enter fullscreen mode Exit fullscreen mode
  • curl: Fetch remote scripts/GPG keys
  • git: Clone repositories
  • unzip: Extract zip archives
  • apt-transport-https, ca-certificates, gnupg, lsb-release: Required for adding Docker’s HTTPS repository securely

3. Install Docker Engine & Compose

  1. Add Docker’s GPG Key
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
     | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Enter fullscreen mode Exit fullscreen mode
  1. Add Docker’s APT Repository
   echo \
     "deb [arch=$(dpkg --print-architecture) \
     signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
     https://download.docker.com/linux/ubuntu \
     $(lsb_release -cs) stable" \
     | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Enter fullscreen mode Exit fullscreen mode
  1. Update Package Index & Install Docker
   sudo apt update
   sudo apt install -y \
     docker-ce \
     docker-ce-cli \
     containerd.io \
     docker-compose-plugin
Enter fullscreen mode Exit fullscreen mode
  1. Enable & Start Docker Service
   sudo systemctl enable docker
   sudo systemctl start docker
   sudo systemctl status docker
Enter fullscreen mode Exit fullscreen mode

At this point, Docker is running and you can start pulling/running containers and your server is ready to start hosting!


Top comments (0)