Guide Complet — Oracle Cloud Free Tier (Always Free)

avril 2026 · 19 min de lecture

Objectif : Créer et configurer un VPS ARM gratuit et permanent sur Oracle Cloud Infrastructure (OCI), avec toutes les étapes de l'inscription jusqu'à l'accès SSH, et les solutions aux erreurs courantes.

⚠️ Mise à jour importante (juillet 2026) : Depuis le 15 juin 2026, Oracle a réduit l'allocation Always Free des instances ARM Ampere A1 de 4 OCPU / 24 Go de RAM à 2 OCPU / 12 Go de RAM. Ce guide a été mis à jour avec les nouveaux chiffres. Aucune annonce officielle n'a été faite par Oracle — le changement a été fait directement dans la documentation.


📋 Table des matières

  1. Ce que comprend le Free Tier
  2. Créer un compte Oracle Cloud
  3. Choisir sa Home Region
  4. Créer le réseau virtuel (VCN)
  5. Créer une instance Ampere A1 Flex
  6. Configurer le pare-feu et les règles réseau
  7. Se connecter en SSH
  8. Résoudre l'erreur "Out of Capacity"
  9. Passer en Pay As You Go (PAYG)
  10. Bonnes pratiques et avertissements

1. Ce que comprend le Free Tier

Le Free Tier d'Oracle Cloud est l'un des plus généreux du marché. Il est permanent (pas de date d'expiration), contrairement à AWS ou GCP qui limitent leur free tier à 12 mois.

🖥️ Compute — Machines virtuelles

Shape Architecture Ressources Quantité
VM.Standard.E2.1.Micro AMD x86 1 OCPU / 1 GB RAM 2 instances
VM.Standard.A1.Flex ARM (Ampere Altra) jusqu'à 2 OCPUs / 12 GB RAM 1 à 2 instances

Comment comprendre les limites ARM ?

Le pool ARM est défini en heures, pas en instances :

  • 1 500 OCPU-heures / mois
  • 9 000 GB-heures / mois

En pratique, si tu utilises 1 instance avec 2 OCPUs et 12 GB en continu :

2 OCPUs × 24h × 31 jours = 1 488 heures ✅ (< 1 500)
12 GB × 744h              = 8 928 GB-h   ✅ (< 9 000)

Une instance maximale en 24/7 reste dans les limites gratuites.

Tu peux aussi répartir les ressources sur plusieurs instances :

2 instances × 1 OCPU / 6 GB

⚠️ Zone grise à connaître : la documentation Oracle indique que ces nouvelles limites (2 OCPU / 12 Go) s'appliquent à "tous les tenancies". Mais plusieurs utilisateurs rapportent que les comptes déjà passés en Pay As You Go conservent encore l'accès à 4 OCPU / 24 Go gratuitement. Le support Oracle donne des réponses contradictoires selon l'agent. Ne considère jamais ce point comme garanti — voir section 9.

⚠️ Les instances inactives peuvent être récupérées par Oracle si le CPU reste sous 20% pendant 7 jours. Fais tourner un service léger (ex: un simple serveur web) pour éviter ça.


💾 Stockage

Ressource Limite gratuite
Block Volume (disque) 200 GB total, max 2 volumes, 5 backups
Object Storage 20 GB
Archive Storage 20 GB (partagé avec Object Storage)

Ces limites n'ont pas changé avec la mise à jour de juin 2026. Le boot volume par défaut est de 47–50 GB.


🌐 Réseau

Ressource Limite gratuite
Adresse IP publique 2 IPs réservées gratuites
Sortie de données 10 TB / mois
Load Balancer 1 instance (10 Mbps)
VPN Site-to-Site jusqu'à 50 connexions IPSec

Inchangé également.


🗄️ Bases de données

Ressource Limite gratuite
Autonomous Database 2 instances (OLTP ou Data Warehouse)
MySQL HeatWave 1 instance (50 GB storage)

2. Créer un compte Oracle Cloud

  1. Va sur oracle.com/cloud/free
  2. Clique sur "Start for free"
  3. Remplis tes informations :
    • Email valide (un lien de vérification sera envoyé)
    • Mot de passe (min. 8 caractères, majuscule + chiffre)
    • Cloud Account Name (nom de ton tenancy)

⚠️ Règles importantes pour le Cloud Account Name

  • Tout en minuscules
  • Commence par une lettre
  • Pas d'espaces ni de caractères spéciaux
  • 50 caractères maximum
  • Impossible à changer ensuite — le nom apparaît dans l'URL de connexion
  • Évite les informations personnelles ou confidentielles

Exemple valide : monprojet2024
Exemple invalide : Mon Projet!


3. Choisir sa Home Region

⚠️ Critique : La Home Region ne peut pas être changée après l'inscription.

Recommandations pour choisir

  • Choisis une région proche géographiquement (latence plus basse)
  • Évite South Korea Central (Seoul) et Japan East (Tokyo) : la capacité Ampere A1 y est limitée à cause de la forte demande
  • Les régions européennes recommandées : Germany Central (Frankfurt), UK South (London), Netherlands Northwest (Amsterdam)

Si tu es en France, Germany Central (Frankfurt) est un bon choix par défaut.

Régions avec Free Tier disponible (sélection)

Région Code
Germany Central eu-frankfurt-1
UK South uk-london-1
Netherlands Northwest eu-amsterdam-1
US East (Ashburn) us-ashburn-1
US West (Phoenix) us-phoenix-1

4. Créer le réseau virtuel (VCN)

Avant de lancer une instance, tu as besoin d'un réseau. OCI fournit un assistant qui crée tout automatiquement.

Étapes

  1. Dans la console OCI → menu ☰ → NetworkingVirtual Cloud Networks
  2. Clique sur "Start VCN Wizard"
  3. Sélectionne "Create VCN with Internet Connectivity"
  4. Configure :
    • VCN Name : ex. mon-vcn
    • VCN CIDR Block : 10.0.0.0/16 (par défaut, convient)
    • Public Subnet CIDR : 10.0.0.0/24
    • Private Subnet CIDR : 10.0.1.0/24
  5. Clique sur "Next" puis "Create"

L'assistant crée automatiquement :

  • Un Internet Gateway (accès internet)
  • Un NAT Gateway (pour le sous-réseau privé)
  • Un Service Gateway (accès aux services Oracle)
  • Les tables de routage associées

5. Créer une instance Ampere A1 Flex

Étapes détaillées

5.1 — Naviguer vers la création

Menu ☰ → ComputeInstances"Create Instance"

5.2 — Nommer l'instance

Donne un nom descriptif, ex. mon-serveur-arm

5.3 — Choisir l'image (OS)

Clique sur "Change image" :

OS recommandé Notes
Ubuntu 22.04 LTS Le plus populaire, grande communauté, apt-get
Oracle Linux 9 Plus léger, utilise dnf/yum
Debian 12 Stable, léger

Recommandation : Ubuntu 22.04 LTS Minimal (ARM compatible)

5.4 — Choisir la shape (configuration matérielle)

  1. Clique sur "Change Shape"
  2. Sélectionne "Ampere" (architecture ARM)
  3. Coche VM.Standard.A1.Flex
  4. Ajuste les sliders :
OCPUs  : 2  (maximum Always Free depuis juin 2026)
Memory : 12 GB  (maximum Always Free depuis juin 2026)

⚠️ Ne dépasse pas 2 OCPU / 12 Go. Avec l'ancienne limite (4/24), un avertissement de coût estimé ($2/mois environ) pouvait être ignoré sans risque car tout restait dans l'enveloppe gratuite. Ce n'est plus le cas. Si ton compte est en Pay As You Go et que tu dépasses 2 OCPU / 12 Go, tu peux être facturé pour de vrai. Si ton compte est en Free Tier seul, l'instance risque simplement d'être coupée. Reste strictement dans les nouvelles limites, sauf si tu as validé ta situation avec le support (voir section 9).

5.5 — Configurer le réseau

  • Virtual Cloud Network : sélectionne le VCN créé à l'étape 4
  • Subnet : sélectionne le Public Subnet
  • Public IP address : ✅ Assign a public IPv4 address

5.6 — Configurer les clés SSH

Tu as besoin d'une paire de clés SSH pour te connecter :

Option A — Générer une nouvelle paire depuis OCI (le plus simple)

Sélectionne "Generate a key pair for me" → clique sur "Save Private Key" → conserve précieusement le fichier .key téléchargé.

Option B — Utiliser ta propre clé publique

Si tu as déjà une clé SSH :

# Sur Linux/macOS, ta clé publique est généralement ici :
cat ~/.ssh/id_rsa.pub
# ou
cat ~/.ssh/id_ed25519.pub

Sélectionne "Paste public keys" et colle le contenu.

Générer une nouvelle paire localement si nécessaire :

ssh-keygen -t ed25519 -C "oracle-cloud"
# Fichier généré : ~/.ssh/id_ed25519 (privé) et ~/.ssh/id_ed25519.pub (public)

5.7 — Configurer le stockage (optionnel)

  • Boot Volume par défaut : 50 GB (gratuit jusqu'à 200 GB total, inchangé)
  • Tu peux augmenter jusqu'à 200 GB si c'est ta seule instance

5.8 — Lancer l'instance

Clique sur "Create".

Si tout se passe bien, l'instance passe de PROVISIONING à RUNNING en 2–5 minutes.


6. Configurer le pare-feu et les règles réseau

OCI bloque tout le trafic entrant par défaut. Il faut ouvrir manuellement les ports nécessaires à deux niveaux :

  1. OCI Security Lists (firewall cloud)
  2. iptables (firewall interne à la VM)

6.1 — Ouvrir des ports dans OCI (Security List)

Menu ☰ → NetworkingVirtual Cloud Networks → sélectionne ton VCN → Security ListsDefault Security List

Clique sur "Add Ingress Rules" :

Port Protocole Utilisation
22 TCP SSH (déjà ouvert par défaut)
80 TCP HTTP
443 TCP HTTPS
8080 TCP Serveurs web alternatifs
(ton port) TCP Toute autre app

Exemple de règle pour HTTP :

Source CIDR : 0.0.0.0/0
IP Protocol : TCP
Destination Port Range : 80

6.2 — Ouvrir les ports dans iptables (à l'intérieur de la VM)

Oracle Linux et Ubuntu pré-configurent iptables avec des règles restrictives. Voici comment les gérer :

Voir les règles actuelles :

sudo iptables -L -n --line-numbers

Ajouter une règle pour le port 80 :

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Flush complet (test uniquement — reset toutes les règles) :

sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -F

Sauvegarder les règles iptables de manière permanente :

# Ubuntu
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

# Oracle Linux
sudo service iptables save

7. Se connecter en SSH

7.1 — Trouver l'adresse IP publique

Dans la console OCI → ComputeInstances → clic sur ton instance → copie le Public IP Address.

7.2 — Connexion SSH

# Si tu as généré la clé depuis OCI :
chmod 400 /chemin/vers/ta-cle.key
ssh -i /chemin/vers/ta-cle.key ubuntu@<IP_PUBLIQUE>

# Si tu as utilisé ta propre clé :
ssh -i ~/.ssh/id_ed25519 ubuntu@<IP_PUBLIQUE>

Nom d'utilisateur par défaut selon l'OS :

OS Utilisateur
Ubuntu ubuntu
Oracle Linux opc
Debian admin
CentOS opc

7.3 — Première mise à jour du système

# Ubuntu / Debian
sudo apt update && sudo apt upgrade -y

# Oracle Linux
sudo dnf update -y

8. Résoudre l'erreur "Out of Capacity"

L'erreur Out of capacity for shape VM.Standard.A1.Flex est extrêmement courante. La ressource ARM est très demandée et la capacité disponible fluctue en temps réel.

💡 Pourquoi Frankfurt ? La région Germany Central (Frankfurt) dispose de 3 Availability Domains (AD-1, AD-2, AD-3) indépendants. La plupart des autres régions n'en ont qu'un seul. Cela triple tes chances de trouver de la capacité disponible, et c'est la raison principale pour laquelle Frankfurt est la Home Region recommandée.


Solution 1 — La technique Reddit : créer en A2.Flex puis basculer en A1.Flex via CLI

Source : r/oraclecloud — Technique partagée par un utilisateur Free Tier, testée et confirmée à l'époque des anciennes limites (4/24). Le principe reste valable, mais relis bien l'avertissement ci-dessous avant de l'utiliser : le contexte a changé depuis juin 2026.

Le principe : La console web tente de réserver directement un slot A1.Flex — qui est saturé. En revanche, A2.Flex a souvent de la capacité disponible. Une fois l'instance A2 créée et démarrée, on utilise l'OCI CLI pour changer le shape à chaud vers A1.Flex. Oracle l'accepte car l'instance existe déjà sur un host physique ARM, et les deux shapes (A1 et A2) utilisent la même architecture Ampere.

⚠️ Avertissement renforcé (juillet 2026) : VM.Standard.A2.Flex est une shape payante, et surtout, avec les nouvelles limites Always Free à 2 OCPU / 12 Go, demander plus que ça au moment de la conversion (étape 4 ci-dessous) peut désormais entraîner une vraie facturation, alors qu'avant, tout restait sous le plafond gratuit de 4/24. Configure une alerte budget à 1$ avant de commencer, et ne demande jamais plus de 2 OCPU / 12 Go dans la commande de conversion tant que tu n'as pas confirmé ta situation avec le support Oracle.

Étape 1 — Créer une instance A2.Flex depuis la console

  1. Menu ☰ → ComputeInstances"Create Instance"
  2. Choisis ton image habituelle (Ubuntu 22.04)
  3. Clique sur "Change Shape"Ampere → sélectionne VM.Standard.A2.Flex
  4. Mets 1 OCPU et 6 GB de RAM (minimum, juste pour que ça passe)
  5. Configure le réseau et les clés SSH normalement
  6. Clique "Create" → l'instance se crée sans erreur de capacité

Étape 2 — Installer et configurer OCI CLI

# Installation OCI CLI (Linux/macOS)
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

# Vérification
oci --version
# Configuration (OCID utilisateur, tenancy, région, clé API)
oci setup config

Ensuite, uploader la clé publique dans OCI Console :
Menu ☰ → Avatar → "User Settings""API Keys""Add API Key" → colle le contenu de ~/.oci/oci_api_key_public.pem

Étape 3 — Récupérer l'OCID de ton instance A2

Dans la console OCI → ComputeInstances → clique sur ton instance A2 → copie l'OCID (ressemble à ocid1.instance.oc1.eu-frankfurt-1.aaaaa...)

Étape 4 — Basculer de A2 vers A1

oci compute instance update \
  --instance-id <TON_OCID_INSTANCE> \
  --shape VM.Standard.A1.Flex \
  --shape-config '{"ocpus": 2, "memoryInGBs": 12}'

Remplace <TON_OCID_INSTANCE> par l'OCID copié à l'étape précédente. Note que la commande demande maintenant 2 OCPU / 12 Go, conformément à la nouvelle limite Always Free — c'est volontaire, ne l'augmente pas sans avoir vérifié ta situation.

✅ Si ça fonctionne, tu verras une réponse JSON confirmant le nouveau shape VM.Standard.A1.Flex. L'instance redémarre automatiquement.

Exemple de réponse JSON en cas de succès :

{
  "data": {
    "shape": "VM.Standard.A1.Flex",
    "shape-config": {
      "ocpus": 2.0,
      "memory-in-gbs": 12.0
    },
    "lifecycle-state": "RUNNING"
  }
}

Étape 5 — Vérifier dans la console

Retourne sur la console OCI → ton instance → vérifie que la shape affiche bien VM.Standard.A1.Flex et que le badge "Always Free" est présent.


Solution 2 — Réessayer manuellement (patience)

Retourne sur le formulaire de création et clique à nouveau sur "Create". Essaie à différentes heures (nuit, week-end) ou change l'Availability Domain (AD-1, AD-2, AD-3 sur Frankfurt).

Solution 3 — Script JavaScript dans la console Chrome

Ouvre l'outil de développement Chrome (F12) → Console, et colle ce script après avoir configuré ton instance et cliqué Create une première fois :

// Relance automatiquement le bouton "Create" toutes les 30 secondes
setInterval(() => {
  const btn = document.querySelector('[data-action-type="create"]');
  if (btn) {
    console.log("Retry:", new Date().toLocaleTimeString());
    btn.click();
  }
}, 30000);

⚠️ Laisse la fenêtre ouverte. Le script peut prendre plusieurs heures avant de réussir.

Solution 4 — Script automatisé via OCI CLI (recommandé)

Installer OCI CLI :

bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

Configurer l'authentification :

oci setup config
# Suit les instructions : OCID utilisateur, OCID tenancy, région home, génération de clé API

Uploader la clé publique générée dans OCI Console :

Menu ☰ → Profil → API Keys"Add API Key" → colle le contenu de ~/.oci/oci_api_key_public.pem

Préparer les variables nécessaires :

# OCID du compartiment (= OCID du tenancy pour le compte root)
export C=$(grep tenancy ~/.oci/config | cut -d'=' -f2)

# Availability Domain
export AD=$(oci iam availability-domain list --compartment-id $C | jq -r '.data[0].name')

# Image Ubuntu 22.04 ARM
export I=$(oci compute image list --compartment-id $C \
  --operating-system "Canonical Ubuntu" \
  --operating-system-version "22.04" \
  --shape VM.Standard.A1.Flex \
  | jq -r '.data[0].id')

# Subnet ID
export S=$(oci network subnet list --compartment-id $C | jq -r '.data[0].id')

Script de retry en boucle (toutes les 5 minutes) :

#!/bin/bash
# save as: retry-oci.sh

while true; do
  echo "[$(date)] Tentative de création..."
  
  oci compute instance launch \
    --availability-domain "$AD" \
    --compartment-id "$C" \
    --shape VM.Standard.A1.Flex \
    --shape-config '{"ocpus":2.0,"memoryInGBs":12.0}' \
    --image-id "$I" \
    --subnet-id "$S" \
    --assign-public-ip true \
    --display-name "mon-serveur-arm" \
    --ssh-authorized-keys-file ~/.ssh/id_ed25519.pub \
    && echo "✅ SUCCÈS ! Instance créée." && break
  
  echo "❌ Capacité indisponible. Nouvelle tentative dans 5 min..."
  sleep 300
done
chmod +x retry-oci.sh
./retry-oci.sh

Solution 5 — Passer en Pay As You Go (PAYG)

Voir la section suivante.


9. Passer en Pay As You Go (PAYG)

C'est la méthode la plus fiable pour obtenir de la capacité disponible, surtout dans les régions saturées. Mais depuis le changement de juin 2026, il y a un vrai flou à connaître avant de basculer.

Ce qui est confirmé

  • ✅ L'accès à plus de capacité disponible pour créer des instances
  • ✅ Les ressources qui restent dans les limites Always Free documentées (2 OCPU / 12 Go, 200 Go de stockage, etc.) ne sont pas facturées
  • Une vérification temporaire de ~100$ est effectuée sur ta carte, puis remboursée

Ce qui n'est PAS confirmé

  • ⚠️ Certains utilisateurs rapportent que leur compte PAYG affiche encore 4 OCPU / 24 Go comme plafond "Always Free" après upgrade. D'autres se sont fait facturer au-delà de 2/12. Le support Oracle a donné les deux réponses selon l'agent contacté.
  • Ne pars jamais du principe que tu as toujours 4/24 gratuit en PAYG. Si tu veux tester, configure une instance à 2 OCPU / 12 Go d'abord, vérifie sur ta facture du mois suivant qu'il n'y a aucune ligne, puis seulement à ce moment-là envisage d'augmenter — en gardant l'alerte budget active à chaque étape.

Comment upgrader

  1. Console OCI → clic sur ton nom/avatar en haut à droite
  2. "Billing & Cost Management""Upgrade and Manage Payment"
  3. Ajoute une carte bancaire valide
  4. Confirme l'upgrade vers Pay As You Go

Après le passage en PAYG, retente la création de l'instance : les chances de succès sont bien meilleures.

Surveiller ta consommation

Pour éviter toute mauvaise surprise :

  • Active les Budget Alerts dès le passage en PAYG : Billing → Budgets → "Create Budget" avec alerte à 1$
  • Ne crée que des ressources marquées "Always Free" dans la console
  • Vérifie ta facture (Cost Analysis) chaque semaine le premier mois, pas juste à la fin
  • Évite de laisser tourner des services GPU, des grandes bases de données ou d'autres services payants

10. Bonnes pratiques et avertissements

✅ À faire

  • Sauvegarder ta clé privée SSH dans un endroit sûr — sans elle, tu perds l'accès à ton instance
  • Activer les alertes de budget dès le début, surtout si tu passes en PAYG
  • Faire tourner un service actif sur ta VM pour éviter la récupération par Oracle (CPU inactif < 20% pendant 7 jours)
  • Utiliser UFW ou iptables pour gérer finement les accès
  • Sauvegarder régulièrement les données importantes (Object Storage ou snapshot de volume)
  • Vérifier ta facture régulièrement si tu es en PAYG, au moins le premier mois

❌ À éviter

  • Ne pas installer de miners de crypto-monnaie — Oracle surveille et peut bannir définitivement ton compte
  • Ne pas utiliser le compte OCI comme compte partagé sans contrôle des accès
  • Ne pas ignorer les emails de facturation ou d'alerte d'Oracle
  • Ne pas laisser des ports inutiles ouverts publiquement
  • Ne pas configurer une instance au-delà de 2 OCPU / 12 Go en te basant sur l'ancienne limite de 4/24, sauf confirmation explicite de ta situation

🔒 Sécuriser l'accès SSH

# Désactiver l'authentification par mot de passe
sudo nano /etc/ssh/sshd_config
# Modifier :
# PasswordAuthentication no
# PermitRootLogin no

sudo systemctl restart sshd

📊 Ressources utiles

Lien Description
oracle.com/cloud/free Page officielle Free Tier
docs.oracle.com — Always Free Resources Documentation officielle complète — vérifie toujours les chiffres ici en cas de doute
r/oraclecloud Communauté Reddit OCI
github.com/hitrov/oci-arm-host-capacity Script PHP de retry automatique
github.com/mohankumarpaluru/oracle-freetier-instance-creation Script Python complet de création automatique

🚀 Récapitulatif rapide

1. Créer un compte → oracle.com/cloud/free
2. Choisir Home Region (Frankfurt recommandé) → PERMANENT
3. Créer un VCN via Wizard (avec Internet Connectivity)
4. Compute → Create Instance
   └── Image : Ubuntu 22.04
   └── Shape : Ampere → VM.Standard.A1.Flex → 2 OCPUs / 12 GB (nouvelle limite depuis juin 2026)
   └── Network : Public subnet + IP publique
   └── SSH : coller ta clé publique
5. Security List → ouvrir les ports nécessaires (80, 443...)
6. Fixer iptables dans la VM
7. SSH : ssh -i ta-cle.key ubuntu@<IP>
8. En cas d'"Out of Capacity" → Technique Reddit (A2→A1 via CLI, en restant à 2/12), retry script, ou passer en PAYG (avec prudence, voir section 9)

Guide rédigé sur la base de la documentation officielle Oracle, fullmetalbrackets.com, InfoQ, et des retours de la communauté r/oraclecloud — Mise à jour Juillet 2026 (changement des limites Always Free du 15 juin 2026)

Ce guide vient de Build With Nath

La communauté est gratuite. J’y publie ces guides au fil de l’eau et on y répond aux questions.

Autres guides · Guides

Vous dirigez une entreprise et vous voulez savoir lequel de vos process mérite ce genre de traitement ? Le diagnostic vous le dit en trois minutes, ou on en parle trente minutes.