/var/log/oracle_vps_setup.log

/var/log/oracle_vps_setup.log
Photo by BoliviaInteligente / Unsplash

tl;dr

  1. sign up for oracle cloud free tier to get us$300 credit for 30 days and access to always free services.
  2. create an always free compute instance using an always free eligible shape (vm.standard.e2.1.micro or arm ampere a1 family).
  3. verify account (phone and payment method) and choose an always free eligible region and image to avoid charges.
  4. watch for boot volume minimums, idle-reclamation rules, and service limits to avoid accidental charges or resource deletion.

1. requirements before you start

  1. valid email.
  2. a phone for sms verification.
  3. a credit or debit card for identity verification. oracle does not charge during free trial unless you explicitly convert to paid.

2. what you get free

  1. us$300 cloud credits valid 30 days for trial services beyond always free.
  2. always free compute options including: two vm.standard.e2.1.micro (amd) instances and arm-based ampere a1 options depending on region and availability.
  3. oracle may reclaim idle always free compute instances if cpu, network, and memory are below thresholds over 7 days.
  4. beware of minimum boot volume sizes and non-always-free options that will bill. always select resources marked always free.

3. step by step: create the free oracle cloud account

  1. go to the oracle free tier signup page: https://signup.oraclecloud.com.
  2. fill in name, email, country. choose an always free eligible region when prompted if available.
  3. verify email. oracle will ask for phone verification and card details. provide a card for identity check but you will not be charged for always free usage.
  4. finish onboarding. you will see the free trial dashboard with the $300 credit and the always free resource list.

4. create an always free vps via the console

  1. sign in to your oracle cloud console.
  2. open the menu compute > instances > create instance.
  3. name the instance. wait a second. the console will show an “always free eligible” badge.
  4. under image and shape, click change shape. choose vm.standard.e2.1.micro or an always free arm shape (a1).
  5. ensure boot volume is within always free size. if the console shows a cost estimate, stop.
  6. keep default vcn or use the one created during signup. assign a public ip.
  7. add ssh keys:

ssh-keygen -t rsa -b 4096 -c "your_email@example.com"
cat ~/.ssh/id_rsa.pub

  1. create the instance. wait until status is running and badge says always free.

5. connect and basic secure setup

  1. get the public ip from the console.
  2. ssh in:

ssh opc@public_ip
ssh ubuntu@public_ip

  1. harden the system:

sudo apt update && sudo apt upgrade -y
sudo adduser deployer
sudo usermod -aG sudo deployer
sudo systemctl restart sshd
sudo apt install ufw -y
sudo ufw allow openssh
sudo ufw enable

  1. snapshot after setup.

6. ensure it remains free

  1. use only always free shapes and storage.
  2. monitor billing dashboard regularly.
  3. prevent idle reclamation by scheduling light activity (cron ping). oracle may reclaim idle instances after 7 days.

7. common pitfalls

  1. wrong region or non-free image.
  2. large boot volume exceeding free limits.
  3. enabling paid features or converting to paid account unintentionally.

8. terraform quick start (optional)

minimal example:

provider "oci" {
  tenancy_ocid     = var.tenancy_ocid
  user_ocid        = var.user_ocid
  fingerprint      = var.fingerprint
  private_key_path = var.private_key_path
  region           = var.region
}

resource "oci_core_instance" "vm" {
  availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
  compartment_id = var.compartment_ocid
  shape = "vm.standard.e2.1.micro"
  create_vnic_details {
    subnet_id = var.subnet_ocid
    assign_public_ip = true
  }
  source_details {
    source_type = "image"
    image_id = var.image_id
  }
  metadata = {
    ssh_authorized_keys = file("~/.ssh/id_rsa.pub")
  }
}

9. cleanup

  1. delete instance, boot volumes, and snapshots when done.
  2. verify billing shows zero usage.

10. troubleshooting

  1. no always free badge: pick a different region or shape.
  2. small charges: check for non-free services.
  3. reclaimed instance: keep usage active weekly.

11. final checklist

  1. region and shape show always free badge.
  2. boot volume size within free limit.
  3. ssh key added.
  4. public ip assigned.
  5. billing dashboard verified.