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
- Ce que comprend le Free Tier
- Créer un compte Oracle Cloud
- Choisir sa Home Region
- Créer le réseau virtuel (VCN)
- Créer une instance Ampere A1 Flex
- Configurer le pare-feu et les règles réseau
- Se connecter en SSH
- Résoudre l'erreur "Out of Capacity"
- Passer en Pay As You Go (PAYG)
- 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
- Va sur oracle.com/cloud/free
- Clique sur "Start for free"
- 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
- Dans la console OCI → menu ☰ → Networking → Virtual Cloud Networks
- Clique sur "Start VCN Wizard"
- Sélectionne "Create VCN with Internet Connectivity"
- 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
- VCN Name : ex.
- 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 ☰ → Compute → Instances → "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)
- Clique sur "Change Shape"
- Sélectionne "Ampere" (architecture ARM)
- Coche
VM.Standard.A1.Flex - 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 :
- OCI Security Lists (firewall cloud)
- iptables (firewall interne à la VM)
6.1 — Ouvrir des ports dans OCI (Security List)
Menu ☰ → Networking → Virtual Cloud Networks → sélectionne ton VCN → Security Lists → Default 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 → Compute → Instances → 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.Flexest 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
- Menu ☰ → Compute → Instances → "Create Instance"
- Choisis ton image habituelle (Ubuntu 22.04)
- Clique sur "Change Shape" → Ampere → sélectionne
VM.Standard.A2.Flex - Mets 1 OCPU et 6 GB de RAM (minimum, juste pour que ça passe)
- Configure le réseau et les clés SSH normalement
- 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 → Compute → Instances → 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
- Console OCI → clic sur ton nom/avatar en haut à droite
- "Billing & Cost Management" → "Upgrade and Manage Payment"
- Ajoute une carte bancaire valide
- 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)