Serverless Application with AWS Lambda and API Gateway
AWS Serverless Architecture
Serverless most often refers to serverless applications. Serverless applications are ones that don’t require you to provision or manage any servers. You can focus on your core product and business logic instead of responsibilities like operating system (OS) access control, OS patching, provisioning, right-sizing, scaling, and availability. By building your application on a serverless platform, the platform manages these responsibilities for you. For service or platform to be considered serverless, it should provide the following capabilities:
• No server management — You don’t have to provision or maintain any servers. There is no software or runtime to install, maintain, or administer.
• Flexible scaling — You can scale your application automatically or by adjusting its capacity through toggling the units of consumption (for example, throughput, memory) rather than units of individual servers.
• High availability — Serverless applications have built-in availability and fault tolerance. You don’t need to architect for these capabilities because the services running the application provide them by default.
• No idle capacity — You don’t have to pay for idle capacity. There is no need to pre-provision or over-provision capacity for things like compute and storage. There is no charge when your code isn’t running.
The AWS Cloud provides many different services that can be components of a serverless application. These include capabilities for:
• Compute — AWS Lambda
• APIs — Amazon API Gateway
• Storage — Amazon Simple Storage Service (Amazon S3)
• Databases –Amazon DynamoDB
• Interprocess messaging — Amazon Simple Notification Service (Amazon SNS)
• Orchestration — AWS Step Functions and
• Amazon CloudWatch Events