Oct 19, 2025 5 min read

AWS API Gateway: A Practical, Step-by-Step Guide

AWS API Gateway: A Practical, Step-by-Step Guide

πŸ”— What Is API Gateway?

AWS API Gateway is the entry point for your backend APIs. It securely connects your frontend apps (web/mobile) to AWS Lambda, EC2, ECS, or on-premise systems. Think of it as a "front door" that controls who can enter, how fast, and where they go.

API Types

Type Description Best For
HTTP API Modern, cheaper, faster CRUD / serverless APIs
REST API Full-featured (usage plans, caching) Complex, enterprise APIs
WebSocket API Real-time, 2-way communication Chat apps, live dashboards

πŸ”§ Step 1: Create Your First API (Console)

  1. Go to API Gateway β†’ Create API β†’ HTTP API.
  2. Choose Build.
  3. Add an Integration (e.g., AWS Lambda or HTTP backend).
  4. Create routes like:

  5. GET /notes

  6. POST /notes
  7. Create a Deployment and Stage (e.g., dev).
  8. Copy your Invoke URL and test in Postman.

Example: https://abc123.execute-api.us-east-1.amazonaws.com/notes

πŸ“¦ Step 2: Routes and Integrations

A route defines what happens when someone calls /notes.

Example:

Console Steps:

  1. Go to Routes β†’ Create.
  2. Enter /notes and choose method GET.
  3. Choose Integration: Lambda β†’ notes_get.
  4. Deploy to stage dev.

🚢 Step 3: Stages & Variables

Stages represent environments like dev, test, prod.

Example:

You can add Stage Variables, e.g.:

⏱️ Step 4: Throttling (Rate & Burst)

Control request limits to protect your backend.

Example:

Console Steps:

  1. Stages β†’ dev β†’ Throttling.
  2. Set Rate and Burst limits.
  3. Save.

If clients exceed limits, API Gateway returns 429 Too Many Requests.

🌐 Step 5: Enable CORS

Without CORS, browsers will block frontend requests from different domains.

Example: Your frontend at https://imjoy.me calls your API at https://api.imjoy.me.

Console Steps:

  1. In API Gateway, go to CORS settings.
  2. Allowed origins: https://imjoy.me
  3. Allowed methods: GET, POST, DELETE
  4. Allowed headers: Content-Type, Authorization
  5. Save and redeploy.

πŸ“˜ Diagram: CORS Flow

+------------+        +------------------+        +-------------------+
|  Browser   | -----> |  API Gateway     | -----> |  Lambda Backend   |
| (Frontend) | <----- | (CORS Response)  | <----- | (Business Logic)  |
+------------+        +------------------+        +-------------------+

When the browser sends a preflight OPTIONS request, API Gateway replies with headers like:

Access-Control-Allow-Origin: https://imjoy.me
Access-Control-Allow-Methods: GET,POST,DELETE
Access-Control-Allow-Headers: Content-Type,Authorization

πŸ” Step 6: Authorization

Secure your API using AWS Cognito or Lambda authorizers.

Options:

Console Steps:

  1. Authorizers β†’ Create.
  2. Choose Cognito User Pool.
  3. Token source: Authorization header.
  4. Attach to route (e.g., GET /notes).
  5. Redeploy.

Example JWT Header

Authorization: Bearer eyJraWQiOiJ...<token>...

πŸ“˜ Diagram: Auth Flow

+-----------+       +---------------+       +-------------+       +-------------+
|  User     | --->  | Cognito Login | --->  | API Gateway | --->  | Lambda      |
| (Frontend)|       |  (JWT Token)  |       |  Authorizer |       |  Backend    |
+-----------+       +---------------+       +-------------+       +-------------+
  1. User logs in with Cognito and gets a JWT.
  2. Frontend sends request with JWT in Authorization header.
  3. API Gateway validates token before invoking Lambda.

πŸ”₯ Step 7: Custom Domain

Change default AWS URL to a friendly one.

Console Steps:

  1. Custom Domain Names β†’ Create.
  2. Enter: api.imjoy.me.
  3. Select TLS certificate from ACM.
  4. Add API mapping to your stage.
  5. Update DNS (Route 53) with an alias record to API Gateway domain.

Result: https://api.imjoy.me/notes

πŸ›  Step 8: VPC Link (Private Backend)

Connect API Gateway to private resources in a VPC (e.g., ALB, ECS, or EC2).

Console Steps:

  1. VPC Links β†’ Create.
  2. Select subnets in your private VPC.
  3. Integration β†’ Create: choose Private Resource via VPC Link.
  4. Attach to route (e.g., /internal).
  5. Redeploy.

πŸ“˜ Diagram: VPC Link

+------------+      +----------------+      +-------------------+
|  Internet  | ---> | API Gateway    | ---> |  ALB (Private)    |
|  Clients   |      | (VPC Link)     |      |  ECS / EC2 App    |
+------------+      +----------------+      +-------------------+

πŸ”„ Step 9: Export & Reimport APIs

Export (Console):

  1. Stages β†’ dev β†’ Export.
  2. Choose format: OpenAPI 3.
  3. Download JSON/YAML.

Reimport:

  1. Create API β†’ Import from OpenAPI.
  2. Upload file.
  3. Review and create.

πŸ“Š Step 10: Monitor Metrics & Logs

πŸ“… Pricing Snapshot

API Type Cost per 1M req Free Tier
HTTP API ~$1.00 1M / month
REST API ~$3.50 1M / month
WebSocket ~$1.00 1M messages

Data Transfer: ~$0.09/GB to internet.

Pro Tip: Create AWS Budgets to avoid surprise bills.

🎯 Summary Table

Feature Purpose Example Console Path
Routes Define endpoints GET /notes API β†’ Routes
Integrations Connect backend Lambda/HTTP API β†’ Integrations
CORS Allow frontend calls https://imjoy.me API β†’ CORS
Auth Secure access Cognito, JWT API β†’ Authorizers
Stages Versioning dev, prod API β†’ Deployments
VPC Link Private access ALB/ECS API β†’ VPC Links
Export/Reimport API migration OpenAPI spec API β†’ Stages β†’ Export

πŸ” Final Thoughts

AWS API Gateway may look overwhelming at first, but once you break it down into Routes, Integrations, Stages, CORS, and Auth, it becomes a powerful, low-cost serverless gateway for your apps.

Liked this? Get more in your inbox.

One short email when I publish. AWS, AI, and founder notes β€” no spam, unsubscribe in one click.

By JOY 7Β months, 2Β weeks ago

// Read next

How to Host Your Static Website on AWS S3 and CloudFront (Step-by-Step Guide)

# 🌍 Day 1 β€” Host a Static Website on AWS (S3 + CloudFront) When I started my …

AWS EventBridge Explained: The Ultimate Q&A Guide for Developers (with Real-Life Examples)

# 🧩 AWS EventBridge Explained: The Ultimate Q&A Guide for Developers (with Real-Life Examples) ## 🧠 1. What …

Building an AI Log Analyzer Using Hugging Face and FastAPI

# πŸš€ Building an AI Log Analyzer Using Hugging Face and FastAPI I’ve always been fascinated by the …