Amazon Web Services (AWS) provides resources that can take the place of a traditional webserver. A huge advantage to this approach is removing the need for the developer to maintain servers, and to allow for easy scaling depending upon use.
In my project, I want to set up mobile app that will use AWS as a backend. I plan on using the following services:
- Lambda – allows you to run arbitrary code without setting up a server
- Relational Database Service (RDS) – hosted database. I will be using postgresql
- Step Functions – Connect services together using visual workflows
- API Gateway – Create API endpoints to allow your backend to be used outside of AWS
Other technology I will be using
- Node.js – I am new to JavaScript and want to learn more about it
- PostgreSQL
- Bookshelf.js/Knex – I want a well supported ORM that supports PostgreSQL. Bookshelf.js seems robust and since it is built on top of Knex, I can always fall back to Knex for unsupported functionality.
- node-lambda – Make it easier to manage AWS Lambda deployment
Here is an outline of my steps
- Set up PostgreSQL and Bookshelf.js
- Set up hosted database using RDS
- Create simple lambda that reads from RDS
- Integrate API Gateway with Lambda
- Connect 2 Lambdas together with Step Functions
- Integrate API Gateway with Step Functions