Final answer:
To reduce order processing delays in an eCommerce application, enable Auto Scaling for EC2 instances in the middle tier, optimize order processing code, and review the SQS queue and DynamoDB Auto Scaling settings for efficiency during peak loads.
Step-by-step explanation:
To reduce order processing times in an eCommerce application with three tiers, several improvements can be made. Considering that customers are experiencing delays during busy periods, we can focus on the components that are most likely to cause bottlenecks. Given that the middle tier utilizes EC2 instances and an Amazon SQS queue to process orders, one effective action would be to ensure that there is sufficient capacity to handle peak loads. This can be done by enabling Auto Scaling for the EC2 instances in the middle tier, which would dynamically adjust the number of instances in response to the application’s workload.
Moreover, reviewing and optimizing the efficiency of the order processing code could also offer significant improvements. If the code that processes messages from the SQS queue is inefficient, it can slow down the entire system. Therefore, code optimization can lead to faster processing times. Additionally, examining the SQS queue configuration to ensure that there are enough concurrent processes handling the incoming messages can prevent bottlenecks.
Focusing on the database tier, it is crucial to monitor and optimize the Auto Scaling settings of the DynamoDB table to handle increased read and write operations during high load. This can involve adjusting provisioning for read/write capacity or using DynamoDB Accelerator (DAX) if appropriate.