Case Study · Cloud Cost Optimisation

Cutting AWS Costs by 36% for Xioneer

ClientXioneer
ProjectAWS Cost Optimisation
Savings~$80/month · ~$960/year
The Problem

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.

The Approach

Solution We Offered & Delivered

A data-driven, four-pillar AWS cost optimisation engagement grounded in Xioneer's actual CloudWatch utilisation data.

☁️
Challenge

Overprovisioned & Unmonitored

1% CPU, 3% RAM on t2.large, $220/mo On-Demand, no visibility, instances running 24/7.

🔧
Solution

Right-Size, Schedule & Reserve

Monitor → Right-size → Schedule non-prod → Detach idle EBS → Apply Savings Plans / RIs.

Outcome

~36% Monthly Savings

Bill reduced from ~$220 to ~$140. Better utilisation, no performance impact on Odoo.

Right-Sizing
01

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.

Scheduling
02

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.

Storage Cleanup
03

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.

Commitment Pricing
04

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.

Supporting Evidence

Server Utilisation Report — Jun 2026

PPTS Monthly Cloud Instance Activity Report confirming the utilisation baseline that drove the optimisation case.

Instance
EC2 t2.large
Location
AWS — Europe Region
OS
Ubuntu 16.04.7 LTS
Stack
Odoo-14 · PostgreSQL-12
1%
CPU Usage
Median utilisation (2 vCores available)
🖥️
3%
RAM Usage
Median utilisation (8 GB available)
💾
61%
Disk Free
30 GB free (49 GB total, 19 GB used)
Critically underused — t2.large overkill for this workload
Only ~240 MB of 8 GB used — significant downsizing opportunity
Disk growing at +49.8 MB/day — adequate headroom, no scaling needed
Last Backup
06-Jun-2026 · 2:30 AM
Onsite Backup
AWS Snapshot · 41.26 GB
Offsite Backup
PPTS Cloud · 180.91 MB
Temp & Log Cleanup
Completed
Security Patch
Completed
System Update
Completed
🕐 Support Hours
5 of 20 hrs used
⏱️ Uptime
1,137 Days (since May 2023)
How We Did It

Implementation Process

A structured, low-risk optimisation engagement executed in six phases — from discovery through ongoing monitoring.

1
Discovery

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.

4
Scheduling

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.

2
Right-Sizing

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.

5
Commitment

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.

3
Cleanup

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.

6
Monitoring

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.

Impact Created

Results & Impact

Month-on-month AWS Cost Explorer data confirms a sustained reduction from the $220 baseline down to the $138–144 range.

36%
Total monthly cost reduction
~$80
Average monthly savings vs. $220 baseline
3×
EC2 instances right-sized & scheduled
40%
Compute savings via Savings Plans applied
Monthly AWS Cost ($) — Nov 2025 to Jun 2026
Nov-25Dec-25Jan-26Feb-26 Mar-26Apr-26May-26Jun-26

Before vs. After — AWS Cost Optimisation Comparison

ParameterBefore OptimisationAfter Optimisation
Monthly AWS Bill~$220 (On-Demand baseline)~$140 avg (36% reduction)
EC2 Instance Typet2.large — oversized for workloadRight-sized to match utilisation
CPU Utilisation1% median (2 vCores idle)Optimised — matched to workload
RAM Utilisation3% median (7.76 GB of 8 GB unused)Right-sized — capacity matched
Instance Running Hours24/7 including nights & weekends (1,137 days up)Business hours only (non-production)
EBS VolumesIdle volumes billed & attachedUnused volumes detached & removed
Pricing Model100% On-Demand (highest cost tier)Mix: On-Demand + Savings Plans + RIs
Cost VisibilityNo dashboards, no alertsAWS Budgets + CloudWatch dashboards
Backup CoverageOnsite only (AWS Snapshot)Onsite + Offsite (PPTS Cloud)
Monthly Savings$0 — no optimisation in place~$80/month saved vs. baseline
What Our Client Says

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."
XI
Xioneer Management Team
Xioneer — AWS Cost Optimisation Client
* Client has provided permission to use name and company in this case study. Testimonial on file. Final approval to be confirmed before publication.
Lessons Learned

Key Insights

What Xioneer's AWS optimisation engagement revealed about cloud waste patterns in SMB and SaaS-hosted environments.

Utilisation

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.

Scheduling

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.

Storage

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.

Pricing

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.

Visibility

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.

Monitoring

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.

What's Next

Future Roadmap

Additional optimisation levers and infrastructure improvements identified for Xioneer in the next 12–24 months.

Phase 1 · Immediate

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.

📍 0–3 months
Phase 2 · Near-Term

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.

📍 3–6 months
Phase 3 · Medium-Term

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.

📍 6–12 months
Phase 4 · Long-Term

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.

📍 12–24 months

"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 Programme
Get Started

Ready 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.

Scroll to Top