DEV Community

The Beyond Horizon
The Beyond Horizon

Posted on • Originally published at thebeyondhorizon.com

Serverless Architecture with AWS, Google Cloud, and Next.js

When to go serverless, how Lambda and Cloud Run compare, and how Next.js fits the serverless model — a practical 2025 guide

What is Serverless Architecture?
Serverless does not mean no servers — it means you do not manage them. You write functions. The cloud provider handles provisioning, scaling, patching, and monitoring the underlying infrastructure. You pay only for the compute time your code actually uses.

For web applications, serverless eliminates the most tedious parts of infrastructure management while automatically scaling from zero to millions of requests.

Serverless on AWS vs Google Cloud
AWS Lambda
The original serverless compute service, launched in 2014. Lambda supports Node.js, Python, Java, Go, and custom runtimes. Key characteristics:

Cold starts: 100–500ms for Node.js. Reduced with Provisioned Concurrency (keeps instances warm) or SnapStart (for Java).

Execution limit: 15 minutes maximum. Fine for API handlers, problematic for long-running data processing.

Integration: Deep integration with API Gateway, S3, DynamoDB, SQS, and EventBridge. Event-driven architectures are Lambda’s sweet spot.

Pricing: $0.20 per million requests + $0.0000166667 per GB-second of compute. The first million requests per month are free.

Google Cloud Functions / Cloud Run
Google offers two serverless compute options:

Cloud Functions: Similar to Lambda — event-driven functions triggered by HTTP requests, Pub/Sub messages, or Cloud Storage events. Best for simple, single-purpose functions.

Cloud Run: Runs any containerized application serverlessly. This is more flexible than Lambda — you deploy a Docker container, and Cloud Run scales it from zero to thousands of instances automatically. Next.js applications run perfectly on Cloud Run with the standalone output mode.

Cold starts: Cloud Run (100–300ms for Node.js containers). Minimum instances can eliminate cold starts entirely.
Execution limit: Cloud Run supports up to 60 minutes (configurable). Cloud Functions support up to 9 minutes.
Pricing: Cloud Run charges per 100ms of CPU time and per GiB-second of memory. The free tier includes 2 million requests per month.
When Serverless Makes Sense
API backends: REST or GraphQL APIs that handle HTTP requests. Each request is independent, stateless, and short-lived — perfect for serverless.

Write on Medium
Webhook handlers: Payment notifications from Razorpay, order events from Shopify, form submissions from your website. Webhooks arrive unpredictably — serverless scales to handle spikes without paying for idle capacity.

Scheduled tasks: Daily report generation, weekly email digests, hourly data synchronization. Use CloudWatch Events (AWS) or Cloud Scheduler (GCP) to trigger functions on a cron schedule.

Image and file processing: Thumbnail generation when a user uploads an image, PDF generation for invoices, CSV processing for data imports. Trigger a function from an S3 or Cloud Storage event.

When Serverless Does Not Make Sense
WebSocket connections: Serverless functions are request-response. Persistent connections need a dedicated server (or managed WebSocket service like AWS API Gateway WebSocket or Ably).

Long-running processes: Video encoding, ML model training, or batch data processing that takes more than 15 minutes. Use dedicated compute (EC2, Compute Engine) or batch services.

High-throughput, steady workloads: If your API handles 10,000 requests per second consistently (not in spikes), a dedicated container cluster is cheaper than serverless. Serverless pricing favors variable workloads.

Serverless with Next.js
Next.js is inherently serverless-friendly:

API routes: become individual serverless functions on Vercel

Server-side rendering: runs in serverless functions that scale automatically

Static pages: are served from CDN edge nodes — no compute required

Incremental Static Regeneration: revalidates pages in background serverless functions

On Vercel, this is zero-configuration. On AWS, you can deploy Next.js using SST (Serverless Stack) or AWS Amplify. On Google Cloud, Cloud Run is the simplest path.

Cost Optimization Tips
API routes: become individual serverless functions on Vercel

Server-side rendering: runs in serverless functions that scale automatically

Static pages: are served from CDN edge nodes — no compute required

Incremental Static Regeneration: revalidates pages in background serverless functions

Serverless is the right choice for most web application backends. Want to architect your serverless infrastructure? Talk to us.

Originally published at https://www.thebeyondhorizon.com on July 8, 2025.

Top comments (0)