Skip to content

What the platform costs

Every figure on this page is ex-VAT. The estate’s cost is quoted pre-tax because that is the right basis for comparing infrastructure decisions. The invoice adds 14% VAT — the one complete invoice on record reads $372.89 + $52.20 = $425.09 — so ≈$360/month pre-tax is ≈$410/month payable, and the $402.18/month of savings is worth $458/month in cash. Take tax from the invoice, never from Cost Explorer: CE attributes it differently and shows roughly eight times less.

The AWS estate for Orascom Portals costs roughly $360–375 per month pre-tax. This page explains that figure, the three ways it is easy to get wrong, and what is still available.

Figure Value Use it for
Structural run-rate $374.58 / month (Cost Explorer, 2026-08-25 → 08-31, full rate) Reasoning about what the infrastructure genuinely costs
Expected invoice ≈ $360 / month pre-tax Predicting the usage line
Payable ≈ $410 / month What finance pays — the August invoice carries 14% VAT ($372.89 + $52.20 = $425.09)

The gap between the two is the free-tier t4g.small allowance. The 2026-08-25 → 08-31 window is the only clean steady-state period available: it sits after the August optimisations landed and before the September free-tier reset.

Total verified reduction: $402.18 / month (≈ $4,826 / year). Every item was re-verified against the live resource.

Action Date $/month
RDS MySQL 8.0 Extended Support eliminated by upgrading to 8.4.11 2026-08-23 356.51
Staging environment decommissioned 2026-08-16 18.87
ODH-Prod-Backend-Template stopped (not terminated) 2026-08-24 14.02
Leaked green fleet from a stalled deploy, deleted (not a stray resource — see below) 2026-08-24 10.82
Five portals/staging/* secrets scheduled for deletion 2026-08-22 1.96
CRM target-group health check relaxed to 10 s / 5 strikes 2026-08-24 0.00 — a reliability fix, see below

One action produced 89% of the saving, and nobody chose it

Section titled “One action produced 89% of the saving, and nobody chose it”

The RDS item alone is $356.51/month — 89% of everything saved, and 95% of the entire remaining bill. Paying it nearly doubled the cost of the account. The mechanism is worth understanding because it will recur: MySQL 8.0 left standard support on 2026-07-31, and the production database was automatically enrolled into paid Extended Support on 08-01, billed per vCPU-hour with Multi-AZ billing the standby as well. (UAT had already opted out and billed $0.) No AWS warning reached Orascom — billing notifications go to the root address and registered billing contacts, which were the outgoing vendor’s. No one made a decision; it arrived on a calendar and nobody was told. The 08-23 upgrade to 8.4.11 ended it.

The production CRM instance had been flapping — eight load-balancer health-check kills, each one a CRM outage — caused by a memory-tight instance combined with an aggressive health check (5 s timeout, 2 strikes) against an endpoint that takes ~2.6 s to answer. Relaxing the check to 10 s / 5 strikes on 2026-08-24 was ranked the single most important action, and there have been no kills since. Stated honestly: the last kill preceded the fix by about eight hours, so the fix is strongly consistent with the outcome rather than proven to be its sole cause.

Nothing below has been executed.

Item $/month Reversible?
S3 gateway VPC endpoint up to 12.80 Yes — the only free, low-risk, reversible item on the list. Still not created. Note the ceiling applies to the NAT bytes line only, and the S3-attributable share is unmeasured. Recommended.
WAF Bot Control 10.00 Yes, but read the caveat. In steady state it blocks 58 of ~143,000 requests over 14 days (0.04%) while a free rule ahead of it blocks ~90%, so the routine economics favour removal. But in the July 2026 traffic flood it blocked 95 million requests — more than every other rule group combined — and its per-request charge added roughly $385 to that one month. It is both the most expensive item under load and the only volumetric defence present. An owner call — and if it goes, a rate-based rule (about $1/month) should go in first.
EC2 Instance Savings Plan 13.78 – 23.38 ❌ No — 12-month commitment
RDS Reserved Instance 16.80 – 19.52 ❌ No — 12-month commitment
Idle Elastic IP 3.65 Keep. Stale DNS records still point at it, several in a zone Orascom does not control, so releasing it could hand a stranger live callback traffic. Cheap insurance.

Rejected, with the arithmetic, so they are not re-proposed each quarter: dropping RDS Multi-AZ saves $39.95/month but removes database failover; RDS gp2 → gp3 is not a lever at all (unlike EBS, RDS prices them within a fraction of a cent, so gp3 is marginally more); cutting backups saves $0 because backups are already free; interface VPC endpoints cost more than the entire NAT bill they would offset; and a NAT instance saves $42/month at the price of a single point of failure on all production egress.

Priced so nobody chases them for money: WAF logs are 99.4% of all CloudWatch Logs volume but currently free-tier absorbed, with only ~2× headroom; there is no lifecycle rule on any S3 bucket while versioning is on, so the deploy bucket accumulates every revision forever; and the ECR lifecycle rule can never fire because it targets untagged images and every image carries a tag. All are hygiene against unbounded growth.

The largest cost item in this account appeared automatically, on a support calendar, without anyone making a decision — and was invisible until someone went looking. The estate itself is not wasteful: the orphan sweep is clean, storage is fully attached, UAT shares the production load balancer, and no half-decommissioned environment is quietly billing. The defence against the next surprise is a billing alarm and a maintenance calendar, not more scrutiny of the parts that are already tidy.