Jack and the Elastic Beanstalk
How do you queue?
NonSNSe
Kinesis-ology
Pandora's Box
100

What languages and development stacks are not currently supported by AWS Elastic Beanstalk? 

a. Passenger for Ruby applications 

b. Apache Tomcat for Java applications 

c. Jetty for JBoss applications 

d. Apache HTTP Server for PHP applications 

c. Jetty for JBoss applications

Elastic Beanstalk does not provide support for Jetty.

100

How large can an SQS message be, without referencing to a message payload in Amazon S3? 

a. 512KB 

b. 128KB 

c. 256KB 

d. 64KB 

c. 256KB 

Amazon SQS messages can contain up to 256 KB of text data, including XML, JSON and unformatted text. If you want to send messages larger than 256 KB, you need to use the Amazon SQS Extended Client Library for Java. This library lets you send an Amazon SQS message that contains a reference to a message payload in Amazon S3 that can be as large as 2 GB.

100

Which of these is a protocol NOT supported by SNS: 

a. Email 

b. Email-JSON 

c. FTP 

d. HTTP 

c. FTP

Correct. FTP protocol is NOT supported by Amazon SNS. Reference: Amazon SNS API Reference (https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html)

100

Which of the following is used to capture and store streaming video and data for real-time processing and analysis? 

a. Kinesis Firehose

b. Kinesis Streams

c. Kinesis Shards

d. Kinesis Analytics

b. Kinesis Streams

Kinesis Streams is used to capture and store streaming video and data for real-time processing and analysis. Consumer applications process and analyze the data in real-time.

100

Which Amazon service can you use in conjunction with SQS to "fan out" SQS messages to multiple queues? 

a. ElastiCache 

b. SNS 

c. SWF 

d. SES 

b. SNS

Amazon SNS provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers or other applications. It can be used with SQS to fan out messages to multiple queues. Send Fanout Event Notifications (https://aws.amazon.com/getting-started/hands-on/send-fanout-event-notifications/)

200

Which of these statements about pricing for Elastic Beanstalk is true? 

a. You are billed based on the number of applications you create within Elastic Beanstalk, regardless of their size or complexity.

b. Elastic Beanstalk charges you both for the resources you deploy and a separate cost for deploying them.

c. Elastic Beanstalk includes a monthly subscription fee in addition to usage charges.

d. Elastic Beanstalk is free to use. You only pay for the resources which are deployed as part of it.

d. Elastic Beanstalk is free to use. You only pay for the resources which are deployed as part of it.

Elastic Beanstalk is free to use, just like CloudFormation. You only pay for the resources which are deployed as part of it.

200

As a Developer, you are working on a mobile application that utilizes Amazon Simple Queue Service (SQS) for sending messages to downstream systems for further processing. One of the requirements is that the messages should be stored in the queue for a period of 12 days. 

How will you configure this requirement? 

a. Change the queue message retention setting 

b. Use a FIFO SQS queue 

c. The maximum retention period of SQS messages is 7 days, therefore retention period of 12 days is not possible 

d. Enable Long Polling for the SQS queue 

a. Change the queue message retention setting

Explanation: Amazon SQS automatically deletes messages that have been in a queue for more than the maximum message retention period. The default message retention period is 4 days. However, you can set the message retention period to a value from 60 seconds to 1,209,600 seconds (14 days) using the SetQueueAttributes action

200

A company wants to ensure that their notification system is highly available and can withstand data center failures. How does SNS provide this capability?

a. By storing messages in a single data center

b. By using redundant storage across multiple availability zones

c. By requiring manual backups

d. By using a local server

b. By using redundant storage across multiple availability zones

200

Your application is running on EC2 and consuming click stream data from a Kinesis stream, using the Kinesis Client Library. You have recently increased the number of shards in your Kinesis stream. When should you consider increasing the number of EC2 instances consuming the stream? 

a. You should add more instances before you reshard. 

b. You should base scaling decisions on appropriate metrics for your application, like CPU utilization.

c. You should base scaling decisions on whether issues are experienced after the resharding. 

d. You should add more instances as soon as you reshard. 

b. You should base scaling decisions on appropriate metrics for your application, like CPU utilization.

When resharding increases the number of shards in the stream, the corresponding increase in the number of record processors increases the load on the EC2 instances that are hosting them. If the instances are part of an Auto Scaling group, and the load increases sufficiently, the Auto Scaling group adds more instances to handle the increased load. You should configure Auto Scaling to automatically scale your instances based on appropriate metrics, e.g. CPU utilization.

200

Which of the following is a way that you can customize your Elastic Beanstalk Amazon Linux 1 environment? 

a. Platform hooks 

b. Buildfile 

c. Procfile 

d. .ebextensions 

d. .ebextensions

The .ebextensions folder is a folder located in the top-level directory of your application source code bundle containing .config files used to customize Amazon Linux 1 environments. The use of .ebextensions is only supported for Amazon Linux 1 environments.

300

What is the Windows Web Application Migration Assistant for Elastic Beanstalk used for? 

a. Migrating Windows applications to Amazon Linux 2 

b. Migrating .NET applications to Node.js. 

c. Migrating .NET applications from Windows servers to AWS Elastic Beanstalk 

d. Migrating on-premises databases to RDS 

c. Migrating .NET applications from Windows servers to AWS Elastic Beanstalk

The Windows Web Application Migration Assistant for Elastic Beanstalk is a PowerShell utility that migrates .NET applications from Windows servers to AWS Elastic Beanstalk.

300

You are using AWS SQS FIFO queues to get the ordering of messages on a per user_id basis. On top of this, you would like to make sure that duplicate messages should not be sent to SQS as this would cause application failure. 

As a developer, which message parameter should you set for deduplicating messages? 

a. MessageGroupId 

b. ContentBasedDeduplication 

c. ReceiveRequestAttemptId 

d. MessageDeduplicationId 

d. MessageDeduplicationId 

Explanation: The message deduplication ID is the token used for the deduplication of sent messages. If a message with a particular message deduplication ID is sent successfully, any messages sent with the same message deduplication ID are accepted successfully but aren't delivered during the 5-minute deduplication interval.

300

You have a list of email addresses to which you need to push emails on a periodic basis. To which Amazon SNS resource can you subscribe the emails? 

a. A Subject 

b. A Message 

c. A topic 

d. A Subreddit 

a. A Subject

Clients can subscribe to the SNS topic and receive published messages using a supported protocol, such as Amazon SQS, AWS Lambda, HTTP, email, mobile push notifications, and mobile text messages (SMS). Reference: What is Amazon SNS?(https://docs.aws.amazon.com/sns/latest/dg/welcome.html)

300

An investment firm wants to continuously generate time-series analytics of the stocks being purchased by its customers. The firm wants to build a live leaderboard with near-real-time analytics for these in-demand stocks. 

Which of the following represents a fully managed solution with the least cost to address this use-case? 

a. Use Kinesis Firehose to ingest data and Kinesis Data Analytics to generate leaderboard scores and time-series analytics 

b. Use Kinesis Data Streams to ingest data and Kinesis Data Analytics to generate leaderboard scores and time-series analytics 

c. Use Kinesis Firehose to ingest data and Amazon Athena to generate leaderboard scores and time-series analytics 

d. Use Kinesis Data Streams to ingest data and Amazon Kinesis Client Library to the application logic to generate leaderboard scores and time-series analytics 

a. Use Kinesis Firehose to ingest data and Kinesis Data Analytics to generate leaderboard scores and time-series analytics 

Explanation: Amazon Kinesis Data Firehose is the easiest way to reliably load streaming data into data lakes, data stores, and analytics services. It can capture, transform, and deliver streaming data to Amazon S3, Amazon Redshift, Amazon Elasticsearch Service, generic HTTP endpoints, and service providers like Datadog, New Relic, MongoDB, and Splunk. It is a fully managed service that automatically scales to match the throughput of your data and requires no ongoing administration. It can also batch, compress, transform, and encrypt your data streams before loading, minimizing the amount of storage used and increasing security. 

Amazon Kinesis Data Analytics is the easiest way to transform and analyze streaming data in real-time with Apache Flink. Apache Flink is an open source framework and engine for processing data streams. Amazon Kinesis Data Analytics reduces the complexity of building, managing, and integrating Apache Flink applications with other AWS services.

300

Which of the following can be used to migrate .NET applications from Windows servers to AWS Elastic Beanstalk? 

a. Elastic Beanstalk Migration Assistant

b. .ebextensions

c. Rolling deployment

d. Windows Web Application Migration Assistant for Elastic Beanstalk

d. Windows Web Application Migration Assistant for Elastic Beanstalk 

The Windows Web Application Migration Assistant for Elastic Beanstalk is an open-source PowerShell utility that migrates .NET applications from Windows servers to AWS Elastic Beanstalk. It was formerly named the .NET Migration Assistant.

400

An e-commerce company has deployed its application on AWS Elastic Beanstalk. The Auto Scaling group associated with the Beanstalk environment has three Amazon EC2 instances. When the number of instances falls below two, it severely impacts the performance of the web application. The company currently uses the default all-at-once deployment policy and is looking for an effective strategy for future deployments.  

Which of the following represents the most cost-effective deployment strategy for the company? 

a. Opt for rolling with additional batch deployment strategy. Set the batch size parameter to 1 

b. Configure an Elastic Load Balancer to front the Auto Scaling Group and choose two different Availability Zones (AZs) for deployment 

c. Opt for traffic-splitting deployment strategy with traffic split parameter set to 50% of the total traffic 

d. Opt for rolling deployment strategy. Set the batch size to 2 

a. Opt for rolling with additional batch deployment strategy. Set the batch size parameter to 1 

Explanation: With rolling deployments, Elastic Beanstalk splits the environment's Amazon EC2 instances into batches and deploys the new version of the application to one batch at a time. It leaves the rest of the instances in the environment running the old version of the application. During a rolling deployment, some instances serve requests with the old version of the application, while instances in completed batches serve other requests with the new version.

400

You have been asked to decouple an application by utilising SQS. The application dictates that messages on the queue can be delivered more than once, but must be delivered in the order that they have arrived. You also need to reduce the cost of using Amazon SQS by eliminating the number of empty responses. Which of the following options are most suitable? 

a. Configure a FIFO SQS queue and enable short polling 

b. Configure a standard SQS queue and use default polling 

c. Configure a standard SQS queue and use long polling 

d. Configure a FIFO SQS queue and enable long polling 

d. Configure a FIFO SQS queue and enable long polling

This question has two parts which need to be considered, the type of queue and the type of polling. The question states that messages, "CAN be delivered more than once" but, "MUST be delivered in the order that they have arrived". MUST is mandatory, while CAN is optional. Since you cannot accommodate both, you address the Mandatory requirements 1st. and then try to accommodate the Optional after. A FIFO queue is required for the Mandatory requirement as it is the only SQS type which will deliver messages in order. The question also states that the queue, "MUST allow for efficient polling" and in this case long polling is the most efficient and cost effective option in situations where the queue will be polled constantly. The correct answer is therefore to configure a FIFO SQS queue with long polling enabled.

400

True or false: SNS notifications cannot trigger lambda functions, while SES emails can.

False. Both SNS and SES can trigger lambda functions.

400

A development team is configuring Kinesis Data Streams for ingesting real-time data from various appliances. The team has declared a shard capacity of one to test the configuration. 

What happens if the capacity limits of an Amazon Kinesis data stream are exceeded while the data producer adds data to the data stream? 

a. The put data calls will be rejected with a ProvisionedThroughputExceeded exception 

b. Contact AWS support to request an increase in the number of shards 

c. The put data calls will be rejected with a AccessDeniedException exception once the limit is reached 

d. Data is lost unless the partition key of the data records is changed in order to write data to a different shard in the stream 

a. The put data calls will be rejected with a ProvisionedThroughputExceeded exception

 Explanation: The capacity limits of an Amazon Kinesis data stream are defined by the number of shards within the data stream. The limits can be exceeded by either data throughput or the number of PUT records. While the capacity limits are exceeded, the put data call will be rejected with a ProvisionedThroughputExceeded exception. If this is due to a temporary rise of the data stream’s input data rate, retry by the data producer will eventually lead to completion of the requests. If this is due to a sustained rise of the data stream’s input data rate, you should increase the number of shards within your data stream to provide enough capacity for the put data calls to consistently succeed.

400

You run a video-hosting website with two types of members: premium, fee-paying members; and free members. Each video that is uploaded is processed by a fleet of EC2 instances, which poll an SQS queue as videos are uploaded. However, you need to ensure that the videos uploaded by your premium, fee-paying members have a higher priority than those of your free members. How might you work with SQS to ensure priority treatment of the premium members' videos? 

a. Add each entry to DynamoDB along with the type of priority and a timestamp. Then use Lambda to add all of the entries to an SQS queue, adding them in order of priority and then timestamp. 

b. Create two SQS queues — one for premium members, and one for free members. Program your EC2 fleet to poll the premium queue first and, if empty, to then poll your free members SQS queue.

c. SQS would not be suitable for this scenario. It would be much better to use SNS to encode the videos. 

d. SQS allows you to set priorities on individual items within the queue, so simply set the fee-paying members at a higher priority than your free members. 

b. Create two SQS queues — one for premium members, and one for free members. Program your EC2 fleet to poll the premium queue first and, if empty, to then poll your free members SQS queue. 

You can use separate queues to provide prioritization of work. This would be a simple and effective solution for this scenario. (https://aws.amazon.com/sqs/features/)

500

You would like your Elastic Beanstalk environment to expose an HTTPS endpoint and an HTTP endpoint. The HTTPS endpoint should be used to get in-flight encryption between your clients and your web servers, while the HTTP endpoint should only be used to redirect traffic to HTTPS and support URLs starting with http://. 

What must be done to configure this setup? (Select three) 

a. Assign an SSL certificate to the Load Balancer 

b. Open up port 80 & port 443 

c. Only open up port 443  

d. Configure your EC2 instances to redirect HTTP traffic to HTTPS 

e. Configure your EC2 instances to redirect HTTPS traffic to HTTP 

f. Only open up port 80 

A, B, D 

Explanation: 

Assign an SSL certificate to the Load Balancer: This ensures that the Load Balancer can expose an HTTPS endpoint. 

Open up port 80 & port 443: This ensures that the Load Balancer will allow both the HTTP (80) and HTTPS (443) protocol for incoming connections 

Configure your EC2 instances to redirect HTTP traffic to HTTPS: This ensures traffic originating from HTTP onto the Load Balancer forces a redirect to HTTPS by the EC2 instances before being correctly served, thus ensuring the traffic served is fully encrypted. 

500

An e-commerce company uses Amazon SQS queues to decouple their application architecture. The development team has observed message processing failures for an edge case scenario when a user places an order for a particular product ID, but the product ID is deleted, thereby causing the application code to fail. 

As a Developer Associate, which of the following solutions would you recommend to address such message failures? 

a. Use short polling to handle message processing failures 

b. Use a dead-letter queue to handle message processing failures  

c. Use a temporary queue to handle message processing failures 

d. Use long polling to handle message processing failures 

b. Use a dead-letter queue to handle message processing failures

Explanation: Dead-letter queues can be used by other queues (source queues) as a target for messages that can't be processed (consumed) successfully. Dead-letter queues are useful for debugging your application or messaging system because they let you isolate problematic messages to determine why their processing doesn't succeed.

500

Which of the following statements regarding Amazon Simple Notification Service (SNS) is false? 

a. Amazon SNS supports both publish/subscribe and long-polling messaging patterns. 

b. Amazon SNS uses a push-based delivery system. 

c. Amazon SNS automatically scales to accommodate the number of subscribers and messages. 

d. Amazon SNS, messages can be delivered to multiple subscribers simultaneously. 

a. Amazon SNS supports both publish/subscribe and long-polling messaging patterns.

Amazon Simple Notification Service (SNS) uses a publisher/subscriber (pub/sub) messaging model.

500

An analytics company is using Kinesis Data Streams (KDS) to process automobile health-status data from the taxis managed by a taxi ride-hailing service. Multiple consumer applications are using the incoming data streams and the engineers have noticed a performance lag for the data delivery speed between producers and consumers of the data streams. 

As a Developer Associate, which of the following options would you suggest for improving the performance for the given use-case? 

a. Use Enhanced Fanout feature of Kinesis Data Streams 

b. Swap out Kinesis Data Streams with SQS Standard queues 

c. Swap out Kinesis Data Streams with SQS FIFO queues 

d. Swap out Kinesis Data Streams with Kinesis Data Firehose 

a. Use Enhanced Fanout feature of Kinesis Data Streams 

Explanation: Amazon Kinesis Data Streams (KDS) is a massively scalable and durable real-time data streaming service. KDS can continuously capture gigabytes of data per second from hundreds of thousands of sources such as website clickstreams, database event streams, financial transactions, social media feeds, IT logs, and location-tracking events.

500

A retail company manages its IT infrastructure on AWS Cloud via Elastic Beanstalk. The development team at the company is planning to deploy the next version with MINIMUM application downtime and the ability to rollback quickly in case deployment goes wrong. 

As a Developer Associate, which of the following options would you recommend to the development team? 

a. Deploy the new application version using 'All at once' deployment policy 

b. Deploy the new application version using 'Rolling with additional batch' deployment policy 

c. Deploy the new application version using 'Rolling' deployment policy 

d. Deploy the new version to a separate environment via Blue/Green Deployment, and then swap Route 53 records of the two environments to redirect traffic to the new version 

d. Deploy the new version to a separate environment via Blue/Green Deployment, and then swap Route 53 records of the two environments to redirect traffic to the new version 

Explanation: With deployment policies such as 'All at once', AWS Elastic Beanstalk performs an in-place update when you update your application versions and your application can become unavailable to users for a short period of time. You can avoid this downtime by performing a blue/green deployment, where you deploy the new version to a separate environment, and then swap CNAMEs (via Route 53) of the two environments to redirect traffic to the new version instantly. In case of any deployment issues, the rollback process is very quick via swapping the URLs for the two environments.

M
e
n
u