Saturday, August 27, 2011

Preparing your ecommerce IT infrastructure for Holiday season using AWS

Preparing your IT Infrastructure in AWS for Thanksgiving

Why Thanksgiving and Holiday Season is important for ecommerce

  • Thanksgiving and the holiday season accounts for 60-65% of annual online sales
  • E-Commerce companies see 4X to 6X of normal traffic

Some of the key IT challenges that for ecommerce applications are

  • Optimum utilization of your IT capacity during normal times
  • Scaling and handling traffic during peak times
  • What happens when traffic demands exceed my forecast?
  • Lead time for procuring/leasing/commissioning 

Solution = Amazon Web Services (AWS)
We can solve:

  • Scalability challenges using Amazon Auto Scaling 
  • High Availability issues using Multiple Availability Zones (AZ) and AWS building blocks
  • Performance problems using CDN, ELB, Caching and DB
  • Cost control by pay-for-use model

Key Points
  • Nearly 70% of the IT infrastructure team’s efforts are spent on heavy lifting activities like planning, procuring and commissioning HW/NW/SW during the peak season. Only 30% of time is spent on infrastructure issues related to value creation
  • Amazon Auto scaling is a service that helps us to Scale out Amazon EC2 instances seamlessly when demand increases, Scale down unwanted Amazon EC2 instances automatically when demand subsides. EC2 instances launched on web/Application layers can be automatically attached to Elastic Load balancer 
  • Fixed capacity that is commissioned 1 to 2 months before the Holiday period may lead to Underutilization of resources (or) over provisioning of resources (or) May not able to meet the load scenarios at all, which in turn results in cost leakages and revenue loss
  • Amazon Auto scaling closely aligns the servers with Traffic demand and hence better cost control 
  • First step to design Highly available application in AWS,  is to leverage Amazon Availability zones(AZ)  AZ’s are distinct physical locations ,having Low latency network connectivity between them inside the same region with Independent power , cooling , network and security systems.
  • Always partition the application stacks across 2 or more AZ’s inside a region. This includes the Web, Application, Search, Caching and Database alayers. Configure the Elastic load balancer to balance requests between EC2 instances launched across multiple AZ’s. Configure Amazon AutoScaling to launch EC2 instances across Multiple Availability Zones automatically. Configure Amazon RDS in MultiAZ mode, This will run the Master Database and Hot standby in multiple Availability zones automatically .For read-heavy databases have Read replica’s partitioned across 2 availability zones .Use AWS building blocks like S3, CloudWatch monitoring and SimpleDB in your ecommerce applications, they can be accessed from multiple AZ’s
  • Explore Alternate data stores: Ecommerce modules like Catalogs, Shopping carts where High availability is critical can use Amazon simpleDB as their data store, whereas modules like inventory, order management, payments where consistency is of highest importance can still use traditional Database EC2 instances or Relational Database Service from AWS
  • Amazon CloudFront is a service for Static and Streaming content delivery .We can use Amazon CloudFront to distribute content with low latency and high data transfer speeds. CloudFront supports HTTP, HTTPS and RTMP protocol. CloudFront can be best used on following ecommerce functions like catalogs, Search, product display, shopping carts where performance and low latency is critical.
  • Elastic Load Balancing automatically scales its request handling capacity,  in response to incoming application traffic, But ELB does not ramp up rapidly during sudden surge in traffic , it is advised to Pre warm your ELB for the big day
  • Another area that can improve website performance is caching, Amazon Web Services has introduced Amazon ElastiCache that store some ecommerce app objects like user preferences, Product details, reviews etc
  • Add Multiple Read Slaves to RDS master dynamically in AWS. RDS master and Slaves replicate data between them asynchronously.  Ecommerce applications with read-heavy database workloads can use this architecture to improve their overall Read performance.  Some of the read loads can be distributed to alternate data stores like Amazon SimpleDB , MongoDB and ElastiCache servers depending upon the use case.
  • When your ecommerce application grows in terms of user base and traffic volumes, you can shard the Database or RDS in AWS infrastructure. This will improve the overall read/write performance.

No comments:

Need Consulting help ?


Email *

Message *

All posts, comments, views expressed in this blog are my own and does not represent the positions or views of my past, present or future employers. The intention of this blog is to share my experience and views. Content is subject to change without any notice. While I would do my best to quote the original author or copyright owners wherever I reference them, if you find any of the content / images violating copyright, please let me know and I will act upon it immediately. Lastly, I encourage you to share the content of this blog in general with other online communities for non-commercial and educational purposes.