Introduction to AWS microservices
AWS provides a set of web services that you can use to build and run your serverless applications. These web services are also called microservices. So, in this blog, I will give you a quick overview of different AWS services that form AWS as a Platform as a sevice.
What are AWS microservices
microservices are architectural components of the AWS cloud platform. These are the building blocks of any serverless application like AWS Lambda, AWS API gateway, AWS SNS, AWS SES, Dynamo DB and many more.
Let us take an example of AWS IoT Infrastructure mentioned in the figure below to get a basic understanding of these microservices. These services are fully managed and event-driven. So, here IoT device sends the data using MQTT protocol to AWS IoT core. AWS IoT core processes this data and creates events or IoT actions. each action triggers another microservice. Like there is an action to show the IoT device data on AWS IoT analytics or there is an action to store the data in Dynamo DB database.
Overview of AWS microservice
- Amazon API Gateway: API Gateway, as the name indicates, helps you create and publish APIs and it tightly integrates with AWS Lambda to let you create completely serverless APIs. Again, this is a fully managed service and you can use it to build RESTful APIs. These APIs can then be consumed by your web or mobile applications, allowing you to interact with different AWS services through your code running on Lambda. API Gateway can handle thousands of concurrent API calls.
- Dynamo DB: DynamoDB is highly-scalable high-performance NoSQL serverless database. DynamoDB can scale on-demand to support virtually unlimited concurrent read/write operations with response times in single-digit milliseconds. And then, you have DynamoDB Accelerator, which further can bring down the response times from milliseconds to microseconds. DynamoDB Accelerator (DAX) is a caching service that is provided by Amazon on top of the Amazon DynamoDB.
- Amazon S3: Amazon Simple Storage Service or S3 is a very simple and intuitive web service that you can use to store and access your data from anywhere on the web and with fine-grained access control. S3 also lets you build static websites that can interact with your Lambda code. So, you can really use S3 as a front end of your serverless applications.
- Amazon SNS: SNS or Simple Notification Service is a fully-managed notification service that allows you to publish notifications and any services or software components that subscribe to these notifications will receive the messages.
- Amazon SQS: SQS or Simple Queue Service. This is a very simple and intuitive messaging service. that you can use to send and receive messages at virtually any volume. SQS allows multiple publishers and consumers to read and write messages from the same queue, and it can retain this messages up to a certain pre-defined time period or until you explicitly delete the message.
- AWS Step Functions: AWS Step Functions is a service that helps you with this orchestration. AWS Step Functions let you build visual workflows to coordinate different Lambda functions to work together and form a larger serverless application.
- Amazon Kinesis: Amazon Kinesis is a platform for streaming data applications. If your application requires you to work with or analyze streaming data in real-time, you may want to use Amazon Kinesis.
- Amazon Athena: Amazon Athena is an interactive query service that you can use to query your data stored
- Amazon Cloudwatch logs: Cloudwatch These are logging and debugging tool provided by AWS.
- AWS Cognito: Then we have AWS Cognito, which is serverless user authentication and management service. It supports authentication of users for your application via username/passwords and also via Federated Identity or Open ID providers like Facebook, Google, Twitter, Amazon and so on.
- AWS CI/CD: AWS offers various tools for code integration and deployment. These tools are AWS Code Commit(your very own AWS code repository), AWS Code Build(build tool) and AWS Code Pipeline(automated deployment)
In the next Serverless blog, we will be Setting up AWS and Serverless framework, so stay tuned for more on Serverless topics.