Deploy Odoo on AWS with OEC.sh
Step-by-step guide to deploying Odoo on AWS EC2. Learn how to create an EC2 instance, configure security groups, and deploy Odoo in minutes with OEC.sh. Save up to 70% compared to Odoo.sh.
Introduction
Amazon Web Services (AWS) is the world's largest cloud provider, offering reliable infrastructure for hosting Odoo. With AWS EC2 and OEC.sh, you can deploy Odoo with enterprise-grade infrastructure while maintaining full control over your costs.
This guide walks you through deploying Odoo on AWS EC2 using OEC.sh for simplified management. You will learn how to select the right instance type, configure security, and get Odoo running in production.
Why AWS + OEC.sh?
Combine AWS infrastructure reliability with OEC.sh ease of use. Get one-click Odoo deployment, automated backups, monitoring, and updates without the complexity of manual server management.
Prerequisites
Before you begin, make sure you have the following:
AWS Account
Active AWS account with EC2 access. New accounts get 12 months of Free Tier benefits.
OEC.sh Account
Free OEC.sh account to manage your Odoo deployment. Sign up takes less than a minute.
Basic EC2 Knowledge
Familiarity with AWS Console and basic understanding of EC2 instances and security groups.
Create AWS EC2 Instance
Follow these steps to create an EC2 instance for Odoo:
1.1 Open EC2 Dashboard
- Log in to AWS Console at aws.amazon.com
- Navigate to EC2 under Compute services
- Click "Launch Instance" button
1.2 Configure Instance
- Name: Enter "Odoo-Production" or your preferred name
- AMI: Select Ubuntu Server 22.04 LTS (HVM)
- Instance type: t3.medium (recommended for small production)
- Key pair: Create new or select existing SSH key pair
1.3 Configure Storage
- Size: 40 GB minimum (80 GB+ for production)
- Volume type: gp3 (General Purpose SSD)
- IOPS: 3000 (default for gp3)
Configure Security Groups
Security groups act as a firewall for your EC2 instance. Configure the following inbound rules:
| Type | Protocol | Port | Source | Description |
|---|---|---|---|---|
| SSH | TCP | 22 | Your IP / 0.0.0.0/0 | SSH access for OEC.sh |
| HTTP | TCP | 80 | 0.0.0.0/0 | HTTP traffic |
| HTTPS | TCP | 443 | 0.0.0.0/0 | HTTPS traffic (SSL) |
Security Best Practice
For production, restrict SSH (port 22) to your IP address or use AWS Systems Manager Session Manager for secure access. Never leave SSH open to 0.0.0.0/0 in production.
Connect OEC.sh to Your Server
Once your EC2 instance is running, connect it to OEC.sh for automated Odoo management:
Get Your EC2 Public IP
In EC2 dashboard, click on your instance and copy the Public IPv4 address (e.g., 54.123.45.67)
Add Server in OEC.sh
Log in to OEC.sh dashboard, go to Servers, and click "Add Server". Enter your EC2 IP address and SSH credentials.
Verify Connection
OEC.sh will test the connection and prepare your server for Odoo deployment. This takes about 2-3 minutes.
Deploy Odoo
With your server connected, deploying Odoo is just a few clicks:
Create New Project
In OEC.sh, click "New Project" and select your connected EC2 server. Choose Odoo version (17 or 18 recommended).
Configure Settings
Set database name, admin password, and optional Git repository for custom modules. OEC.sh handles all the server configuration automatically.
Deploy
Click Deploy and watch the progress. OEC.sh installs PostgreSQL, Odoo, Nginx, and configures everything. Deployment typically takes 3-5 minutes.
Included with every deployment
PostgreSQL optimization, Nginx reverse proxy, daily automated backups, monitoring, and one-click updates.
Configure Domain & SSL
Point your domain to Odoo and enable HTTPS:
Configure DNS
Add an A record in your domain registrar pointing to your EC2 public IP:
Enable SSL in OEC.sh
Once DNS propagates (usually 5-15 minutes):
- Go to your project settings in OEC.sh
- Add your custom domain
- Click "Enable SSL" - automatic Let's Encrypt certificate
- Access Odoo at https://your-domain.com
AWS Instance Recommendations
Choose the right EC2 instance based on your Odoo usage:
| Instance | vCPU | Memory | Use Case | Users | Est. Cost |
|---|---|---|---|---|---|
t3.small | 2 vCPU | 2 GB | Development & Testing | 1-5 users | $15-20/mo |
t3.mediumRecommended | 2 vCPU | 4 GB | Small Production | 5-20 users | $30-40/mo |
t3.large | 2 vCPU | 8 GB | Medium Production | 20-50 users | $60-80/mo |
t3.xlarge | 4 vCPU | 16 GB | Large Production | 50-100 users | $120-150/mo |
* Prices are estimates for on-demand instances in US regions. Use Reserved Instances or Savings Plans for 30-60% additional savings.
Cost Comparison: AWS + OEC.sh vs Odoo.sh
See how much you can save by hosting Odoo on AWS with OEC.sh compared to Odoo.sh:
| Tier | AWS + OEC.sh | Odoo.sh | Savings |
|---|---|---|---|
Small Up to 10 users | $39/mo $30/mo (t3.medium) + $9/mo (OEC.sh) | $72/mo (One App Free + users) | 46% less |
Medium Up to 50 users | $109/mo $80/mo (t3.large) + $29/mo (OEC.sh) | $360/mo | 70% less |
Large 100+ users | $249/mo $150/mo (t3.xlarge) + $99/mo (OEC.sh) | $864/mo+ | 71% less |
AWS + OEC.sh Benefits
- Full control over your infrastructure
- Scale resources independently
- Use Reserved Instances for more savings
- Access to full AWS ecosystem
- No vendor lock-in on infrastructure
Odoo.sh Limitations
- Fixed pricing tiers
- Limited infrastructure choices
- Higher costs at scale
- Fewer regions available
- Odoo Enterprise required
Ready to Deploy Odoo on AWS?
Get started with OEC.sh today. Deploy Odoo on your AWS EC2 instance in minutes, not hours. Free plan available.
Frequently Asked Questions
What AWS region should I choose for Odoo?
Choose the AWS region closest to your primary users for the best latency. For US businesses, us-east-1 (N. Virginia) or us-west-2 (Oregon) are popular choices. For EU businesses, eu-west-1 (Ireland) or eu-central-1 (Frankfurt) are recommended. Consider data residency requirements for GDPR compliance when selecting EU regions.
Can I use AWS Free Tier for Odoo?
AWS Free Tier includes 750 hours/month of t2.micro or t3.micro for the first 12 months. However, these instances have only 1GB RAM, which is insufficient for production Odoo. You can use Free Tier for learning and basic testing, but production deployments require at least t3.small (2GB RAM) or preferably t3.medium (4GB RAM).
Should I use EBS gp2 or gp3 for Odoo?
Use gp3 (General Purpose SSD v3) for Odoo deployments. gp3 offers better performance (3000 IOPS baseline vs 100 IOPS/GB for gp2) at a lower cost. For database-heavy workloads, consider io2 Block Express for even higher IOPS. Configure at least 20GB for small deployments and 80GB+ for production with attachments.
How do I handle Odoo backups on AWS?
OEC.sh provides automated daily backups with one-click restore. Additionally, you can configure EBS snapshots for infrastructure-level backups. For disaster recovery, OEC.sh supports backup to S3, Cloudflare R2, and other storage providers. We recommend keeping 30 days of daily backups and weekly backups for 3 months.
Can I use RDS for PostgreSQL instead of running it on EC2?
Yes, AWS RDS for PostgreSQL is supported with OEC.sh. Using RDS adds cost ($15-50/mo for small instances) but provides automated backups, patching, and multi-AZ failover. For most small to medium deployments, running PostgreSQL on the same EC2 instance works well. Consider RDS when you need high availability or dedicated database resources.
What about AWS Lightsail vs EC2 for Odoo?
AWS Lightsail offers simplified pricing ($5-40/mo fixed) with bundled resources, while EC2 provides more flexibility and scaling options. Lightsail is great for simple deployments with predictable costs. EC2 is better for production workloads needing auto-scaling, reserved instances for cost savings, or integration with other AWS services. OEC.sh works with both.
How do I scale Odoo on AWS?
Start with vertical scaling: resize your EC2 instance to a larger type (e.g., t3.medium to t3.large). For horizontal scaling, use multiple Odoo workers on a larger instance. For high-availability, consider running multiple EC2 instances behind an Application Load Balancer (ALB) with a shared RDS PostgreSQL database. OEC.sh supports all these configurations.
Deploy Odoo on AWS Today
Combine the power of AWS infrastructure with OEC.sh simplicity. Get your Odoo instance running in minutes, not hours.