Last updated 2026-06-18. Re-validate before each fresh signup.
Critical: Always Free ARM is hours-budgeted, NOT total-capacity.
ORACLE OFFICIAL (updated 2026-06-12, applied 2026-06-15):
1,500 OCPU-hours / month (was 3,000)
9,000 GB-hours / month (was 18,000)
= 2 OCPU / 12 GB if run 24/7 continuously
Math:
Config | Hours/month used | Within budget?
------------------|------------------|------------------
2 OCPU / 12 GB 24/7 | 1,440 (CPU) / 8,640 (RAM) | yes (96% CPU, 96% RAM)
2 OCPU / 6 GB ×2 24/7 | 1,440 / 8,640 | yes (split)
1 OCPU / 6 GB ×2 24/7 | 720 / 4,320 | yes (48% headroom for both)
4 OCPU / 24 GB 24/7 | 2,880 / 17,280 | NO — exceeds by 1,380 CPU / 8,280 RAM hours
Consequence: No upgrade path from 2/12 → 4/24 within Always Free tier. Crossing the cap triggers two outcomes:
- Free-Tier account → Oracle shuts down your instance (verified by Linuxiac + Reddit thread)
- PAYG account → $10-15 USD/month billing surprise (Reddit, Upstairs-Bread-4545)
Downgrade workflow (verified by CuriosGeekMan comment, Reddit):
Instances → Actions → More Actions → Edit
→ reduce vCPU slider (e.g. to 2)
→ reduce RAM slider (e.g. to 12)
→ Save
→ Restart instance
| Risk | Probability | Mitigation | Worst case |
|---|---|---|---|
| 4/24 instance not downgraded post-cut | High (PAYG users caught) | Downgrade via Edit immediately | $10-15/month recurring |
| Free-Tier instance > 2/12 | Instant | Downgrade (or shut down imminent) | VM offline |
| CC charge NOT refunded | Very low | dispute via card issuer within 30 days | $94 orphan |
| Boot volume pricing shows cost | Confirmed | craeckor verified (comment Jun 14) | $0 within limits |
| Outbound traffic crosses paid tier | Medium | stay under 10 TB/mo + monitor | $0.0085/GB |
| Multi-account detection | Low | 1 Oracle account per person | All accts terminated |
| Risk | Probability | Mitigation |
|---|---|---|
| Home region dead | High in 2026 | Auto-discovery or rotate |
| SG-2 / IAD capacity exhausted | Medium | Switch to ASH or SYD |
| Boot volume 200 GB not enough | Low | Microk8s-style split |
| AD-1 stuck, AD-2 OK | High | Script rotates automatically |
| Egress throttle | Confirmed intermittent | Tailscale routing for heavy traffic |
| Risk | Probability | Mitigation |
|---|---|---|
| 1,440 h used before month-end | Low at 2/12 24/7 | monitor quota dashboard |
| 1,440 h exceeded (e.g. burst overuse) | Low | stop non-essential instances |
| Mid-month graph showing 80% used | Medium | downsize before month rolls over |
How to monitor:
- Console → Governance → Limits, Quotas and Usage
Filter:
compute.monthly.hoursOr:oci limits resource-availability get --service compute --limit compute.monthly.hours
| Risk | Probability | Mitigation |
|---|---|---|
| Mining detected | Instant ban | No miner Docker images |
| Multi-account abuse | Instant ban | 1 account per person |
| Compute-hour gaming (over-use) | Slow ban | Stay within hourly cap |
| Resource abuse (CPU/network) | Slow ban | Stay within 2 OCPU / 12 GB / 9,000 GB-h |
| Public-facing prod use | Allowed | But Oracle uptime flaky — don't rely on it |
| Selling/re-selling the box | Some risk | Read Oracle ToS — "personal use" preferred |
black1linkin— instance provisioned but no public IPv4 → use IPv6 or Tailscaleteddyramu— speed capped to 50 Mbps after 5 days → PAYG fixmarcosanson— Milan home region stuck OOC → can't change home; pick wisely at signupharshjdhv— Indian card rejected → try them alljabuxas— every transaction declined → check CC issuer whitelist
For each realistic charge vector this toolkit ships with:
- Hours-budget respected — config defaults to 2 OCPU / 12 GB (perfect fit for 1,500/9,000 envelope)
- PAYG-$0 default — no scripts touch outside free limits
- Bot stops on success — no infinite provisioning loops
- Tailscale recommended — minimizes public-IP exposure
- Trusted image advice — post-provision rejection of random Docker pulls
- Boot volume < 100 GB — conservative default across possible split instances
- Single-instance default — never spawn N VMs by accident
If you genuinely need >2/12 for short workloads (CI/CD, batch rendering, ML training), you can:
Approach: Create a custom-shape VM larger than Always Free, run for hours
(not full month), pay only for used hours.
Example: 12 OCPU / 64 GB VM, run 10 days, then decommission:
CPU: 12 × 24 × 10 × $0.0105/OCPU-h ≈ $30
RAM: 64 × 24 × 10 × $0.0015/GB-h ≈ $23
Total: ~$53 for the burst
Compared: Hetzner CAX31 16GB ARM €17/month flat
- half as much RAM, slightly cheaper, no burst savings
So Oracle burst is more cost-effective only for one-shot heavy workloads. Day-to-day Always Free wins.
See docs/FALLBACKS.md F7 for full burst-scaling recipe.