Skip to main content
  1. Projects/

Migrating Odoo From On-Premises to Cloud

From On-Premises to Cloud
From On-Premises to Cloud

Executive Summary

A small enterprise migrated its critical Odoo ERP workloads from a legacy on-premises server to a highly available, scalable architecture on AWS. By leveraging AWS Graviton processors (t4g), Aurora Serverless’s Scale-to-Zero capabilities, and flexible storage solutions, the organization reduced its Total Cost of Ownership (TCO) by nearly 50% over a 3-year period while achieving 99.9% availability and automated disaster recovery.


1. The Challenge: On-Premises Limitations #

Prior to migration, the Odoo deployment ran on a dedicated on-premises server.

  • High CAPEX: Over-provisioned hardware (64GB RAM, 16 cores) to handle occasional peak loads, leaving resources idle 80% of the time.
  • Single Point of Failure: A motherboard or power supply failure meant total ERP downtime until parts could be replaced (hours to days).
  • Operational Toil: IT professionals spent ~10 hours/month on manual backups, OS patching, and hardware maintenance.

2. The Solution: AWS Cloud Architecture #

The new architecture prioritizes cost-efficiency without sacrificing high availability (HA).

Odoo Architecture Diagram on AWS

Architecture Highlights: #

  • Compute Strategy:
    • Primary: 1x t4g.2xlarge (ARM-based Graviton2) in Availability Zone 1 (AZ1). Covered by a 3-Year All Upfront Savings Plan for maximum discount.
    • Failover: An Auto Scaling Group (ASG) configured to launch an On-Demand instance in AZ2 only if the primary AZ1 instance becomes unhealthy.
  • Database Efficiency:
    • Amazon Aurora Postgres Serverless: Configured with Min: 0 ACU and Max: 8 ACU.
    • Impact: The database automatically pauses during nights/weekends (scaling to 0) and instantly bursts up to 16GB RAM equivalent (8 ACUs) during month-end close.
  • Storage & Traffic:
    • Amazon EFS: Stores the Odoo filestore (attachments, images) and session data, allowing any instance (primary or failover) to mount the same data immediately.
    • ALB (Application Load Balancer): In public subnets; routes traffic to the private EC2 instance. Handles SSL termination.

3. Financial Analysis: 3-Year TCO Comparison #

These are estimates based on standard AWS US East (N. Virginia) pricing.

A. On-Premises (Baseline) #

A Single Server scenario which is risky but common among small enterprises.

Expense CategoryItem DetailTypeCost (3 Years)
HardwareHigh-perf Server (32GB RAM, RAID SSDs) + UPS + Network GearCAPEX$5,500
MaintenanceHardware AMC, Drive replacements, Battery replacementsOPEX$1,200
Power & Cooling24/7 Operation (~350W continuous @ $0.12/kWh + Cooling)OPEX$1,500
IT Labor5 hrs/mo @ $50/hr (Patching, Backup checks, Troubleshooting)OPEX$9,000
Offsite BackupCloud storage subscription or Tape rotationOPEX$1,080
Total~$18,280

B. AWS Cloud (Implemented) #

Key Efficiency: The Savings Plan drastically cuts compute cost, and “Scale to 0” eliminates database costs during idle hours (weekends, holidays, etc.).

Expense CategoryItem DetailTypeCost (3 Years)
Compute (Primary)t4g.2xlarge (Savings Plan, 3-Yr All Upfront)CAPEX$2,950
Compute (Failover)Buffer for occasional ASG health checks/patching (est. 50 hrs/yr)OPEX$50
DatabaseAurora Serverless v2 (Avg 2 ACU business hrs, 0 ACU off-hours)OPEX$3,600
Load BalancerApplication Load Balancer (Hourly + LCU charges)OPEX$950
StorageEFS (Standard, ~50GB) + EBS Root VolumeOPEX$900
BackupAWS Backup (Retention 30 days)OPEX$750
Total~$9,200

4. The Results #

📉 Cost Reduction #

  • Total Savings: ~$9,080 over 3 years (~49.6% reduction).
  • CAPEX Shift: Shifted from heavy hardware refreshes to a lean, predictable 3-year upfront reservation.

🚀 Operational Wins #

  1. Automated “Sleep” Mode: Unlike the on-prem server which drew power 24/7, Aurora Serverless v2 stops billing for compute when no users are logged in (nights/weekends).
  2. Zero-Touch Failover: If AZ1 goes down, the ASG detects the failure via ALB health checks and launches the AZ2 instance. It auto-mounts the EFS drive, recovering the system typically within minutes without human intervention.
  3. Backup Confidence: AWS Backup provides point-in-time recovery. No more manual tape swaps or fears of corrupted local drives.
  4. Performance: The t4g (Graviton) instances provide ~40% better price-performance for Odoo (Python-based) workloads compared to x86 legacy servers.