Do you love provisioning servers, managing them, scaling them and what not?
There are higher chances of you saying no to my above question !!!
Now imagine, I tell you –
Hey, here is your magic wand that will free you up from all the server management tasks and let you enjoy what you love doing with a nice cup of coffee(I love tea more by the way 😛 )
Excited?
Alright, Presenting Serverless!!!
You may read my previous post on What is Serverless Computing and Why it’s Awesome !!!
Serverless Computing has taken the cloud computing world to storm. Big companies like Netflix, AirBnb and Coca-Cola are using serverless to cater their compute needs on demand.
This makes me think that, serverless is next big thing in computing world. In other words, it’s the future of cloud computing.
What do you think?
Do let me know in the comment box 🙂
Serverless Services on AWS
When it comes to serverless architecture, AWS has the most number of services available with them.
Let’s discuss them one by one and see how can you use them.
AWS S3
Simple Storage Service or S3 is the simple, easy to use and cost effective object storage provided by AWS. It lets you store and retrieve any type and amount of data from anywhere in the world.
You create buckets in S3 and can store unlimited amount of data in a bucket.
You can use S3 for various use cases such as-
- Static Website Hosting
- Backup and Storage
- Storage for Internet
- Data Archival
Get Started: AWS S3
Suggested Read:
- AWS S3 is Global or Region Specific?
- How to Create an S3 Bucket using CloudFormation
- This is Why S3 Bucket Names are Unique Globally
- AWS S3 Storage Classes- All you need to know
- Setup S3 bucket CORS Configuration using CloudFormation
- Create an S3 Bucket Policy using CloudFormation
- Automated Deployment of React App from CodeCommit to AWS S3
AWS Lambda
AWS lambda is the revolutionary serverless computing platform provided by Amazon. It provides you the capability to run code without provisioning or managing a server.(Exactly what you are looking for 😀 )
Provides pay as you go model. You only pay when your code is actually running and not for the idle time.
Runs in response to events such as a request to an API gateway endpoint or an image upload to S3 bucket etc.
Can be used for Back-end development for a serverless website or Real time data processing
Ideally it fits a lot of use cases
Lambda@Edge
AWS Lambda@Edge allows you to run Lambda functions at AWS Edge locations in response to Amazon CloudFront events to customize the response that CloudFront delivers.
It improves performance by running closer to your application users and reduces latency
You can use Lambda@Edge to change CloudFront request and response.
Get Started: AWS Lambda
Suggested Read:
API Gateway
API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale.
Can handle hundreds of thousands of API calls. It also provides Authentication and authorization out of the box.
In the time of micro services and serverless, together with AWS Lambda, it’s a perfect fit for API development for your serverlss workload
Get Started: API Gateway
Suggested Read:
DynamoDB
AWS DynamoDB is a fully managed fast and flexible NoSQL database. It provides single digit millisecond latency at any scale.
You store key value and document data in DynamoDB.
DynamoDB provides both provisioned and on demand capacity mode to optimize the cost
Again it’s perfect database candidate for a serverless application and now it even supports transactions
Get Started: AWS DynamoDB
Suggested Read:
AWS SQS
Amazon SQS or Simple Queue Service is a fully managed message queue Service provided by AWS.
In the world of micro services architecture, Amazon SQS helps you decouple your application components so that they can work and fail independently
- Frees you from managing your own message queuing system
- You can send, receive and store messages between components
- Increases the fault tolerance of your application.
- You can share sensitive data between components using encryption
- Scales efficiently as your application grows
- Provides Standard as well as FIFO queue
Get Started: AWS SQS
Suggested Read:
Kinesis
Amazon kinesis is fully managed scalable and durable real time data streaming service. It lets to collect, process and analyze data in real time.
For example you can collect real time data such as audio, video, application log or IoT sensor data using it and react on those data in real time.
Enables you to ingest buffer and process real time data
You can analyze those data to provide insight in minutes
Can handle any amount of data from thousands of sources and that too at really low latency
Get Started: AWS Kinesis
SNS
SNS or simple notification service is fully managed messaging/notification service. It provides publisher/subscriber based many to many communication.
Publishers send message to an SNS topic and all the subscriber to the topic gets the message.
It can be used for-
Sending Emails, SMS and push notifications to mobile devices
Pushing messages to application endpoints like Kinesis Data Firehose delivery streams, Amazon SQS queues, HTTP(S) endpoints, and Lambda functions
Get Started: AWS SNS
Fargate
Amazon Fargate is a technology that lets you run serverless containers on Elastic Container Service(ECS) or Elastic Kubernetes Service(EKS).
When using Fargate launch type, you don’t have to provision and manage your servers.
You can simply specify the resources like vCPU and memory and pay for those resources.
Get Started: AWS Fargate
Athena
Athena is a managed query service by AWS that allows you to analyze unstructured, semi-structured, and structured data stored in Amazon S3 using SQS queries.
If you know SQL, it becomes really easy to analyze large datasets stored in S3. All you need is to point your data in s3 and define the schema and Tada you can start querying your data 🙂
It supports multiple file formats such as CSV, JSON, ORC, Avro, and Parquet.
You can use Athena when you want to query data stored in S3
Get Started: AWS Athena
Step Functions
AWS Step Functions is a serverless orchestrator service by AWS that let’s you co-ordinate multiple AWS services like Lambda and others to help you quickly and efficiently develop business critical applications.
Basically it’s based on finite state machine and output of one step acts as input to other helping the workflow execute in order and as per exception.
It works perfect when your work includes predefined multiple steps. It co-ordinates the step well and provides error handling as well.
for example- you can use step functions to co-ordinate various steps of checkout for an e-commerce site.
You can checkout few more use-cases here.
Get Started: AWS Step Function
AppSync
AWS AppSync is a fully managed service which lets you develop GraphQL API quickly via the AWS CLI, console, Amplify CLI or CloudFormation.
It works by giving front-end developers the ability to query multiple databases, microservices, and APIs from a single GraphQL endpoint.
Does various heavy lifting like-
- Connecting to various data sources like DynamoDB , Lambda etc.
- Adds cache to improve performance
- Supports real time updates by subscription
- Client side data store to keep off-line clients in sync
Get Started: AWS App Sync
Event Bridge
Events are at the heart of communication when it comes to serverless applications.
Amazon EventBridge is a fully managed, serverless event bus that you can use to react to various event from-
- Internal AWS infrastructure events
- External SaaS provider events
- Custom events
- Let’s you easily create event driven architecture by connecting various event sources and routing it to a target like AWS Lambda or others.
Get Started: AWS EventBridge
Conclusion
That was my take on serverless services on AWS. I have got chance to work on almost all of them and I am pretty satisfied with the way they work.
To be honest, I love them all but being specific I really really love S3, DynamoDB and Lambda.
What’s your favorite by the way? Let’s blast the comment box with your comments. Trust me, I love reading them and they inspire me to write more. So please don’t wait and leave a comment for me.
This post was first published on CloudKatha. If you liked my work, please read more of it on CloudKatha.
Top comments (2)
Great list!
Thank you :)