What is serverless?
Serverless is the native architecture of the cloud that enables you to shift more of your operational responsibilities to AWS, increasing your agility and innovation. Serverless allows you to build and run applications and services without thinking about servers. It eliminates infrastructure management tasks such as server or cluster provisioning, patching, operating system maintenance, and capacity provisioning. You can build them for nearly any type of application or backend service, and everything required to run and scale your application with high availability is handled for you.
Why use serverless?
Serverless enables you to build modern applications with increased agility and lower total cost of ownership. Building serverless applications means that your developers can focus on their core product instead of worrying about managing and operating servers or runtimes, either in the cloud or on-premises. This reduced overhead lets developers reclaim time and energy that can be spent on developing great products which scale and that are reliable.
What are the benefits of serverless?
Serverless has four main benefits:
NO SERVER MANAGEMENT
Pay for value
AUTOMATED HIGH AVAILABILITY
There is no need to provision or maintain any servers. There is no software or runtime to install, maintain, or administer.
Your application can be scaled automatically or by adjusting its capacity through toggling the units of consumption (e.g. throughput, memory) rather than units of individual servers.
Pay for consistent throughput or execution duration rather than by server unit.
Serverless provides built-in availability and fault tolerance. You don't need to architect for these capabilities since the services running the application provide them by default.
The Coca-Cola Company, an American multinational beverage corporation, used AWS Lambda and AWS Step Functions to build a cost-effective serverless solution.
FINRA oversees securities broker-dealers in the United States, including analyzing up to 75 billion market events daily to identify fraud and insider trading.
iRobot, a leading global consumer robot company, uses AWS Lambda and AWS IoT to run web applications that connect to new WiFi-connected Roomba vacuums.
Autodesk uses AWS Lambda to automate IT operations, minimizing the time and cost required for infrastructure management.
Capabilities of the AWS Serverless Platform
Delivering a production serverless application that can run at scale demands a platform with a broad set of capabilities. Here’s how AWS supports enterprise-grade serverless applications:
CLOUD LOGIC LAYER
Power your business logic with AWS Lambda, which can act as the control plane and logic layer for all your interconnected infrastructure resources and web APIs. Define, orchestrate, and run production-grade containerized applications and microservices without needing to manage any infrastructure using AWS Fargate.
ORCHESTRATION & STATE MANAGEMENT
Coordinate and manage the state of each distributed component or microservice of your serverless application using AWS Step Functions.
RESPONSIVE DATA SOURCES
Choose from a broad set of data sources and providers that you can use to process data or trigger events in real-time. See our documentation for a list of responsive data sources.
APPLICATION MODELING FRAMEWORK
APPLICATION & INTEGRATIONS LIBRARY
Use the AWS Serverless Application Repository to quickly discover and deploy serverless applications and application components for a variety of use cases, including web and mobile back-ends, chatbots, IoT, Alexa Skills, data processing, stream processing, and more. You can also find integrations with popular third-party services (e.g., Slack, Algorithmia, Twilio, Loggly, Splunk, Sumo Logic, Box, etc).
SECURITY & ACCESS CONTROL
Enforce compliance and secure your entire IT environment with logging, change tracking, access controls, and encryption. Securely control access to your AWS resources with AWS Identity and Access Management (IAM). Manage and authenticate end users of your serverless applications with Amazon Cognito. Use Amazon Virtual Private Cloud (VPC) to create private virtual networks which only you can access.
RELIABILITY & PERFORMANCE
AWS provides highly available, scalable, low-cost services that deliver performance for enterprise scale. AWS Lambda reliably executes your business logic with built-in features such as dead letter queues and automatic retries. See our customer stories to learn how companies are using AWS to run their applications.
The AWS Serverless Platform
AWS provides a set of fully managed services that you can use to build and run serverless applications. Serverless applications don’t require provisioning, maintaining, and administering servers for backend components such as compute, databases, storage, stream processing, message queueing, and more. You also no longer need to worry about ensuring application fault tolerance and availability. Instead, AWS handles all of these capabilities for you. This allows you to focus on product innovation while enjoying faster time-to-market.
AWS Lambda 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.
Lambda@Edge allows you to run Lambda functions at AWS Edge locations in response to Amazon CloudFront events.
AWS Fargate is a purpose-built serverless compute engine for containers. Fargate scales and manages the infrastructure required to run your containers.
Amazon Simple Storage Service (Amazon S3) provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web service interface to store and retrieve any amount of data from anywhere on the web.
Amazon Elastic File System (Amazon EFS) provides simple, scalable, elastic file storage. It is built to elastically scale on demand, growing and shrinking automatically as you add and remove files.
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale.
Amazon Aurora Serverless is an on-demand, auto-scaling configuration for Amazon Aurora (MySQL-compatible edition), where the database will automatically start up, shut down, and scale capacity up or down based on your application's needs.
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. Amazon API Gateway allows you to process hundreds of thousands of concurrent API calls and handles traffic management, authorization and access control, monitoring, and API version management.
Amazon SNS is a fully managed pub/sub messaging service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
Amazon SQS is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. Step Functions is a reliable way to coordinate components and step through the functions of your application.
Amazon Kinesis is a platform for streaming data on AWS, offering powerful services to make it easy to load and analyze streaming data, and also providing the ability for you to build custom streaming data applications for specialized needs.
Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run.
AWS provides tools and services that aid developers in the serverless application development process. AWS and its partner ecosystem offer tools for continuous integration and delivery, testing, deployments, monitoring and diagnostics, SDKs, frameworks, and integrated development environment (IDE) plugins.
Serverless Application Use Cases
Build virtually any type of application or backend service using a serverless architecture. Below are a couple of use cases:
Web applications and backends
You can build serverless web applications and backends using AWS Lambda, Amazon API Gateway, Amazon S3, and Amazon DynamoDB to handle web, mobile, Internet of Things (IoT), and chatbot requests.
Example: Weather Application
Reference Architecture: Sample code
Example: Mobile Backend for Social Media App
Reference Architecture: Sample code
Bustle runs a serverless backend for its Bustle iOS app and websites using AWS Lambda and Amazon API Gateway. Serverless architectures allow Bustle to never have to deal with infrastructure management, so every engineer can focus on building out new features and innovating. Read the case study »
You can build a variety of real-time data processing systems using AWS Lambda, Amazon Kinesis, Amazon S3, and Amazon DynamoDB.
Example: Image Thumbnail Creation
Reference architecture: Sample Code
Square Enix uses AWS Lambda to run image processing for its massively multiplayer online game. With Lambda, it was able to reliably handle spikes of up to 30 times normal traffic. It also lowered the time required for image processing from several hours to just over 10 seconds, and it reduced infrastructure and operational costs. Read the case study »
Example: Analysis of Streaming Social Media Data
Reference architecture: Sample code
Thomson Reuters uses a serverless architecture to process up to 4,000 events per second for its usage analytics service. The service reliably handles spikes of twice its normal traffic and has high durability. The company deployed the service into production in only five months using AWS. Read the case study »