A company has a workflow that sends video files from their on-premise system to AWS for transcoding. They
use EC2 worker instances that pull transcoding jobs from SQS. Why is SQS an appropriate service for this
scenario?
A.
SQS guarantees the order of the messages.
B.
SQS synchronously provides transcoding output.
C.
SQS checks the health of the worker instances.
D.
SQS helps to facilitate horizontal scaling of encoding tasks.
testlord gives answer D for this question
?!?!?!?
Imho the idea for SQS is to improve scalability.
Elastic Beanstalk is checking the health of EC2 instances, not sure if SQS does.
Therefore I vote for D.
D – 100%
d
Even it we are not sure, the process of elimination helps in this one
A – messages are out of order, not ordered
B – its a messaging system, not trancoding system
C – it does check help of external clients, its a pull system
D – only logical answer
Well played sir.
Answer: D
D
I choose C
The answer can’t be D bcoz of what JM said above. Please read the “Additional Checks” section.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html
B – I choose this option by a keyword “Horizontal Scaling”
that makes no sense haha
D -m rapid auto scaling with sqs
https://aws.amazon.com/blogs/aws/auto-scaling-with-sqs/
D
D is the only possible answer
A. SQS guarantees the order of the messages.
Not true, SQS does not guarantee the order of the messages at all. If your app requires messages be processed in a certain order, make sure your messages in the SQS queue have a sequence number on them.
B. SQS synchronously provides transcoding output.
Transcoding output would mean a piece of media (eg audio/video) that needs to be stored somewhere. Since media files are usually large binary data, this would probably be into S3 (and possibly metadata about the media file into DynamoDB, such as the S3 location, user/job that generated it, date/time it was transcoded, etc.) While S3 messages can accept binary data as a data type, you probably wouldn’t want to store a output media file as an SQS message because the maximum message size is 256KB, which would severely limit how large your transcoding output file could be. Also, the maximum retention time in an SQS queue is 14 days. In the unlikely case that you were willing to accept those limitations, you’d still be limited to a maximum of 120,000 messages in the queue, which would severely limit the amount of transcoding outputs you could store across those 14 days. This scenario just isn’t a good fit for an SQS queue. Drop your transcoding output files into S3, instead.
C. SQS checks the health of the worker instances.
SQS does not check the health of anything. If you’ve got a fleet of worker instances you want to monitor the health of, probably you’d want to have them in an auto-scaling group with a health check on the ASG to replace failed worker instances.
D. SQS helps to facilitate horizontal scaling of encoding tasks.
Yes, this is a great scenario for SQS. “Horizontal scaling” means you have multiple instances involved in the workload (encoding tasks in this case). You can drop messages indicating an encoding job needs to be performed into an SQS queue, immediately making the job notification message accessible to any number of encoding worker instances.
(Oops, typo on explanation for B being a wrong answer, “S3 messages can accept binary data as a data type” should have been “SQS messages can accept binary data as a data type”)
In a worker environment, It is Elastic Beanstalk which polls the Amazon Simple Queue Service (Amazon SQS) at least once every three minutes.
Answer is D
https://awsdocs.s3.amazonaws.com/SQS/latest/sqs-dg.pdf
Amazon SQS queues can deliver very high throughput (many thousands of messages per second). The key to achieving this throughput is to horizontally scale message producers and consumers. In addition, you can use the batching actions in the Amazon SQS API to send, receive, or delete up to 10 messages at a time. In conjunction with horizontal scaling, batching achieves a given throughput with fewer threads, connections, and requests than would be required by individual message requests. Because Amazon SQS charges by the request instead of by the message, batching can also substantially reduce costs.
I wanted to point out that SQS does provide FIFO ( first in first out now)
https://aws.amazon.com/about-aws/whats-new/2016/11/amazon-sqs-introduces-fifo-queues-with-exactly-once-processing-and-lower-prices-for-standard-queues/
So depending when you taking the exam, this is a serious thing to consider.
answer is D since you can autoscale your workers
How many from this website are wrong? Answer is D.