Cutting AWS Costs by 36% for Xioneer
Business Challenges Faced
Xioneer's AWS environment was running on unmonitored, over-provisioned infrastructure — accumulating costs far above what the workload justified.
Severely Over-Provisioned EC2
The t2.large instance showed only 1% CPU and 3% RAM median utilisation — well below what the instance size warranted, meaning Xioneer was paying for capacity it barely used.
Instances Running 24/7
All 3 EC2 instances ran around the clock including weekends and off-hours. Non-production and dev servers had no shutdown schedule, accumulating charges with zero value delivered.
No Cost Visibility or Monitoring
No CloudWatch dashboards, no billing alerts, and no Cost Explorer review in place. Monthly bills of ~$220 were accepted without investigation despite very low utilisation.
Idle EBS Volumes Attached
EBS volumes remained attached and actively billed even after associated workloads were stopped or terminated — representing pure wasted spend on idle block storage.
100% On-Demand Pricing
All compute ran on On-Demand pricing — the most expensive billing model. With 1,137 days of uptime on the same instance, Reserved Instances were a clear, unclaimed opportunity.
Aged OS & Stack Running Since 2023
The instance had been running on Ubuntu 16.04.7 LTS since last reboot in May 2023 (1,137 days uptime) with no instance refresh — increasing risk and blocking optimisation options.
Solution We Offered & Delivered
A data-driven, four-pillar AWS cost optimisation engagement grounded in Xioneer's actual CloudWatch utilisation data.
Overprovisioned & Unmonitored
1% CPU, 3% RAM on t2.large, $220/mo On-Demand, no visibility, instances running 24/7.
Right-Size, Schedule & Reserve
Monitor → Right-size → Schedule non-prod → Detach idle EBS → Apply Savings Plans / RIs.
~36% Monthly Savings
Bill reduced from ~$220 to ~$140. Better utilisation, no performance impact on Odoo.
EC2 Instance Right-Sizing
CloudWatch data showed 1% CPU and 3% RAM median usage on the t2.large. Migrated to a right-sized instance type — dramatically reducing compute costs with zero impact on Odoo-14 performance.
Instance Scheduling
Configured automated start/stop schedules for non-production EC2 instances. Dev and staging servers now shut down outside business hours, eliminating overnight and weekend charges.
EBS Volume Detachment
Identified and detached idle EBS volumes no longer tied to active workloads. Terminated orphaned snapshots and cleaned up storage waste from the monthly billing cycle.
Savings Plans & Reserved Instances
With 1,137 days of continuous uptime, baseline workload was predictable. Applied 1-year Savings Plans and Reserved Instances — locking in discounts of up to 40% vs. On-Demand rates.
Server Utilisation Report — Jun 2026
PPTS Monthly Cloud Instance Activity Report confirming the utilisation baseline that drove the optimisation case.
Implementation Process
A structured, low-risk optimisation engagement executed in six phases — from discovery through ongoing monitoring.
Cost & Utilisation Audit
Pulled Xioneer's billing data from AWS Cost Explorer and reviewed CloudWatch metrics. Confirmed CPU median of 1% and RAM median of 3% on the t2.large — establishing the right-sizing case.
Automated Start/Stop Scheduling
Configured EventBridge/Lambda rules to automatically stop non-production EC2 instances outside business hours. With 1,137 days of continuous uptime, this was an immediate, significant saving.
Instance Analysis & Migration
Mapped utilisation data to optimal instance types. Migrated the over-provisioned t2.large to a right-sized alternative — reducing compute costs without impacting Odoo-14 or PostgreSQL-12.
Savings Plans & Reserved Instances
Analysed 30-day baseline patterns and applied 1-year Savings Plans and Reserved Instances for the stable production workload — securing up to 40% discount vs. On-Demand pricing.
EBS & Unused Resource Removal
Identified idle EBS volumes, orphaned snapshots, and unused Elastic IPs. Detached and terminated all unused resources — removing hidden storage charges from Xioneer's monthly bill.
Ongoing Visibility & Alerting
Set up AWS Budgets with email alerts, CloudWatch dashboards for key cost drivers, and a monthly Cost Explorer review cadence — keeping Xioneer's costs controlled and visible going forward.
Results & Impact
Month-on-month AWS Cost Explorer data confirms a sustained reduction from the $220 baseline down to the $138–144 range.
Before vs. After — AWS Cost Optimisation Comparison
| Parameter | Before Optimisation | After Optimisation |
|---|---|---|
| Monthly AWS Bill | ~$220 (On-Demand baseline) | ~$140 avg (36% reduction) |
| EC2 Instance Type | t2.large — oversized for workload | Right-sized to match utilisation |
| CPU Utilisation | 1% median (2 vCores idle) | Optimised — matched to workload |
| RAM Utilisation | 3% median (7.76 GB of 8 GB unused) | Right-sized — capacity matched |
| Instance Running Hours | 24/7 including nights & weekends (1,137 days up) | Business hours only (non-production) |
| EBS Volumes | Idle volumes billed & attached | Unused volumes detached & removed |
| Pricing Model | 100% On-Demand (highest cost tier) | Mix: On-Demand + Savings Plans + RIs |
| Cost Visibility | No dashboards, no alerts | AWS Budgets + CloudWatch dashboards |
| Backup Coverage | Onsite only (AWS Snapshot) | Onsite + Offsite (PPTS Cloud) |
| Monthly Savings | $0 — no optimisation in place | ~$80/month saved vs. baseline |
Client Testimonial
"We had been running the same AWS setup for years without ever questioning whether we were paying the right amount. PPTS came in, looked at the actual utilisation data from CloudWatch, and the numbers were eye-opening — our CPU was at 1%, our RAM at 3%. We were massively over-paying for capacity we never used. After the right-sizing and scheduling changes, our bill dropped from $220 to around $140 a month. That's real savings, month after month, and our Odoo system performs just as well. The team handled everything professionally and we had full visibility throughout."
Key Insights
What Xioneer's AWS optimisation engagement revealed about cloud waste patterns in SMB and SaaS-hosted environments.
1% CPU usage is the clearest signal to right-size
When CloudWatch shows sub-5% CPU and sub-10% RAM medians, the instance is oversized by at least 1–2 tiers. Xioneer's t2.large was provisioned for peak demand that never materialised.
1,137 days of uptime means a scheduling win was overdue
Non-production instances running continuously for years is pure waste. Automated scheduling is a zero-risk, immediate saving that requires no architecture change.
EBS volumes silently accumulate cost after workloads end
Orphaned EBS volumes and snapshots are invisible in day-to-day operations but appear in billing audits. Regular cleanup is essential to prevent storage cost creep in mature environments.
Long uptime = strong case for Reserved Instances
A production instance with 1,137 days of continuous runtime is a textbook Reserved Instance candidate. Applying 1-year RIs delivers 30–40% savings on that workload immediately.
No alerts means no accountability for cloud spend
Xioneer's environment had no Budget alerts or CloudWatch cost dashboards. Simple alerting — a 30-minute setup — is the highest-ROI first step in any cloud optimisation programme.
Monthly PPTS activity reports provide the right cadence
The PPTS Monthly Cloud Instance Activity Report format — covering utilisation, backups, patch status, and support hours — gives clients a structured, consistent view of their cloud health.
Future Roadmap
Additional optimisation levers and infrastructure improvements identified for Xioneer in the next 12–24 months.
OS & Stack Upgrade
Ubuntu 16.04.7 LTS is end-of-life. Migrate to Ubuntu 22.04 LTS and upgrade Odoo-14 to a supported version — reducing security risk and unlocking new instance types.
Auto Scaling for Odoo
Replace fixed-capacity EC2 with an Auto Scaling Group — scaling up during peak Odoo usage and scaling down at off-peak, paying only for actual demand.
Spot Instances for Batch Jobs
Move any non-time-sensitive batch workloads (reports, data exports, backups) to EC2 Spot Instances — typically 70–90% cheaper than On-Demand for fault-tolerant tasks.
Annual RI Review & Expansion
Review 1-year Savings Plans and Reserved Instances at renewal. Expand commitment coverage to additional stable workloads identified through PPTS monthly monitoring reports.
"Cloud cost optimisation is not a one-time project. With PPTS monthly monitoring, every report is an opportunity to catch waste early and keep Xioneer's AWS environment lean and efficient."
— PPTS Cloud Optimisation ProgrammeReady to Cut Your AWS Bill by 30% or More?
PPTS analyses your AWS environment, identifies waste, and implements proven cost-reduction strategies — right-sizing, scheduling, storage cleanup, and commitment pricing.