Case Study of AWS SQS.
- Amazon SQS is a web service that gives you access to a message queue that can be used to store messages while waiting for a computer to process them.
- Amazon SQS is a distributed queue system that enables web service applications to quickly and reliably queue messages that one component in the application generates to be consumed by another component where a queue is a temporary repository for messages that are awaiting processing.
- With the help of SQS, you can send, store and receive messages between software components at any volume without losing messages.
- Using Amazon SQS , you can separate the components of an application so that they can run independently, easing message management between components.
- Any component of a distributed application can store the messages in the queue. Messages can contain up to 256 KB of text in any format such as json, xml, etc.
- Any component of an application can later retrieve the messages programmatically using the Amazon SQS API.
- The queue acts as a buffer between the component producing and saving data, and the component receives the data for processing. This means that the queue resolves issues that arise if the producer is producing work faster than the consumer can process it, or if the producer or consumer is only intermittently connected to the network.
If you got two EC2 instances which are pulling the SQS Queue. You can configure the autoscaling group if a number of messages go over a certain limit. Suppose the number of messages exceeds 10, then you can add additional EC2 instance to process the job faster. In this way, SQS provides elasticity.
Benefits of Using SQS
- Eliminates administrative overhead :- SQS is fully managed service provided by aws in which no role of administrator came in play again and again. This is possible because once you create the queue, behind the scene aws managed all the backend services need to keep uptime and high availability of this service.
- Reliable delivery messages :- SQS can deliver the message of any volume with maximum throughput, without losing messages or requiring other services to be available.
- Keep sensitive data secure :- You can use SQS provided by AWS to exchange sensitive data between applications using server-side encryption (SSE) to encrypt each message body. It also has the facility to integrate with aws key management (KMS) allows you to centrally manage the keys that protect SQS messages.
- Scale elastically and cost-effectively :- It provides no limit on the number of messages per queue so if the messages are more then it scale-out automatically and scale-in. This whole process is managed by the AWS engineers.
Some Of Industry Use Case
1 ) REDBUS
RedBus is an Indian travel agency that is specialized in providing the traveling bus ticket service all across the country. The company previously uses the traditional data center by purchasing and renting its system and infrastructure.
The biggest problem was that its data center can’t handle the request which gave the bad impact to the company.
After doing lots of testing on small applications for several months the company realizes that AWS is a reliable and more better solution to switch on its infrastructure and services.
The company uses many of the AWS services like Amazon Elastic Cloud Computing, Elastic Load Balancer, Amazon Relational Database Service, Amazon Simple Storage Service, Amazon Elastic Block Store and Amazon CloudWatch.
redBus also use the Amazon Simple Notification Service and Amazon Simple Queue Service for monitoring, alerts, and intercommunication.
The BMW Group is using AWS for its new BMW 7 series cars to give drivers dynamically updated map information. BMW built its new car-as-a-sensor (CARASSO) service in only six months using Amazon Simple Storage Service ( Amazon S3 ) , Amazon Simple Queue Service (Amazon SQS), Amazon DynamoDB, Amazon Relational Database Service (Amazon RDS ) and AWS Elastic Beanstalk.BMW uses SQS for decoupling Receiver and Worker. The receiver keeps on adding messages to the SQS and Worker continuously polls the data and processes it and stores this data into the RDS database and MApData.