Oyster, a NewYork based company is known for it's unfiltered reviews of destinations which includes hundreds of images taken by the Oyster team that visits the location to check the cleanliness and locality, also untouched images submitted by the visitors.
Amazon Simple Queue Service is a distributed message queuing service introduced by Amazon.com in late 2004. It supports programmatic sending of messages via web service applications as a way to communicate over the Internet.
The First Migration
When Oyster started dealing with a million of high quality images, they decided to migrate from on-premises to Amazon S3 in 2010, as they found S3 to be a cost-effective solution for their enormous high quality images.
One of the major challanges faced by Oyster was reprocessing their images a few times each year, to update the copyright year, change the watermarks or change the format of the image for mobiles and tablet devices.
"We were already using Amazon S3 to store the images, so using Amazon Elastic Compute Cloud (Amazon EC2) to process the images was a natural choice,”
- Eytan Seidman (Co-founder and Vice President of Product, Oyster) [source:aws.amazon.com]
Using AWS the bulk of the processing job has been shifted to the cloud. Oyster is using a customised AMI with EC2. The company connect to AWS S3 and AWS SQS using boto, a Python interface to AWS. The images are processed using ImageMagick software available in the custom AMI.
AWS EC2 and AWS SQS are combined and used in an integrated workflow to generate the desired sizes of images. AWS SQS is used to communicate the photos that need to be processed and the status of the jobs.
- 95% improvement - Oyster's old environment required 400 hours to process one million photos, which drastically came down to 20 hours.
- Straightforward Documentation and useful dashboards.
- Reduce in-house hardware expenses by repurposing two of it's old servers
- Cost effective, efficient scaling & more time to focus on other things [source: aws.amazon.com]