Cloud Platforms: VPS, AWS, Apify, Zyte Cloud, Hostinger VPS
Where to actually run your scrapers, from a $5 VPS to managed scraping platforms. Cost, control, and the tradeoffs honestly compared.
What you’ll learn
- Compare the four main platform categories for scrapers.
- Pick a platform for a given budget and team capability.
- Avoid the common over-spend pitfalls.
You have a working scraper. Where does it run? Wrong answer: the same place as your blog. Right answer: depends on scale, team, and how much "managed scraping" you want to pay for.
This lesson honestly compares the four categories, with rough cost ranges. Numbers shift quarterly; treat them as orientation.
The four categories
| Category | Examples | You manage | They manage |
|---|---|---|---|
| Cheap VPS | Hostinger, Hetzner, Contabo, Vultr | Everything | Network, hypervisor |
| Big-three cloud | AWS, GCP, Azure | OS up | Hardware, network, region |
| Managed scraping platforms | Apify, Zyte Cloud, ScrapingBee, ScraperAPI | Just write the spider | Hosts, proxies, anti-bot |
| Serverless | AWS Lambda, GCP Cloud Run, Vercel functions | Code only | Everything below |
Lesson 68 dives into serverless specifically. Here we focus on the first three.
Cheap VPS, the underrated option
A 2-vCPU / 4GB VPS at Hetzner or Hostinger runs ~5–15 USD/month. Capabilities:
- Run a Postgres + Redis + scraper container stack via docker-compose.
- Comfortably handle 10–50 req/s with a residential proxy pool.
- Suit a single-person operation, side project, or early SaaS.
What you'll do yourself: OS patching, backups, monitoring, scaling (vertical only, bigger VPS).
Hostinger VPS has a nice middle: cheaper than Hetzner, more polished panel than Contabo, predictable pricing. Suparn runs personal projects (suparnpatra.com, scrapingcentral.com) on Hostinger.
When to outgrow: when one VPS isn't enough capacity, when you need geo-distributed exit IPs, when you need real HA.
Big-three cloud (AWS / GCP / Azure)
Expensive per equivalent compute (~3–5x VPS), but you get:
- Spot / preemptible instances at 60–80% discount (great for batch scrapes).
- Managed Postgres (RDS), Redis (ElastiCache), MongoDB (DocumentDB), Kubernetes (EKS/GKE/AKS).
- Regions worldwide for geo-targeted egress.
- A long list of services (Lambda, S3, SQS) you can compose.
A typical small-scraper AWS bill:
| Service | Cost/month (USD) |
|---|---|
| t4g.small EC2 (2vCPU/2GB) | ~10 |
| RDS Postgres (db.t4g.micro) | ~15 |
| 100GB S3 + traffic | ~5 |
| Data egress (50GB/mo) | ~5 |
| Total | ~35 |
You can do the same on Hetzner for $10. The premium buys managed services, scalability, region diversity, and HR conversations ("we run on AWS").
Watch out for:
- NAT Gateway ($30+/mo just for existing). If your scraper is in a private subnet, this is a tax.
- Cross-region egress is shockingly expensive.
- Data egress to internet at $0.09/GB after the first GB. A heavy scraper can rack up unexpected bills.
Managed scraping platforms, Apify, Zyte, ScrapingBee
These platforms run your scraper for you, often handling proxies and anti-bot. Pricing models vary:
- Apify: "actor" runs billed by compute units; built-in proxies; marketplace of prebuilt scrapers. Free tier modest, then ~$49+/mo for production work.
- Zyte Cloud (formerly Scrapinghub): Scrapy-native hosting. Subscription + per-request charges. Has Smart Proxy Manager and AI-based parser.
- ScrapingBee / ScraperAPI / Bright Data: API-style, you send a URL, they return rendered HTML with proxies handled. ~$0.50–2 per 1000 requests depending on features.
When they make sense:
- Spider development is your moat; ops is not.
- You want anti-bot handled (CAPTCHA solving, fingerprinting) without building it.
- Burst workloads where keeping infra idle is wasteful.
When they don't:
- Steady high volume, DIY infra dramatically cheaper at scale.
- You need bespoke parsing/storage pipelines tightly coupled.
- You don't want vendor lock-in.
A common stack: managed proxies (Bright Data, Oxylabs) on your own infra. Get pro proxies without surrendering the entire platform.
Cost-per-1000-requests rough ranges (2026 ballpark)
| Setup | Cost per 1k requests |
|---|---|
| Self-hosted on Hetzner with datacenter proxies | $0.05–0.20 |
| Self-hosted with residential proxies | $0.50–3.00 |
| AWS-hosted with own proxies | $0.30–1.00 |
| ScrapingBee / ScraperAPI (rendered) | $0.50–2.00 |
| Bright Data Web Unlocker | $1.00–5.00 |
| Apify (prebuilt actors) | varies, often $0.30–2.00 |
The price varies by request difficulty (anti-bot intensity, JS render). Always price for your actual mix, not the marketing landing page.
Decision shortcuts
- Solo operator, side project: Hetzner / Hostinger VPS + Bright Data or Smartproxy if you need residential.
- Small SaaS scraping: Hetzner cluster or AWS EKS with managed proxies; build anti-bot in-house as you grow.
- Need to ship now, no ops team: Apify or Zyte. Pay the markup for time-to-market.
- Enterprise scale: Mix, your own infra for steady volume, managed APIs for hard targets.
Geographic targeting
If targets serve different content per country, you need exit IPs in those countries. Options:
- Multi-region VMs: Hetzner has DE/FI/US; AWS has 30+. Run scraper instances per region.
- Residential proxy with country selection: Bright Data, Oxylabs, Smartproxy all let you pick country.
- Cheap VPS in target country: Often the cheapest geo-targeting, one $4/mo VPS per country.
Lock-in considerations
Managed scraping platforms often have proprietary SDKs. Apify's actor model is portable to a degree, but Zyte's Smart Proxy Manager configurations don't move. Plain Scrapy + your own deployment is the most portable.
Big-three cloud services lock you in via egress costs and proprietary services (SQS, CloudWatch). Stick to Kubernetes + Postgres + S3-compatible storage and you're 80% portable across providers.
What to try
Price your own scraper across three options:
- Hetzner VPS + Smartproxy residential.
- AWS EC2 + Bright Data.
- ScrapingBee API only.
Estimate $/month for your actual volume. The cost difference is often a factor of 5–20, and the "right" choice is highly workload-dependent, there's no universal best.
Quiz, check your understanding
Pass mark is 70%. Pick the best answer; you’ll see the explanation right after.