In short, I was able to move my side project — an Express.JS application — from AWS Elastic Beanstalk to Lambda+APIG. It took me less than a day and it resulted in a ~90% reduction of costs.

This could be beneficial for any non-mission critical application (or environment), and I believe that it could be a game-changer for side projects and small endeavors.

First of all, for full disclosure — the application in question is a side project and not subject to any service-level agreement or performance requirements. It is a web site called libhive. libhive scans the code in the npm registry and finds examples of packages using other packages. It is built in Node.JS with ExpressJS, and backed by DynamoDB.

libhive gets a modest 50–150 visits daily. A couple of months ago, after I decided not to pursue this project any longer, I still wanted to keep it alive — but to minimize the maintenance costs. The site was running on Elastic Beanstalk running 2 micro instances, which were on 24/7 for redundancy.

I was able to make a very quick transition to AWS Lambda and API Gateway. This was mostly due to aws-serverless-express by AWS labs, which fits ExpressJS apps to lambda almost effortlessly. Admittedly I do have some experience with Lambda and APIG, but setup did not take long, and it barely required any code changes. It took me less than a full day’s work.