Get a quote

Reducing SaaS Infrastructure Costs in the MENA Region: What Actually Works

Most SaaS teams in Lebanon and the MENA region discover their AWS bill is too high at the worst possible moment: when they are trying to extend runway. This is a systematic approach to infrastructure cost reduction that does not require sacrificing availability or engineering time.

Most SaaS teams in Lebanon and the MENA region discover their AWS bill is too high at the worst possible moment: when they are trying to extend runway or when a funding round takes longer than expected. Infrastructure cost optimization is more tractable than it appears, but only if you have enough visibility to know where the money is actually going. This is a systematic approach that does not require sacrificing availability or diverting engineering time from product.

Why MENA SaaS infrastructure costs more than it should

There are two structural reasons why SaaS products built in Lebanon and the Gulf tend to overpay for AWS infrastructure compared to equivalent products in Europe or the US.

The first is region selection. The natural choice for teams wanting low latency to Lebanon and the Gulf is me-south-1 (Bahrain) or me-central-1 (UAE). Both regions are 10 to 20% more expensive than eu-west-1 for most compute and storage services. For a product in early stages where the performance difference is below user-perceptible thresholds, running in eu-west-1 and accepting 60 to 100ms additional latency is a legitimate cost trade.

The second is that default AWS configurations optimize for availability and operational simplicity, not cost. When a developer sets up an ECS service through the console, the default configurations provision more capacity than an early-stage product needs. Those defaults persist until someone actively reviews them.

The five line items that drive most early-stage SaaS bills

In our experience building infrastructure for SaaS products in Lebanon and the MENA region, five line items account for 70 to 85% of most early-stage AWS bills.

EC2 and Fargate compute. Over-provisioned task sizes and tasks running at full capacity during off-peak hours are the most common cause. Right-sizing tasks and adding scheduled scaling can cut compute costs by 30 to 50%.

RDS. Database instances are frequently over-provisioned. A Multi-AZ RDS instance costs roughly double a single-AZ instance. For development and staging environments, Multi-AZ is unnecessary. For production at early stages where RPO requirements are relaxed, a single-AZ instance with automated daily backups and point-in-time recovery is operationally adequate.

NAT Gateway. NAT Gateway charges per hour of existence and per GB of data processed. A NAT Gateway running continuously in eu-west-1 costs roughly $32 per month before any traffic. Fargate tasks making frequent calls to S3 or external APIs route that traffic through NAT. S3 VPC Endpoints and DynamoDB VPC Endpoints eliminate this traffic cost for internal AWS services.

Data transfer. Application logs sent to external observability platforms (Datadog, New Relic), frequent calls to external APIs, and downloads from S3 without CloudFront all generate cross-region or internet egress costs. Structured cost monitoring identifies which call patterns are responsible.

Elastic Load Balancers. ALBs charge per hour and per LCU. For non-production environments, removing ALBs entirely (using direct CloudFront or container networking) eliminates the baseline cost.

Building cost visibility before you optimize

Optimizing infrastructure costs without tagging is guesswork. Before making any changes, spend half a day ensuring that every AWS resource is tagged with at least three dimensions: Environment (production, staging, development), Service (api, worker, background, database), and Team if you have multiple.

Enable Cost Explorer resource-level granularity. It takes 24 hours for Cost Explorer to begin showing resource-tagged data, but once active it makes the five line items above immediately identifiable per environment and per service.

Set up cost anomaly detection with alerts at reasonable thresholds for your current spend level. An alert at 20% above baseline catches runaway costs (a stuck infinite loop making API calls, an accidentally left-on load test) before they compound into a large bill.

For MENA SaaS teams, a monthly cost review is the minimum cadence. Monthly reviews catch configuration drift, orphaned resources (EBS volumes from terminated instances, unused Elastic IPs, forgotten RDS snapshots), and gradual baseline increases before they become budget events.

Compute optimization: the highest leverage changes

Fargate Spot for background workers. Background processing tasks (email sending, PDF generation, data sync, report aggregation) are good candidates for Fargate Spot because they can be interrupted and retried. Fargate Spot prices tasks at roughly 70% discount. For a worker fleet running 10 tasks at 0.25 vCPU, switching from regular to Spot reduces that cost from roughly $23 to $7 per month.

Scheduled scaling for MENA traffic patterns. Lebanese and Gulf B2B SaaS products typically have concentrated active hours (9am to 11pm local time, with most activity between 10am and 6pm). Scaling down to minimum task count during the 8pm to 8am window and scaling up before business hours reduces compute costs by 25 to 40% without impacting user-facing performance.

Right-sizing based on observed metrics. The correct task size for a Go or Node.js API server at early scale is almost always smaller than the developer's initial estimate. A Go API handling 100 concurrent requests uses 30 to 80 MB of RAM under typical load. A 512 MB Fargate task allocation has substantial headroom. Pull 30 days of CloudWatch memory and CPU utilization metrics, identify the p95 usage, and downsize any task running consistently below 50% utilization.

Database cost reduction

Eliminate Multi-AZ where it is not justified. Multi-AZ doubles the instance cost in exchange for automatic failover with sub-minute RTO. For a startup where a 5-minute database restart is acceptable during an incident, single-AZ with automated backups provides sufficient resilience at half the cost. Consider Multi-AZ only when your SLA to customers explicitly requires it.

Use Aurora Serverless v2 for variable workloads. For a SaaS product with highly variable traffic (a restaurant system that is idle during the day and busy at dinner service), Aurora Serverless v2 scales down to minimum ACUs during idle periods. The minimum ACU setting of 0.5 ACU costs roughly $0.072 per hour, compared to a fixed db.t3.medium at approximately $0.082 per hour for 24 hours. If your database is idle for 16 hours per day, Serverless v2 at minimum capacity is significantly cheaper.

Connection pooling prevents RDS over-provisioning. Many teams provision larger RDS instance classes to support more simultaneous connections rather than addressing the root cause. PgBouncer in transaction mode allows hundreds of application connections to share a small pool of real database connections. Adding PgBouncer often allows downgrading the RDS instance class by one step, which saves 30 to 50% on the database line item.

Replacing high-cost AWS services with Cloudflare equivalents

For certain workloads, Cloudflare services are substantially cheaper than AWS equivalents.

CloudFront vs Cloudflare CDN. Cloudflare's free tier and Pro plan ($20/month) cover the CDN needs of most early-stage SaaS products. CloudFront for equivalent coverage costs more, particularly for cache invalidation (which Cloudflare includes, while CloudFront charges per invalidation path after the first 1,000 monthly invalidations).

S3 + CloudFront vs R2. For file storage with frequent reads, R2's zero-egress pricing eliminates the egress cost that accumulates when CloudFront requests are served from S3 origin. At moderate scale (a few hundred GB stored, routine tenant access), the savings on egress alone offset R2's slightly lower storage costs.

AWS WAF vs Cloudflare WAF. Cloudflare's WAF is included in the Pro plan. AWS WAF charges per web ACL, per rule, and per million requests. For a SaaS product not yet requiring deep AWS-specific WAF rules, Cloudflare WAF at the Pro tier is meaningfully cheaper.

The cost reduction sequence that works

Do not try to optimize everything simultaneously. The changes with the highest cost-to-effort ratio, in priority order:

  1. Tag all resources and enable Cost Explorer (half-day effort, full visibility within 24 hours)
  2. Eliminate unnecessary NAT Gateway traffic with S3 and DynamoDB VPC Endpoints (2-hour effort, immediate cost reduction)
  3. Add scheduled scaling for off-peak hours (1-hour effort, 25-40% compute savings)
  4. Move background workers to Fargate Spot (2-hour effort, 70% worker compute savings)
  5. Right-size RDS to single-AZ in non-production environments (30-minute effort per environment)
  6. Audit and right-size task definitions based on CloudWatch metrics (4-hour effort, 20-40% compute savings)
  7. Evaluate R2 for file storage if egress is a material line item (1-2 day migration effort)

Key lessons from production

Visibility before optimization. Without resource tagging and Cost Explorer, you are guessing at where the money goes. The tagging step pays for itself immediately.

Scheduled scaling and Fargate Spot together can reduce compute costs by 50 to 70% for typical MENA B2B SaaS traffic patterns with no architectural changes.

NAT Gateway is almost always a larger line item than expected. Check it first before optimizing compute.

Multi-AZ RDS on development and staging environments is the most common expensive mistake. Eliminate it.

Free PDF Download

Enjoying this article?

Enter your email and get a clean, formatted PDF of this article - free, no spam.

Free. No spam. Unsubscribe any time.

Not sure where to start?

Voxire reviews and optimizes AWS infrastructure for SaaS teams in Lebanon and the MENA region, including cost audits, right-sizing analysis, and migration to cost-efficient alternatives. If your infrastructure bill is growing faster than your revenue, a one-day audit can identify the specific changes worth making.

https://voxire.com/get-a-quote/

Back to blog
Chat on WhatsApp