You have a periodic Image analysis application that gets some files In Input analyzes them and tor each file
writes some data in output to a ten file the number of files in input per day is high and concentrated in a few
hours of the day.
Currently you have a server on EC2 with a large EBS volume that hosts the input data and the results it takes
almost 20 hours per day to complete the process
What services could be used to reduce the elaboration time and improve the availability of the solution?
A.
S3 to store I/O files. SQS to distribute elaboration commands to a group of hosts working in parallel. Auto
scaling to dynamically size the group of hosts depending on the length of the SQS queue
B.
EBS with Provisioned IOPS (PIOPS) to store I/O files. SNS to distribute elaboration commands to a group of
hosts working in parallel Auto Scaling to dynamically size the group of hosts depending on the number of SNS
notifications
C.
S3 to store I/O files, SNS to distribute evaporation commands to a group of hosts working in parallel. Auto
scaling to dynamically size the group of hosts depending on the number of SNS notifications
D.
EBS with Provisioned IOPS (PIOPS) to store I/O files SOS to distribute elaboration commands to a group of
hosts working in parallel Auto Scaling to dynamically size the group ot hosts depending on the length of the
SQS queue.
Explanation:
Hi, I would say A
– SNS can not “distribute evaporation commands”, it just sends notifications. Use SQS is the best way to go since you know for sure your command is done (at least ones).
– Since EBS can only be attached to one EC2 instance and we want to make use of a group of hosts: use S3 to store the files.
Any thoughts on this are welcome.
Thx, Frank
a
A is correct
A is correct
D
D
Image processing requires high IOPS. Hence it should be “D”
A and C both look better than either B or D at first glance, as they use S3 for the image storage, which handles the availability part of the requirements.
Between A and C, it looks like a choice between SQS and SNS. I personally would prefer SQS if you’re going to use a fleet of worker instances to do the work. If I was using SNS, I would use it to trigger a Lambda event to do the processing, and go serverless. And if I was going to go with Lambda/serverless, I wouldn’t even use SNS at all, I’d just use the file drop into S3 as the Lambda triggering event. So my first instinct would be to go with A because it uses SQS, and because SNS is unnecessary in the main scenario I’d consider going with SNS.
However, if you’re a very picky reader, A may be incorrect based on a technicality, depending on how you interpret the wording. It states that you would use “SQS to distribute commands”, which implies SQS is a push mechanism notifying the worker instances. SQS isn’t a push mechanism, it just holds the pieces of work, and the workers have to pull it out of the queue at their own discretion.
C is worded the other way around. It states that you would “SNS to distribute commands”, which is a push mechanism, a role which SNS can fulfill.
So, if you want to get that picky, you’d go with C. But that may be going a bit too far.
But if you are that picky of a reader, C is doing “evaporation” commands instead of elaboration commands. I imagine an architecture where all of the work evaporates would indeed be fastest, but it would be least effective.
Some of these questions remind me of the old-school obfuscated C coding contests where you had to write code to do something like say “Hello World” without the reader of the code being able to discern what you are up to.
D- Mostly because of anti-pattern in S3 – Storage white paper.
When not to use S3.
Rapidly changing data—Data that must be updated very frequently might be better served by a storage solution with lower read / write latencies, such as Amazon EBS volumes, Amazon RDS or other relational databases, or Amazon DynamoDB.
A is the right answer.
SNS doesn’t allow you to distribute tasks between group of hosts. It allows you sending notification but how do you decide which host will handle it?
Also PIOPS is good for performance but not for availability which this task is asking about.
There is no problem in using S3 as there is no frequently changing data, you process the file and write the result once and don’t change it later.
Hello Vladam,
Really appreciate your insightful response to the AWS Questions. Please can we communicate private via email. Just want to get some suggestions on helpful hints and materials for the AWS Solutions Architect Exam.
Thanks.
Hello,
Anybody has passed the exam lately? please advise if the exam questions are the same as this site?
D
D = correct.. There is a typo error in Answer D above which creates confusion its SQS not SOS
D. EBS with Provisioned IOPS (PIOPS) to store I/O files SQS to distribute elaboration
commands to a group of hosts working in parallel Auto Scaling to dynamically size the
group ot hosts depending on the length of the SQS queue.
Explanation: Explaination:
Amazon EBS allows you to create storage volumes and attach them to Amazon EC2 instances. Once attached, you can create a file system on top of these volumes, run a database, or use them in any other way you would use a block device. Amazon EBS volumes are placed in a specific Availability Zone, where they are automatically replicated to protect you from the failure of a single component.
Amazon EBS provides three volume types: General Purpose (SSD), Provisioned IOPS (SSD), and Magnetic. The three volume types differ in performance characteristics and cost, so you can choose the right storage performance and price for the needs of your applications. All EBS volume types offer the same durable snapshot capabilities and are designed for 99.999% availability.
and the reason for choosing D is..?
lol, you have not given the reason..your explanation is literature on what EBS is. I think it is D because the question is asking for reduction is “elaboration time” which is tied to performance and EBS PIOPS provides better performance than S3, hence I chose C over A.
feel the time is 20 hrs because of having it run just on one ec2 instance. With autoscaling, that should come down and using s3 should not be a bottleneck.
A seems more appropriate.
D:
Amazon EBS volumes are placed in a specific Availability Zone, where
they are automatically replicated to protect you from the failure of a single component. Amazon EBS
provides three volume types: General Purpose (SSD), Provisioned IOPS (SSD), and Magnetic. The three
volume types differ in performance characteristics and cost, so you can choose the right storage
performance and price for the needs of your applications.