AWS Case Study: Rangespan
Rangespan is a one-year-old ecommerce startup based in London. The company has developed a hosted supply chain service that makes it easy for retailers to offer as many as millions of additional products. Rangespan sources suppliers and inventory for retailers who wish to expand their selection, integrate new categories of products, and experiment with products, manufacturers, and mix—all at a minimum cost.
In order to grow, Rangespan wanted the ability to quickly experiment with technologies, services, and architectures. They also wanted the peace of mind that comes with not having to manage physical resources. To give a sense of scale, Rangespan's catalogue currently has 10 million records in a 44 GB collection, and supports more than 2,000 operations per second. Order volumes increase substantially during the holidays necessitating elasticity, and the growth of the business requires planning for an order of magnitude growth in catalogue-size and two orders of magnitude (or more) growth in order volume.
Why Amazon Web Services
Christian Ricci, CTO at Rangespan, says, “Amazon Web Services (AWS) is both simple to integrate and cost-effective. Combined, these benefits allow us to experiment with technologies, services, and architectures just as soon as we think of them."
The entire Rangespan business is completely cloud-based. Rangespan uses the following products from AWS: Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Block Store (Amazon EBS) with snapshots, Elastic Load Balancing (ELB), Amazon Relational Database Service (Amazon RDS), Amazon Simple Storage Service (Amazon S3), Amazon Elastic MapReduce (Amazon EMR), Amazon Simple Email Service (Amazon SES), Amazon Simple Queue Service (Amazon SQS), and AWS Identity and Access Management (Amazon IAM).
“We are distributed across three Availability Zones with two web servers, one scheduled job server, a redundant three-host MongoDB configuration, RDS-MySQL (includes redundancy), and EMR hosts that we launch as necessary," Ricci says. "We use Amazon EMR for ad-hoc web crawling, parsing data from crawled materials, and for applications leveraging Natural Language Processing (NLP) and Machine Learning (ML) techniques to build and validate our product catalogue.”
The Rangespan platform leverages the following technologies:
- MongoDB (for unstructured catalogue data, logs, and some map-reduce output collections)
- MySQL (for order management and structured catalogue data)
- Python with Django Flask frameworks. Boto is used for interacting with AWS
- Jenkins plus some cloud-based services like GitHub and CodebaseHQ
The Rangespan team has been happy with the results so far. “We have elected to use AWS so that we can focus on features that add value to the business," Ricci says. "The peace of mind and time saved for invention is very valuable. Month over month, growth in traffic and transactions is in the double-digits.”
Through the development process, the team has learned some valuable lessons:
- To reduce costs, turn off instances when you don't need them (e.g. staging)
- Always have a hot backup ready
- Sending system and error messaging (emails) via SES is a quick way to go over the sending limit
- Buy or set up monitoring and error alerts for disk space issues
- Elastic IP addresses and SSL termination with Amazon ELB makes managing and migrating infrastructure a breeze
- Micros are too limited for production use. Throttling kicks in quickly. Move off micro instances as soon as possible
- When you do stabilize the architecture, switch to Reserved Instances for the cost savings
Ricci describes how Rangespan will use AWS products over the next 12 months: “I expect to expand and further automate our use of Amazon EMR, introduce new hosts for scalability and redundancy using Amazon EC2, and increase the capacity of our Amazon RDS. I may be scaling up our MongoDB instances for Amazon EC2 as well, adding a data warehouse, and migrating some or all of the platform to a new geography. We’re also contemplating use of Amazon ElastiCache.”
"The reliability and scalability of AWS provide peace-of-mind, allowing us to focus on invention, not operations," Ricci concludes.
To learn more about how AWS can help your web application needs, visit our Web Applications details page: http://aws.amazon.com/web-mobile-social.