The holiday shopping season has begun, with annual holiday sales events such as Black Friday and Cyber Monday, reigning in record breaking numbers of online customers year over year. In 2019, online sales for Black Friday reached $7.4 billion, followed by $9.4B in sales just three days later, on cyber Monday. In 2020, online sales are expected to grow even further, as the COVID-19 pandemic has led to people embracing online purchasing while staying safe indoors.
Surges in online traffic during such sales events can pose highly challenging for eCommerce websites and online businesses, who must ensure that their online infrastructures can scale and be resilient under high traffic loads. In 2019, even large retailers saw website stability issues, potentially costing them thousands of dollars in sales.
Outages have not become infrequent today, despite lessons from the past. This is because the scale of growth in online sales and traffic always beats expectations, making it challenging for companies to accurately project and prepare. Furthermore, in a time as uncertain as during the pandemic, scaling for sales events has become increasingly challenging.
Website disruptions don’t just hurt sales today, they can also affect long term customer sentiment, as bad experiences lead customers away from engaging in future purchases. Hence, it is vital to start thinking about how you will address your website or application’s scalability and stability, should you observe such a traffic spike during the holiday season. In fact, scalability is one of the foremost reasons why businesses migrate their infrastructure to the cloud. The AWS Cloud provides a highly supportive environment for such high traffic events, offering a selection of tools and features that simplify or eliminate scalability challenges.
Onica, a Rackspace Technology company has supported many customers in their efforts to migrate their infrastructures over to AWS, for the reasons discussed above. MovieTickets.com, a major online ticket supplier, worked with Onica to migrate their infrastructure to the AWS Cloud, so that they could leverage the high scalability and reliability needed to support ticket sales during the release of Star Wars: The Force Awakens. Based upon our experience with such customers, here are 5 best practices you can employ to prepare your infrastructure for high traffic on AWS.
Tips to Scale for Success on AWS
#1 Proactively monitor performance
Monitor everything with Amazon CloudWatch. It is crucial that you keep an eye on the performance of all critical assets during high traffic events. Place alarms and notifications for key performance metrics conservatively, ensuring that action is taken rapidly in case of issues. Utilize Amazon CloudWatch metrics to proactively monitor and scale resources, which leads us to best practice number two.
#2 Plan for horizontal scalability
Utilize Auto Scaling and Elastic Load Balancing for horizontal scalability. Critical resources should be placed in Auto Scaling groups behind an Elastic Load Balancer allowing multiple instances to be treated as single objects so that you may scale your fleet to meet fluctuating demands. Auto Scaling also regularly performs health checks on Amazon EC2 instances, automatically replacing unhealthy instances. PCI-compliant processing, storage as well as credit card data transmission are all supported.
Elastic Load Balancing allows you to automatically distribute incoming application traffic across multiple instances in your AWS Auto Scaling group in addition to balancing traffic across multiple Availability Zones. This not only provides critical scalability but reliability as well. The AWS Elastic Load Balancing managed service automatically scales as load increases, which is one less thing to worry about as your site traffic grows.
#3 Leverage AWS Lambda
Take scalability to the next level by leveraging AWS Lambda for event-driven workloads where possible. Serverless reduces complexity while improving the reliability and scalability of your web application. AWS Lambda is also a very cost-effective way to manage fluctuations in load since you only pay for the execution time of your functions.
#4 Reduce downtime and go global
Go Global! Leverage Amazon Route 53. Generally used for routing DNS queries to your load balancer, it can also be reconfigured for DNS failover. It checks the health of registered Elastic Load Balancing endpoints to help you assess your application’s availability and then routes requests to the most available resource. Amazon Route 53 Geoproximity and latency based routing capabilities can help provide end-users with the best possible experience.
Consider enabling AWS Global Accelerator to improve your application’s availability and performance by leveraging the AWS global network infrastructure for user traffic. Global static anycast IPs simplify traffic management, in addition, to automatically routing traffic to the nearest healthy endpoint. This can also make it much easier to release application updates with zero end-user downtime.
#5 Say goodbye to slow websites and load times with caching
Improve performance with the help of caching; both the frontend and backend of your application stack. Amazon CloudFront uses a global network of Edge locations to rapidly and securely deliver content to your end-users. Amazon ElastiCache allows you to retrieve information from fast, managed, in-memory data stores, instead of much slower disk-based databases. Amazon ElastiCache automatically detects and replaces failed nodes, and reduces the risk of overloaded databases – a big culprit behind slowing the website and application load times.
These measures can help you reach a great starting point in preparing for high traffic scenarios. You can utilize forecasting and model future-traffic based on historical data, to estimate future resource needs. Data generated from such analysis can feed test scripts to keep checks on your infrastructure’s health. A combination of these tests, as well as surprise high traffic drills for the team, can help you be better prepared and reveal areas that need improvement. AWS also allows vulnerability and penetration testing as long as it falls within the AWS Security Testing Terms and Conditions.
While these best practices are designed to combat high traffic pressure, preparedness is essential all year round. General awareness of environmental and economic factors, shopping traffic trends, and buyer behavior, can help one estimate future buyer traffic with greater certainty.