Serverless Computing - It's more than Lambda
When I talk to folks about serverless computing on AWS they usually say, “oh ya, you mean Lambda right?”
Sure, Lambda is the grand-daddy of serverless computing, but the AWS platform has many other serverless technologies that you can leverage to build applications on AWS.
Before jumping into a few of the serverless options that are available to us, it’s important that we define what I mean when I say “serverless” computing. It’s pretty simple - I define serverless as any service where I don’t have to think about CPU, RAM, or Storage to use the service.
With that definition in mind here are a few of the services (outside of Lambda), you should consider if you’re building (or hosting) applications on the AWS platform.
Simple Storage Service (S3)
S3 has to be one of my favourite services, and I can’t tell you how many times it is overlooked by clients. Don’t make this mistake. Outside of it being a highly durable storage solution (11 9’s), it has some impressive features, including:
- Event Notifications: You can fire Lambda functions, or you can publish events to the Simple Notification Service (SNS) or Simple Queue Service (SQS).
- Static Website Hosting: Do you have a simple site? Depending on your requirements you may be able to host the entire site in an S3 bucket.
- Versioning: By enabling versioning you can keep multiple versions of the same object. Once enabled you can quickly, and easily retrieve deleted objects. Also, by using versioning, you’re able to replicate S3 buckets across multiple regions.
Simple Queue Service (SQS)
SQS is a fully managed, highly-durable message queuing service, using SQS in your solution allow you to build a ’loosely coupled’ solution. What does that mean? Quite simply it means that our applications should be able to survive the failure of one or more of their components. Another benefit of building a ’loosely coupled’ system is that they tend to scale more quickly.
If you’re interested in digging into SQS, check out how I use SQS for my hockey pool.
API Gateway
The AWS API Gateway is a fully managed service for building, deploying and maintaining APIs. By using the AWS Management Console, AWS CLI or by making API calls, you can very quickly create an API gateway to act as the public-facing component of your application.
Here are just a few of the features of the API gateway:
- Caching: The gateway has a built in cache, which means you can offload work from the backend infrastructure
- Elasticity: The API gateway scales (out and in) automatically to meet current demand. There’s no need for capacity planning.
- Lifecycle management: You can host multiple versions of your APIs on the gateway. You can easily switch between versions for testing purposes.
So there you have it, just a few of the serverless solutions that we can use to build our applications on the AWS platform. How are you going to use server less in your next application?
Another benefit to using serverless? In many cases, this solution will be more cost effective than standing up EC2 instances.
Make 2017 the year you remove as many operating systems as you can.
One last thing, this list is by no means intended to be complete. I’m just highlighting the most popular serverless solutions I discuss with my clients.