An overview of Serverless services on AWS
- Due to constant digitalization many companies try to make a mark and opt for serverless applications and services.
-
The pain points serverless services help to solve:
- Scalability
- Costs spent on in-house data centers & servers
- Expenses on IT specialists to support & maintain in-house servers
-
Learn about the most popular AWS serverless services grouped according to their functions. Serverless services will make your application secure, scalable, reliable, and available globally.
Table of Contents
Table of Contents
1. Computing
AWS Lambda
What is AWS Lambda?
AWS Lambda is a serverless computing service that enables you to run code without the need to provision or manage servers. It allows you to focus solely on your code, automatically taking care of the underlying infrastructure, including server and OS maintenance, capacity provisioning, and automatic scaling.
Lambda features
Key features include automatic scaling based on the workload, support for multiple programming languages such as Python, Node.js, and Java, and seamless integration with other AWS services like S3 and DynamoDB. It also offers a pay-as-you-go pricing model, where you’re charged based on the number of requests and the duration your code executes.
How does it work?
AWS Lambda is event-driven, meaning it runs code in response to specific events like changes to data in an AWS S3 bucket or an update in a DynamoDB table. Once triggered, Lambda executes the function asynchronously, automatically scaling up or down as many copies of the function as needed to handle the rate of incoming events.
Typical use cases
- Real-time file processing
AWS Lambda’s event-driven architecture enables immediate processing of files as they are uploaded to an S3 bucket. This is particularly useful for applications that require quick data transformation or analysis, such as image resizing or log file analysis. - Data transformation
Lambda works seamlessly with DynamoDB to convert data into different formats or structures. This is essential for integrating disparate data sources, preparing data for analytics, or even for migrating data between systems. - Backend APIs
Lambda can host your API logic, providing a serverless way to manage API requests and responses. This eliminates the need for a traditional backend, offering automatic scaling and cost savings. It also integrates well with API Gateway for endpoint management. - IoT applications
AWS Lambda is frequently used in IoT applications to execute code in response to events like sensor data changes or device state updates. It allows for real-time data processing and can integrate with other AWS services for data storage, analytics, and security features.
AWS Fargate
What is AWS Fargate?
AWS Fargate is a serverless compute engine designed for containers. It eliminates the need to manage the server infrastructure, allowing you to focus on designing and building your applications.
Fargate features
Key features include a simplified workflow, automatic scaling, and deep integration with Amazon ECS and EKS. It also offers enhanced security features, including task-level IAM roles and VPC isolation.
How does it work?
With Fargate, you package your application in containers, specify the CPU and memory requirements, and launch the application. Fargate takes care of all the operational aspects like server and infrastructure management, maintenance, and scaling.
Typical use cases
- Deploying microservices
AWS Fargate allows you to run containerized microservices without the hassle of managing servers. It automates the deployment, scaling, and management of containers, making it easier to build microservices architectures. - Batch processing
AWS services like Fargate can execute multiple tasks in parallel, making it ideal for batch processing jobs. This is often used in scenarios like data ingestion, transformation, and batch analytics. - Backend services for APIs
Supporting functionalities for APIs, often managed through AWS Lambda or API Gateway. - Data processing tasks
AWS Fargate is often used for running data processing tasks in a serverless environment, eliminating the need to manage underlying infrastructure. It’s suitable for batch processing, real-time analytics, and ETL (Extract, Transform, Load) jobs, offering scalability and flexibility.
2. Databases
AWS DynamoDB
What is AWS DynamoDB?
AWS DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. It’s designed to handle large volumes of data and traffic, making it a go-to solution for big data applications.
DynamoDB features
Key features include automatic sharding to distribute data across multiple servers, built-in security with encryption at rest, and point-in-time recovery options. It also offers a flexible schema model, allowing you to add or remove attributes without affecting performance.
How does it work?
DynamoDB automatically partitions your data across multiple servers based on the hash key you provide. It scales up or down to meet your application’s demand, and you only pay for the read and write throughput you use.
Typical use cases
- Real-time analytics
DynamoDB, often facilitated by AWS CloudWatch, enables instant data analysis and monitoring. This is particularly useful for applications that require real-time insights for decision-making.
- Mobile and web applications
DynamoDB provides a robust backend for mobile and web applications, fully managed and scalable. It’s a go-to solution for developers who want to focus on application logic rather than database management.
- IoT data storage
DynamoDB is ideal for storing data from Internet of Things devices due to its scalability and performance. It can handle large volumes of data and is designed for high-velocity data streams. - Caching and session storage
DynamoDB is commonly used for session storage, allowing web applications to maintain stateful information across multiple servers. It’s also employed for caching to speed up data retrieval, reducing the load on primary databases.
Amazon Aurora
What is Amazon Aurora?
Amazon Aurora is a relational database service that’s part of the Amazon RDS family. It’s designed to be fully compatible with MySQL and PostgreSQL while offering up to five times the performance.
Aurora features
Key features include automatic backups to Amazon S3, seamless replication for enhanced availability, and automatic scaling. It also offers advanced security features, including encryption at rest and in transit.
How does it work?
Aurora automatically divides your database into 10GB segments and replicates it across multiple Availability Zones. This ensures high availability and fault tolerance. It also automatically scales up or down based on your application’s needs.
Typical use cases
- Enterprise-level applications
Aurora is suitable for large-scale applications requiring high performance and availability. It offers compatibility with MySQL and PostgreSQL, making it versatile for different database needs.
- Financial systems
Aurora provides a secure and reliable environment for managing and analyzing financial operations. It’s commonly used in banking and financial services for transaction processing and data analytics.
- SaaS applications
Aurora is commonly used in Software as a Service applications for its scalability and performance. It offers features like automatic backups and seamless replication, ensuring data integrity and availability.
3. Messaging
Amazon SNS
What is Amazon SNS?
Amazon Simple Notification Service (SNS) is a fully managed messaging service for both application-to-application and application-to-person communication.
SNS features
Key features include the ability to publish messages to multiple subscribers and endpoints, including email, SMS, and Lambda functions. It also offers message filtering and fan-out capabilities, allowing you to route messages to specific subscribers.
How does it work?
You can set up SNS topics and publish messages to these topics. Subscribers to these topics will receive the messages via the protocol they’ve chosen, such as email or SMS.
Typical use cases
- Event notification systems
SNS is perfect for systems that alert users to specific events or conditions. It can send notifications through various channels like email, SMS, or even trigger Lambda functions for custom workflows.
- Workflow systems
SNS can be used to manage and automate a sequence of tasks in a workflow. It’s often integrated with other AWS services to create comprehensive, automated solutions for business processes.
- Time-sensitive information updates
SNS is ideal for disseminating critical or timely data immediately. This is crucial in scenarios like emergency alerts or system failure notifications.
Amazon SQS
What is Amazon SQS?
Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables decoupling of the components of a cloud application.
SQS features
Key features include:
- Unlimited queuing
- Message retention policies
- The ability to handle a high throughput of messages
It also offers features like:
- Message timers
- Batch operations
- Dead-letter queues.
How does it work?
Messages are sent to a queue where they are stored until they are retrieved by a consumer or application. SQS ensures the messages are processed in the order they are received.
Typical use cases
- Order processing queues
SQS manages customer orders in a scalable manner, ensuring efficient and sequential processing. It’s a reliable solution for e-commerce platforms that experience variable order volumes.
- Data ingestion pipelines
SQS is used for collecting, processing, and storing data in a scalable way. It can handle high-throughput scenarios and ensures that data is processed in the order it’s received. - Background task queues
SQS manages tasks that run behind the scenes, like sending emails or generating reports. It ensures that these tasks are executed efficiently, without overloading the system resources.
4. Monitoring
AWS CloudWatch
What is AWS CloudWatch?
AWS CloudWatch is a comprehensive monitoring and observability service that provides actionable insights to monitor applications, respond to system-wide performance changes, and optimize resource utilization.
CloudWatch features
Key features include real-time monitoring of AWS resources, custom dashboards, and the ability to set high-resolution alarms. It also offers log storage and analysis, as well as automated actions based on triggers.
How does it work?
CloudWatch collects monitoring and operational data in the form of logs, metrics, and events. You can set up alarms and automated actions based on pre-defined thresholds or machine-learning algorithms that identify abnormal patterns.
Typical use cases
- Monitor application performance
Visualize performance data, create alarms, and correlate data to understand and resolve the root cause of performance issues in your AWS resources.
- Resource optimization
CloudWatch helps you understand how your resources are being utilized. You can set up custom dashboards to monitor key performance indicators, making it easier to identify underused resources and optimize costs.
Amazon QuickSight
What is Amazon QuickSight?
Amazon QuickSight is a business intelligence service that makes it easy to deliver insights to everyone in your organization. It allows you to create and publish interactive dashboards that can be accessed from any device.
QuickSight features
Key features include a serverless architecture, machine learning insights, and the ability to embed analytics into applications. It also offers a wide range of data connectors to various data sources, including AWS services and on-premises databases.
How does it work?
QuickSight pulls data from various sources, processes it, and then visualizes it in a way that’s easy to understand. You can create custom dashboards and reports that can be shared with others.
Typical use cases
- Business reporting
QuickSight enables the compilation and analysis of business metrics in real-time. It’s a powerful tool for executives and decision-makers who need immediate insights for strategic planning.
- Data analytics
QuickSight is used for examining large data sets to draw conclusions and make data-driven decisions. It can process data from various sources, including AWS services and on-premises databases, offering a comprehensive view of business operations. - Real-time dashboarding for monitoring KPIs
QuickSight allows for the instant visualization of key performance indicators. This is particularly useful for monitoring real-time metrics in sectors like e-commerce, where immediate data can drive quick decisions.
5. Service Integration
AWS Step Functions
What is AWS Step Functions?
AWS Step Functions is a serverless workflow service that lets you coordinate distributed applications using visual workflows.
Step Functions features
Key features include the ability to build, run, and visualize workflows that stitch together services like:
- AWS Lambda
- AWS Fargate
- Amazon SNS
It also offers built-in error handling and retry mechanisms.
How does it work?
Defined state machines in Step Functions using JSON-based Amazon States Language. These state machines coordinate the components of the distributed application.
Typical use cases
- Data processing pipelines
Step Functions can sequence data processing steps, making it ideal for ETL operations or data analytics workflows. It offers built-in error handling and retry mechanisms, ensuring data integrity and process reliability.
- Microservices orchestration
Step Functions coordinates how microservices interact with each other. This is crucial for complex applications that involve multiple, independent services needing to work in harmony.
- Automated workflows
Step Functions allows you to automate sequences of tasks in a visual workflow. This is often used in scenarios like automated approval processes or complex business logic implementations.
Amazon API Gateway
What is Amazon API Gateway?
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.
API Gateway features
Key features include support for RESTful and WebSocket APIs, automatic SDK generation, and built-in authentication and authorization.
How does it work?
API Gateway handles all the tasks associated with accepting and processing up to hundreds of thousands of concurrent API calls, including traffic management, authorization, and access control.
Typical use cases
Common scenarios include creating APIs that access AWS or other web services, as well as data stored in the AWS Cloud.
6. Security
Amazon Cognito
What is Amazon Cognito?
Amazon Cognito is a fully managed service designed to handle user identity and authentication in a scalable and secure way. It allows you to manage user identities and authentication in a unified way across multiple app types and platforms.
Cognito features
Key features include support for social identity providers like Facebook and Google, as well as enterprise identity providers through SAML. It also offers user directory management and data synchronization across devices.
How does it work?
Amazon Cognito operates through two main components: User Pools for user directory management and Identity Pools for AWS resource access. User Pools handle user registration and login, while Identity Pools provide temporary AWS credentials to access AWS services.
Typical use cases
- User authentication for mobile apps
Cognito verifies the identity of mobile app users, providing a secure and scalable solution for mobile application development. It supports social identity providers like Facebook and Google, making it easier to implement social sign-ins.
- Identity federation for enterprise applications
Cognito offers unified identity management across multiple systems, including enterprise identity providers through SAML. This is particularly useful for businesses that have a diverse set of applications and services requiring a centralized identity solution.
- Secure backend authentication for various services
Cognito ensures that only authorized users can access server-side resources. It’s a robust solution for applications that require secure user authentication and authorization, such as financial or healthcare apps.
AWS KMS
What is AWS KMS?
AWS Key Management Service (KMS) is a fully managed encryption service that simplifies the process of hosting and managing cryptographic keys, allowing you to more easily implement data encryption and secure data both in transit and at rest.
KMS features
Key features include centralized management of cryptographic keys, audit trails via AWS CloudTrail, and the ability to use the keys in cryptographic operations. It also supports automatic key rotation and offers a high level of durability and availability.
How does it work?
AWS KMS allows you to create, control, and rotate encryption keys used to secure data. You can define who can use these keys and who can administer them through policy-based controls.
Typical use cases
- Encrypting data stored in various AWS services
KMS allows you to secure data within Amazon Web Services by providing centralized management of cryptographic keys. This is essential for compliance with data protection regulations like GDPR or HIPAA.
- Managing keys for applications that use AWS SDKs
KMS is used for handling encryption keys in applications that use AWS SDKs. It provides a high level of security by allowing you to define who can use and administer these keys.
- Extending on-premises security controls to the cloud
KMS enables businesses to apply their local security measures to cloud services. This is crucial for hybrid cloud architectures where data may reside both on-premises and in the cloud.
7. Data Analytics
Amazon Kinesis
What is Amazon Kinesis
Amazon Kinesis is a real-time data streaming service that can collect and analyze large amounts of data in real-time. It’s ideal for applications that require real-time analytics and dashboarding.
Kinesis Data Streams
Kinesis Data Streams is a real-time data streaming service that allows you to collect and analyze large volumes of data in real-time. It’s ideal for applications that require real-time analytics and dashboarding.
Kinesis Video Streams
Kinesis Video Streams captures, processes, and stores video streams for analytics and machine learning. It can handle various video formats and integrates seamlessly with other AWS services.
Kinesis Data Firehose
Kinesis Data Firehose is designed to load data streams directly into AWS data stores like S3, Redshift, or Elasticsearch. It can also transform the data before loading, making it a powerful tool for ETL operations.
Amazon Kinesis Data Streams features
Key features include scalability, real-time processing, and durability. It also supports multiple data producers and consumers, making it versatile for various use-cases.
Amazon Kinesis Video Streams features
Features include secure video storage, real-time analytics, and compatibility with various video formats. It also supports machine learning algorithms for advanced analytics.
Amazon Kinesis Data Firehose features
Automatic scaling, data transformation capabilities, and support for various data destinations are some of its key features. It’s designed for ease of use and integrates with popular data lakes and analytics services.
How does it work?
Kinesis services work by capturing large streams of data records from various sources like IoT devices, user activity on websites, or financial transactions. This data is then available for real-time processing and analytics.
Typical use cases
- Creating real-time applications
Amazon Kinesis is ideal for applications that require real-time analytics and dashboarding. It can handle large volumes of data from various sources like IoT devices, making it a go-to solution for real-time data processing. - Switching from batch to real-time analytics
Kinesis allows organizations to transition from batch processing to real-time analytics. This is particularly useful for businesses that need to make quick decisions based on real-time data. - Analyzing IoT device data
Kinesis is commonly used for collecting and analyzing data from Internet of Things devices. This enables businesses to gain insights into device performance, user engagement, and other key metrics.
- Building video analytics apps that securely stream video from camera equipped devices.
Kinesis Video Streams can securely stream video from camera-equipped devices, making it suitable for applications that require real-time video analytics. This is often used in security monitoring, healthcare, and retail analytics.
What companies/apps use Amazon Kinesis:
- Wyze
- Nextdoor
- Zillow
AWS Glue
What is AWS Glue
AWS Glue is a fully managed extract, transform, and load (ETL) service that makes it easy to prepare and load data for analytics. It can discover, access, and transform data from various sources.
Glue Data Catalog
The Glue Data Catalog serves as a centralized metadata repository for all your data across AWS and other data stores. It integrates with:
- Amazon S3
- RDS
- Redshift
And others, making it easier to start your analytics projects.
Glue ETL
Glue ETL (Extract, Transform, Load) allows you to move data between data stores. It automatically generates Python or Scala code for data transformation, making it easier to prepare data for analytics.
AWS Glue DataBrew
DataBrew is a visual data preparation tool that allows you to clean and normalize data without writing any code. It’s particularly useful for data analysts and data scientists who are not familiar with coding.
AWS Glue features
Key features include serverless architecture, automatic schema discovery, and code generation for data transformation. It also supports a wide range of data sources and targets, making it versatile for various data integration scenarios.
How does it work?
AWS Glue crawls your data sources, identifies data formats, and suggests schemas and transformations. It then generates ETL code in Python or Scala to move, enrich, and transform the data from source to target.
Typical use cases:
- Data warehousing
AWS Glue is commonly used for centralized storage of large volumes of structured data. It’s optimized for query and analysis, making it a robust solution for business intelligence needs.
- Data lake analytics
Glue can analyze raw, structured, or unstructured data stored in a data lake. This is crucial for organizations that collect data from multiple sources and need a unified platform for analytics.
- Data preparation for machine learning
AWS Glue can clean and transform raw data into a format suitable for machine learning algorithms. This simplifies the data preparation process, allowing data scientists to focus on model training and evaluation.
It’s designed to simplify the process of making data ready for analytics, machine learning, or application development.
8. Machine Learning
AWS SageMaker
What is AWS SageMaker
AWS SageMaker is a fully managed machine learning service that enables you to build, train, and deploy machine learning models quickly. It provides a complete set of tools for data scientists and developers to experiment with and deploy models at scale.
SageMaker features
- Built-in algorithms
- Model training
- Easy deployment
It also offers a complete set of tools for data scientists and developers to experiment with and deploy models at scale.
How does it work?
SageMaker provides a complete machine learning workflow that includes:
- Data labeling
- Training
- Deployment
You can either use built-in algorithms or bring your own.
Typical use cases
- Predictive analytics
SageMaker is used for building models that can forecast future events or trends based on historical data. This is particularly useful in sectors like finance, healthcare, and retail where predictive insights can be game-changing.
- Natural language processing
SageMaker supports NLP algorithms that enable computers to understand and interpret human language. This is often used in customer service bots, sentiment analysis, and language translation services.
- Recommendation systems
SageMaker can build algorithms that suggest items or actions based on user behavior or preferences. This is commonly used in e-commerce platforms to personalize the user experience.
It’s designed to help organizations quickly build, train, and deploy machine learning models.
AWS Comprehend
What is AWS Comprehend
AWS Comprehend is a natural language processing (NLP) service that uses machine learning to find insights and relationships in text. It can be used for sentiment analysis, entity recognition, and language detection.
Comprehend features
- Sentiment analysis
- Entity recognition
- Language detection
It uses machine learning to find insights and relationships in text.
How does it work?
Comprehend uses machine learning models to analyze text. You can integrate it into your applications via API calls, making it easy to add advanced text analytics features.
Typical use cases
- Customer feedback analysis
Comprehend is used to analyze customer feedback from various channels like social media or customer reviews. This helps businesses understand customer sentiment and improve their products or services accordingly. - Social media monitoring
Comprehend can analyze large volumes of social media data to identify trends, public sentiment, and emerging issues. This is crucial for brand management and public relations strategies. - Content personalization
Comprehend can be used to personalize content based on user behavior and preferences. This is often used in news aggregators or e-commerce platforms to enhance user engagement and increase conversion rates.