AWS Startups Blog

Changing the Way Developers Manipulate Media with Cloudinary

This post comes as part of the Startups on Air series; where the Startup Evangelist Mackenzie Kosut, goes around to different startups and learns more about who they are, what they do, and how they utilize AWS. 

Cloudinary AWS

Background:

Founded in 2011 in Israel, Cloudinary is a boot-strapping success story, growing organically without venture capital funding. In 2015, the company expanded internationally, opening its U.S. headquarters in Palo Alto, California.

The key to Cloudinary’s success is its ability to solve a very real problem for today’s developers: how to deal with the challenges resulting from the use of images and videos in modern websites and apps. As the need for images and video grows in importance, developers must figure out how to best manipulate and deliver this media to a variety of screens at the proper resolution for each user, while minimizing page size to ensure a great user experience.

Cloudinary has reinvented the way that media is managed online, enabling developers to optimize sites for end users who expect fast access to high-quality, high-resolution images and videos, regardless of what device they’re using or where they are located. Cloudinary’s comprehensive cloud-based image and video management solution quickly has become a preferred solution used by web and mobile application developers at major companies around the world to streamline media management and deliver an optimal end-user experience.

Cloudinary automates the entire media lifecycle. Cloudinary supports image and video upload; cloud storage; digital asset management; on-the-fly image and video manipulations; and optimized delivery to end users.

In just over five years, Cloudinary has attracted more than 180,000 developers who are managing approximately 10 billion media files. Among Cloudinary’s users are Answers.com, Conde Nast, Gawker, Gizmodo, GrubHub, Indiegogo, Outbrain, Snapdeal, Under Armour, Vogue, and Wired.

 

 

Technical Recap:

“From our customer’s perspective, DevOps perspective, and customer success perspective, AWS Athena is a nice addition to our core” -Nadav Soferman, Co-founder and Chief Product Officer, @NadavSoferman

Cloudinary runs their image processing using Amazon EC2 instances with Elastic Load Balancing, while using Amazon S3 for their storage needs. Since re:Invent 2016, Cloudinary has begun using some of CloudFront’s newer features such as Lambda@Edge, which allows Cloudinary to run “almost arbitrary code on the edge itself” for requests sent via the Amazon CloudFront CDN. Using Lambda@Edge gives Cloudinary the capability to create varying adaptations of an image in real time without having to forward the requests to centralized servers.

Additionally, Cloudinary has begun to move its databases from Cloudinary’s own EC2 instances to Amazon Aurora, which gives Cloudinary increased scalability, uptime guarantees, and cross-region replication. Auto Scaling in Aurora allows Cloudinary to avoid provisioning excess database storage to handle future growth: “It makes our lives much easier because we have so many objects (more than 13 billion stored).”

Lately, Cloudinary has shifted towards Amazon Athena, which helps them generate sophisticated reports and insight into their customer’s use of images. Through Athena, they can run ad-hoc queries on the data they’ve gathered, and dive into the data more deeply in a variety of ways depending on their specific needs each time. “From our customer’s perspective, DevOps perspective, and customer success perspective, this is a nice addition to our core.”

Cloudinary not only uses AWS Lambda at the CloudFront CDN level via Lambda@Edge, but also for integration purposes elsewhere in Cloudinary’s infrastructure. AWS Lambda allows Cloudinary to send callbacks via HTTP or SNS, get notified of any image that’s being uploaded, and have the ability to react to it in real time. “We have a way of triggering Cloudinary from a Lambda function when the new image or video arrives in your S3 bucket, and you can reuse your own S3 bucket for enterprise purposes.” This allows Cloudinary to give their customers a lot of flexibility and scalability, including the ability to process more than 5,000 new images per second.

“We have varying use across the day given the time of day and location, and AWS makes it very easy and adaptive to our needs. We use Spot Instances when it makes sense, and Auto Scaling across multiple services. AWS allows us to do all this while concentrating on the core product, which has been a huge win.”

Interested in learning more about Cloudinary? Check out their Twitter page.