EyeEm Case Study


EyeEm is start-up based in Berlin, Germany that offers a free photo application devoted to taking and sharing mobile photographs. The application, also named EyeEm, lets users take pictures on their smartphones, apply a variety of high-quality filters and frames, and share the pictures on the EyeEm website, by email or on social networks. EyeEm is available for iPhone, Android, and Windows smartphones. The start-up, launched in 2011, has 16 employees and supports a community of a few million photography enthusiasts worldwide.

start a python tutorial

Handling huge traffic spikes and unexpected growth is possible primarily because our service runs on AWS.”

Ramzi Rizk
Co-Founder and CTO, EyeEm

The Challenge

As a start-up, EyeEm wanted to position itself for rapid growth without overextending its IT budget. The company was using a hosted solution and experienced traffic spikes that took them offline briefly. Ramzi Rizk, EyeEm's co-founder and CTO, explains, “We’re a bootstrap start-up. We couldn’t hire the additional people needed to manage, monitor and maintain a self-hosted solution. We wanted to reduce our system administration overhead while giving ourselves the ability to scale within minutes to handle traffic spikes.”

Why Amazon Web Services

“Amazon Web Services (AWS) was on our short list right from the start because of the number of other start-ups using it," says Rizk. “Reliability, uptime and speed were important factors. We chose AWS because we needed the flexibility to migrate our existing infrastructure effortlessly and then seamlessly integrate with AWS products and solutions.”

Rizk and his team configured Amazon Elastic Compute Cloud (Amazon EC2) instances to perform a variety of front-end and back-end functions for EyeEm's application stack, which is built with UNIX, PHP, and MySQL databases. “Our initial migration from a machine to an AWS instance only took a couple of hours,” says Rizk. “Since then, our architecture has evolved with our needs.”

"Running and scaling a start-up is a continuous process. We’re using four Amazon EC2 instances for our MySQL setup: one instance for the EyeEm website, between three and ten instances for APIs and image processing, and additional instances to support utilities that we run. I built our product on AWS to take advantage of Auto Scaling, which helps us handle all incoming traffic with greater stability.” The company uses Amazon Simple Queue Service (Amazon SQS) for messaging and Elastic Load Balancing for traffic distribution across multiple Amazon EC2 instances.

EyeEm uses Amazon Simple Storage Service (Amazon S3) for primary storage and Amazon Glacier for backup storage services. “We manage our Memcache with Amazon ElastiCache,” says Rizk. “Mostly we use it to reduce the volume of reads that hit the database. Using Amazon ElastiCache has effectively cut the API response rate by half, improving performance. It was so easy to incorporate into our existing feature stack that we recommend using Amazon ElastiCache as a first step for other companies starting out in the cloud.” EyeEm uses Amazon CloudFormation for image processing and API instances, Amazon Route 53 for DNS management and Amazon CloudFront for photo delivery.

The Benefits

EyeEm's reputation continues to grow with both serious photographers and casual fans of phone-based photography, causing increased usage and traffic spikes. “Our usage level has grown tenfold in the past year and we’ve been able to grow our resources to support demand,” says Rizk. “A year ago, we were running on three Amazon EC2 instances. Today, we average around 15 instances. We can scale to support traffic spikes 30 to 50 times higher than normal demand.” EyeEm is prepared to scale out even more if the need arises. Rizk states, "Handling huge traffic spikes and unexpected growth is possible primarily because our service runs on AWS."

EyeEm on AWS: Customer Success Story (4:02)

EyeEm Architecture on AWS

EyeEm Architecture Diagram

About EyeEm

EyeEm is start-up based in Berlin, Germany that offers a free photo application devoted to taking and sharing mobile photographs.

AWS Services Used

Amazon EC2

Amazon EC2 is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers.

Learn more »

Amazon S3

Amazon S3 is an object storage service that offers industry-leading scalability, data availability, security, and performance.

Learn more »

Auto Scaling

AWS Auto Scaling monitors your applications and automatically adjusts capacity to maintain steady, predictable performance at the lowest possible cost.

Learn more »

Amazon Glacier

Amazon S3 Glacier and S3 Glacier Deep Archive are a secure, durable, and extremely low-cost Amazon S3 cloud storage classes for data archiving and long-term backup.

Learn more »

Amazon SQS

Amazon SQS is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications.

Learn more »

Amazon ElastiCache

Amazon ElastiCache offers fully managed Redis and Memcached. Seamlessly deploy, run, and scale popular open source compatible in-memory data stores.

Learn more »

Elastic Load Balancing

Elastic Load Balancing automatically distributes incoming application traffic across multiple targets, such as Amazon EC2 instances, containers, IP addresses, and Lambda functions.

Learn more »

Amazon Route 53

Amazon Route 53 is a highly available and scalable cloud Domain Name System (DNS) web service.

Learn more »

Get Started

Companies of all sizes across all industries are transforming their businesses every day using AWS. Contact our experts and start your own AWS Cloud journey today.