How have you incorporated Amazon Web Services as part of your architecture? What services are you using and how?
Our primary use of Amazon Web Services (AWS) is for our tracking and redirection services. These services work over http to track users' actions across our advertisements and then make informed decisions on how best to serve them the most relevant content. We deliver over 20 million visitors per day for our clients who are widely distributed around the globe.
AWS has allowed us to make use of geographic distribution to decrease latency for end users, while providing automatic fault tolerance. We make use of Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Load Balancing (Amazon ELB), Amazon Simple Storage Service (Amazon S3), Amazon CloudFront, and Amazon CloudWatch. We are also starting to experiment with Autoscaling.
We operate in four AWS regions (us-east, us-west, ap-southeast, eu-west); all regions are identical in setup and can function completely independently from each other. Each region contains four Amazon EC2 nodes (spread across two availability zones) with Amazon ELB to balance requests across them.
We use UltraDNS to provide us with geo-balanced domain name service (DNS), so we can forward requests to the nearest region with active servers.
We run our own internal servers, which are used for offline data analysis and archiving.
What programming languages and/or tools did you use to build this solution?
Our Web services were written in Ruby but were re-written to use node at the end of 2010.
Why did you decide to use AWS?
As the leading cloud services provider, AWS was the only solution that checked all the boxes and could be trusted to handle the uptimes we needed.
How has AWS helped your business?
AWS allows developers to experiment and grow more safely and provides a superior way of adapting to changes and utilizing resources.
Can you share any metrics related to your use of AWS?
Comparing other projects running on our own infrastructure, significant hours a week are spent going back and forth between our internal IT department, and our datacenter, whenever new equipment needs to be provisioned. This bottleneck does not exist for our AWS solutions, which can be looked at as a significant cost saving. We have over 20 EC2 instances running 24/7. We process over 20 million requests a day.
Have you learned any valuable lessons during this development process that you’d like to pass on to other developers? Make sure you take advantage of the multiple availability zones and regions to ensure maximum uptime and reduce the latency to end users by using a Geo IP Load Balancing service serving these different regions.
Do you have any future plans to incorporate other AWS solutions?
We are waiting for Amazon Route 53 to start supporting Geo IP Load Balancing, which will allow us to use this to replace our UltraDNS Solution.
To learn more, visit http://www.forward.co.uk/ .
Added May 31, 2011