Which one of the following architectural suggestions would you make to the customer?
The mobile application will submit its location to a web service endpoint utilizing Elastic Load Balancing and EC2 instances; DynamoDB will be used to store and retrieve relevant offers EC2 instances will communicate with mobile earners/device providers to push alerts back to mobile application.
Use AWS DirectConnect or VPN to establish connectivity with mobile carriers EC2 instances will receive the mobile applications location through carrier connection: RDS will be used to store and relevant offers. EC2 instances will communicate with mobile carriers to push alerts back to the mobile application.
The mobile application will send device location using SQS. EC2 instances will retrieve the relevant others from DynamoDB. AWS Mobile Push will be used to send offers to the mobile application.
The mobile application will send device location using AWS Mobile Push EC2 instances will retrieve the relevant offers from DynamoDB. EC2 instances will communicate with mobile carriers/device providers to push alerts back to the mobile application.
Explanations:
While this option involves an Elastic Load Balancer and EC2 instances, it lacks a real-time component for alerting users efficiently. It doesn’t mention a push notification service which is essential for delivering alerts quickly. Additionally, relying solely on EC2 instances for communication with mobile devices could lead to latency issues.
This option suggests using AWS Direct Connect or VPN to communicate with mobile carriers, which is unnecessary and adds complexity. The reliance on EC2 instances to receive locations through carrier connections is impractical, as it limits scalability and can introduce delays. Also, RDS is not as optimal as DynamoDB for this use case given the requirement for rapid access to location-based offers.
This option effectively uses SQS to handle incoming device locations asynchronously, allowing for better scalability. It retrieves relevant offers from DynamoDB, which is designed for high performance and low latency. AWS Mobile Push (now Amazon SNS) is correctly utilized for pushing alerts to the mobile application, ensuring timely delivery to users.
This option incorrectly suggests using AWS Mobile Push to send device locations, which is not a suitable use case for the service. Instead, the app should send its location data through a dedicated API. While it uses DynamoDB for storage, it lacks a proper mechanism for real-time communication back to the mobile application, relying on EC2 instances instead of a more efficient push notification system.