Back to Blog

How to Create a Free Oracle Cloud Ubuntu Server in 2026

July 28, 202612 min read

Oracle Cloud Infrastructure (OCI) offers a collection of Always Free resources that remain available after the introductory trial ends. The most useful option for developers is an Arm-based Ubuntu virtual machine that can host websites, APIs, databases, Docker containers, development tools, and small production workloads.

"Always Free" is not an unconditional lifetime guarantee. Oracle currently describes these resources as offers that do not expire, but service terms, limits, regional capacity, and product availability can change. Always verify that a resource is labeled Always Free-eligible before creating it.

Contents

  1. What Oracle Always Free is
  2. What you receive
  3. Before you begin
  4. Create the Oracle account
  5. Understand the network
  6. Create the VCN
  7. Create the internet gateway
  8. Create the public subnet
  9. Add the internet route
  10. Check the security list
  11. Create the Ubuntu instance
  12. Create and save SSH keys
  13. Configure storage
  14. Review and launch
  15. Find the public IP
  16. Connect with SSH
  17. First-login commands
  18. Troubleshooting
  19. Avoid unexpected charges

1. What Oracle Cloud Always Free Is

Oracle Cloud Infrastructure is Oracle's public cloud platform, comparable in purpose to Amazon Web Services, Microsoft Azure, and Google Cloud. A compute instance is a virtual server running inside an Oracle data center. You control its operating system and can install software much as you would on a physical Linux server.

Oracle Free Tier contains two separate parts:

  • A time-limited promotional trial that provides credits for testing eligible paid services.
  • Always Free resources that can continue after the trial ends, provided your account and resources remain eligible and within Oracle's limits.

2. What You Receive for the Free Ubuntu Server

For an Always Free tenancy, Oracle's current documentation states that all tenancies get the first 1,500 OCPU hours and 9,000 GB hours per month free for instances using the VM.Standard.A1.Flex shape. For Always Free tenancies, that is equivalent to 2 OCPUs and 12 GB of memory in total across all Ampere A1 instances.

ResourceConfiguration used in this guide
Processor architectureArm64 using Oracle Ampere A1
Compute shapeVM.Standard.A1.Flex
CPU2 OCPUs
Memory12 GB RAM
Operating systemCanonical Ubuntu 24.04
Boot volumeDefault size, approximately 46.6–50 GB depending on the current image
NetworkPublic IPv4 address on a public subnet
Arm compatibility. Ubuntu, Docker, Node.js, Nginx, PostgreSQL, Python, Java, and most common open-source server software support Arm64. Verify compatibility before installing proprietary x86-only software.

3. Before You Begin

You will need:

  • A valid email address and mobile phone number.
  • A valid credit or debit card for identity verification.
  • A Windows, macOS, or Linux computer with an SSH client.
  • A safe place to store the SSH private key.
  • A carefully chosen Oracle home region.
Choose the home region carefully. Always Free compute instances must be provisioned in the account's home region. The home region is not something you should expect to change later.

4. Create the Oracle Cloud Account

Step 1 — Open Oracle Cloud Free Tier signup

Visit Oracle's official Free Tier signup page and begin registration. Use accurate personal and billing information. Oracle permits one Free Trial or Always Free account per person.

Step 2 — Choose personal or business use

Choose personal use when the account belongs to you individually. Choose business use only when the account genuinely belongs to a registered organization.

Step 3 — Verify your email and phone

Complete Oracle's email and mobile verification steps.

Step 4 — Select the home region

Choose a nearby commercial region with acceptable latency. In the United States, common choices include US East (Ashburn), US West (Phoenix), US West (San Jose), and US Midwest (Chicago), subject to availability.

Step 5 — Enter payment-card information

The card is used for account verification. Oracle states that it is not charged unless you upgrade the account, although a temporary authorization may appear during verification.

5. Understand the Network Before Creating the Server

A fresh Oracle account may not yet have the network components required for a publicly reachable server. Creating them first avoids the common problem in which the public IPv4 option is unavailable or grayed out.

Internet
   │
   ▼
Internet Gateway
   │
   ▼
Virtual Cloud Network (VCN) — 10.0.0.0/16
   │
   ▼
Public Subnet — 10.0.0.0/24
   │
   ▼
Ubuntu Instance
   ├── Private IPv4: 10.0.0.x
   └── Public IPv4: assigned by Oracle

The components serve different purposes:

  • VCN: The private software-defined network containing your cloud resources.
  • Public subnet: A segment of the VCN in which instances may receive public IP addresses.
  • Internet gateway: Connects the VCN to the public internet.
  • Route table: Directs internet-bound traffic to the internet gateway.
  • Security list: Controls which inbound and outbound network traffic is allowed.

6. Create the Virtual Cloud Network

In the Oracle Console, open Navigation menu → Networking → Virtual cloud networks → Create VCN.

FieldValue
Namemy-vcn or another descriptive name
CompartmentYour root compartment, unless you intentionally created another one
IPv4 CIDR block10.0.0.0/16
Use DNS hostnames in this VCNEnabled
IPv6 / ULA prefixesLeave blank for this guide
Tags and security attributesLeave empty unless your organization uses them

Select Create. Open the new VCN after its status becomes Available.

7. Create the Internet Gateway

Inside the VCN, open the Gateways tab or the Internet Gateways resource section, depending on the console layout.

  1. Select Create Internet Gateway.
  2. Name it my-igw.
  3. Leave the compartment unchanged.
  4. Leave the advanced route-table association empty.
  5. Select Create Internet Gateway.

The gateway is enabled when created, but it will not carry traffic until you add the route rule later.

8. Create the Public Subnet

Inside my-vcn, open Subnets → Create Subnet.

FieldValue
Namepublic-subnet
Subnet typeRegional
IPv4 CIDR block10.0.0.0/24
Route tableDefault Route Table for my-vcn
Subnet accessPublic Subnet
DNS hostnamesEnabled
DHCP optionsDefault DHCP Options for my-vcn
Security listDefault Security List for my-vcn
Resource loggingOptional; leave disabled for this basic setup

Select Create Subnet.

9. Add the Route to the Internet Gateway

Inside the VCN, open Routing → Default Route Table for my-vcn → Route Rules → Add Route Rules.

FieldValue
Target typeInternet Gateway
Destination CIDR block0.0.0.0/0
Target Internet Gatewaymy-igw
DescriptionOptional

Save the rule. The route-table list should now contain:

Destination: 0.0.0.0/0
Target Type: Internet Gateway
Target: my-igw
Route Type: Static

10. Check the Security List

SSH uses TCP port 22. Many default OCI security lists already include an SSH ingress rule. Verify it before troubleshooting a failed connection.

Open VCN → Security → Default Security List for my-vcn → Ingress Rules. You need a stateful TCP rule allowing destination port 22.

FieldRecommended value
Source typeCIDR
Source CIDRYour own public IP with /32 for best security, or 0.0.0.0/0 for easier initial access
IP protocolTCP
Source port rangeAll
Destination port range22
Use the narrowest source possible. Allowing 0.0.0.0/0 means anyone on the internet can attempt to reach port 22. SSH key authentication still protects login, but restricting the source to your current public IP is safer when practical.

11. Create the Ubuntu Compute Instance

Open Navigation menu → Compute → Instances → Create Instance.

Basic information

FieldValue
NameChoose a descriptive name, such as ubuntu-web-server
CompartmentYour chosen compartment
PlacementLeave Oracle's default availability domain and fault-domain selection unless capacity requires a change

Image

  1. Select Change image.
  2. Choose Canonical Ubuntu 24.04.
  3. Use the regular image rather than Minimal unless you specifically want a stripped-down installation.

Shape

  1. Select Change shape.
  2. Choose the Ampere processor family.
  3. Select VM.Standard.A1.Flex.
  4. Set 2 OCPUs and 12 GB memory.
  5. Confirm that the console labels the shape Always Free-eligible.
Do not exceed the current Always Free total. Oracle's documentation states that Always Free tenancies receive the equivalent of 2 OCPUs and 12 GB of memory across all Ampere A1 instances. Allocating more than that means the excess is chargeable.

Security

For a straightforward Ubuntu web server, leave Shielded Instance and Confidential Computing disabled unless you have a specific requirement and compatible configuration.

Networking

FieldValue
Primary networkSelect existing virtual cloud network
Virtual cloud networkmy-vcn
SubnetSelect existing subnet → public-subnet
Private IPv4Automatically assign
Public IPv4Automatically assign public IPv4 address: On
IPv6Leave disabled for this guide

12. Generate and Save the SSH Keys

On the Add SSH keys page:

  1. Select Generate a key pair for me.
  2. Select Download private key.
  3. Optionally download the public key as a backup record.
  4. Move the private key into a safe location, such as your user's .ssh folder.

Example Windows location:

C:\Users\YourName\.ssh\oracle-ubuntu.key
The private key is the credential. Do not email it, upload it to a repository, paste it into a chat, or share it. Oracle will not display the generated private key again.

13. Configure the Boot Volume

The default Ubuntu boot volume is adequate for a basic server and counts toward your Always Free block-volume allowance.

  • Leave custom boot-volume sizing disabled unless you need more space.
  • Keep the default volume, approximately 46.6–50 GB for the current Ubuntu image.
  • Oracle-managed encryption is enabled by default.
  • Do not select a customer-managed encryption key unless you already use OCI Vault and understand its configuration.
  • Do not add extra block volumes unless you have checked the remaining free storage allowance.

14. Review and Launch

Before selecting Create, confirm the following:

  • Canonical Ubuntu 24.04
  • VM.Standard.A1.Flex marked Always Free-eligible
  • 2 OCPUs and 12 GB RAM
  • Existing VCN: my-vcn
  • Existing subnet: public-subnet
  • Public IPv4 address: Yes
  • Private IPv4 address: Automatically assigned
  • SSH private key downloaded
  • No unplanned paid storage or networking resources

Select Create. Wait for the lifecycle state to change from Provisioning to Running.

15. Find the Server's Public IP Address

Open Navigation menu → Compute → Instances → your instance.

On the instance details page, locate Instance access or the primary VNIC information. Copy the value labeled Public access IP address or Public IPv4 address. It will resemble:

129.146.123.45

Do not use the private address beginning with 10. for a direct SSH connection from your home computer.

16. Connect to Ubuntu with SSH

Windows PowerShell or Windows Terminal

ssh -i "$env:USERPROFILE\.ssh\oracle-ubuntu.key" ubuntu@YOUR_PUBLIC_IP

macOS or Linux

First restrict the private key's file permissions:

chmod 600 ~/.ssh/oracle-ubuntu.key

Then connect:

ssh -i ~/.ssh/oracle-ubuntu.key ubuntu@YOUR_PUBLIC_IP

Replace YOUR_PUBLIC_IP with the address shown on the instance details page. The default username for the Canonical Ubuntu OCI image is ubuntu.

On the first connection, SSH asks whether you trust the server's host key. Verify that you are connecting to the correct IP, then type yes.

A successful connection displays an Ubuntu welcome message and a prompt similar to:

ubuntu@ubuntu-web-server:~$

17. First Commands After Login

Update the package index and install available updates:

sudo apt update
sudo apt upgrade -y

Install a small set of useful administration tools:

sudo apt install -y curl wget unzip git nano ufw

Check the operating system and architecture:

cat /etc/os-release
uname -m

On an Ampere A1 instance, uname -m should report aarch64.

Check the allocated CPU, memory, and disk:

nproc
free -h
df -h

Optional Ubuntu firewall

Before enabling UFW, explicitly allow SSH so you do not lock yourself out:

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
Finish line. If SSH works and the update commands complete, the Oracle Ubuntu server, VCN, subnet, gateway, route, public IP, and key authentication are all functioning.

18. Troubleshooting Common Problems

The public IPv4 switch is grayed out

This usually means the selected subnet is not a usable public subnet or has not finished loading in the instance wizard. Verify:

  • The VCN exists.
  • The subnet access type is Public Subnet.
  • The subnet has a valid IPv4 prefix such as 10.0.0.0/24.
  • You selected the existing VCN and existing public subnet in the instance wizard.

SSH times out

  • Confirm that the instance state is Running.
  • Confirm that the instance has a public IP.
  • Confirm that the subnet uses the route table containing 0.0.0.0/0 → my-igw.
  • Confirm that the security list allows TCP port 22 from your IP.
  • Confirm that you used the public IP, not the private IP.

On Windows, test whether TCP port 22 is reachable:

Test-NetConnection YOUR_PUBLIC_IP -Port 22

Permission denied (publickey)

  • Use the username ubuntu.
  • Use the private key that corresponds to the public key installed during instance creation.
  • Check the path and filename in the SSH command.
  • Do not use the downloaded .pub file as the private key.

Out of capacity for VM.Standard.A1.Flex

Oracle may temporarily have no Ampere capacity in the selected availability domain. Try another availability domain when available, reduce the requested resources, or try again later. Do not switch to a paid shape unless you intend to pay for it.

The instance has no public IP

On the instance details page, open the primary VNIC and IPv4 address information. Oracle supports assigning an ephemeral public IP later to the primary private IP, provided the instance is in a public subnet.

The server can be reached, but a website cannot

Opening a website requires more than a working server. You must also:

  • Run a web server or application listening on the expected port.
  • Allow the port in the OCI security list or network security group.
  • Allow the port in UFW if UFW is enabled.
  • For standard websites, allow TCP port 80 for HTTP and 443 for HTTPS.

19. Avoid Unexpected Charges

  • Use resources explicitly marked Always Free-eligible.
  • Keep combined Ampere A1 usage within the current 2-OCPU and 12-GB equivalent after the trial.
  • Remember that boot and block volumes share the Always Free block-storage allowance.
  • Do not create paid load balancers, NAT gateways, extra volumes, or other services without checking pricing.
  • Review Billing & Cost Management → Cost Analysis.
  • Create a small budget alert to notify you if any chargeable usage appears.
  • Delete unused trial-only paid resources before the promotional period ends.
A budget alert is not a spending lock. It notifies you when usage reaches a threshold; it does not necessarily stop or delete a chargeable resource.

Official Sources

This article reflects the Oracle Console workflow observed in July 2026. Oracle may rename tabs, reorganize pages, or alter Free Tier limits. Consult the official documentation before relying on a specific allowance.

Once the server is running, the next step is locking it down. See my complete Ubuntu server hardening checklist for SSH lockdown, fail2ban, intrusion detection, and automated backups — or my guide to running a self-hosted AI assistant on a cloud VPS.

Need help building this?

I turn ideas like these into production-ready software. Let's talk about your project.

Get a Free Quote