We are going to be using AWS Lambda, Amazon API Gateway, and a host of other AWS services to create our application. AWS Lambda is a compute service that lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. But working directly with AWS Lambda, API Gateway, and the other AWS services can be a bit cumbersome.

Since these services run on AWS, it can be tricky to test and debug them locally. And a big part of building serverless applications, is being able to define our infrastructure as code. This means that we want our infrastructure to be created programmatically. We don’t want to have to click through the AWS Console to create our infrastructure.

To solve these issues we created the SST.

SST makes it easy to build serverless applications by allowing developers to:

  1. Define their infrastructure using AWS CDK which we will cover in a later chapter.
  2. Test their applications live using Live Lambda Development
  3. Debugging with various IDEs
  4. Web based dashboard to manage your apps
  5. Deploy to multiple environments and regions
  6. Use higher-level constructs designed specifically for serverless apps
  7. Configure Lambda functions with JS and TS (using esbuild), Go, Python, C#, and F#

Before we start creating our application, let’s look at the infrastructure as code concept in a bit more detail.