Question 223:
You work for a company that automatically tags photographs using artificial neural networks (ANNs), which run on GPUs using C++. You receive many images at a time, but only 3 times per day on average. These images are loaded into an AWS S3 bucket you control in a batch, and then the customer publishes a JSON-formatted manifest into another S3 bucket you control as well. Each image takes 10 milliseconds to process using a full GPU. Your neural network software requires 5 minutes to bootstrap. Which of these is the best system architecture for this system?
Answer options:
A.Create an OpsWorks Stack with two Layers. The first contains lifecycle scripts for launching and bootstrapping an HTTP API on G2 instances for image processing. The second has an always-on instance that monitors the S3 manifest bucket for new files. When a new file is detected, request instances to boot on the artificial neural network layer. When the instances are booted and the HTTP APIs are up, submit processing requests to individual instances. B.Make an S3 notification configuration that publishes to AWS Lambda on the manifest bucket. Make the Lambda create a CloudFormation Stack which contains the logic to construct an autoscaling worker tier of EC2 G2 instances with the artificial neural network code on each instance. Create an SQS queue of the images in the manifest. Tear the stack down when the queue is empty. C.Deploy your artificial neural network code to AWS Lambda as a bundled binary for the C++ extension. Make an S3 notification configuration on the manifest, which publishes to another AWS Lambda running controller code. This controller code publishes all the images in the manifest to AWS Kinesis. Your ANN code Lambda Function uses the Kinesis as an Event Source. The system automatically scales when the stream contains image events. D.Create an Auto Scaling, Load Balanced Elastic Beanstalk worker tier Application and Environment. Deploy the artificial neural network code to G2 instances in this tier. Set the desired capacity to 1. Make the code periodically check S3 for new manifests. When a new manifest is detected, push all of the images in the manifest into the SQS queue associated with the Elastic Beanstalk worker tier.