| Uses EC2 instances |
Uses AWS Lambda and API Gateway |
Uses S3, AWS Lambda and API Gateway |
| Can run in local environment |
Cannot run in local environment |
Can run in local environment |
Cannot run in local environment |
Can run in local environment |
| Cheapest config: Free tier - t2.micro - 1 vCPU - 1 GB Memory - 8 GB EBS |
Cheapest config: 128 MB Memory |
| Based on Servers installed in EC2. For Eg: Python Flask or Node |
Serverless. Based on lambda functions and layers |
Serverless. Based on lambda functions and layers. Uses Chalice micro framework |
Serverless. Based on lambda functions and layers. Uses Serverless framework |
Serverless. Based on lambda functions and layers. Uses Zappa micro framework |
| Supports Python, Nodejs, etc |
Supports Python |
Supports Python, Nodejs, etc |
Supports Python |
| Supports Flask and Flask-Restful |
No support for Flask |
Flask like routing |
No support for Flask. |
Supports Flask. Seems not supporting Flask-Restful |
| Flask file structure |
No specific file structure |
Multi file structure using blueprints |
Single file structure |
| 1 EC2 + 1 Code Pipeline |
1 Lambda Function + 1 Code Pipeline |
1 Lambda Function |
1 Lambda Function for each route |
1 Lambda Function |
| t2.micro: 1GB |
Default Memory: 128MB |
Default Memory: 128MB |
Default Memory: 1024MB |
Default Memory: 512MB |
| Dependency added using pip and build scripts |
Dependency added using pip and lambda layers |
Dependency added using requirements.txt and lambda layers |
Dependency added using yml |
Dependency added using virtual env |
| Available when EC2 is on |
24x7 |
Dynamic IP or URL. Static IP is billed. |
No dynamic IP or URL. Free Static URL. |
750 EC2 hours/month free. 30 GB EBS free. |
1 Million request/month free. 3.2 Million exec seconds/month free. |
| Free tier for 1 year. |
Lambda: Free tier for ever. API Gateway: Free tier for 1 year. |
| Suitable for complex REST based Web Services and Web Apps. |
Suitable for simple web services and static Web Apps. Best for demo or hobby use. Not suitable for apis with low level dependencies. |
| No limitation on api execution time |
Lambda time limit: 15 minutes API Gateway time limit: 30 seconds |
| Runs over http |
Runs over https |
| Restful APIs. Flask routing. |
Functions mapped as APIs |
Restful APIs. Flask like routing. |
Restful APIs. Routing in yml |
Restful APIs. Flask routing |
| Trivial stand alone APIs are not recommened. |
Advanced or complex or low level implementations are not recommended. |