AWS Storage Blog
ShootProof boosts photo upload speeds with Amazon S3 Transfer Acceleration
ShootProof provides easy online tools that help photographers share their work, sell their work, and grow their businesses. While we’re based in Atlanta, we’re proud to be available ‘wherever you are’ for our photographer customers. Every month, we serve tens of thousands of photographers, and today our clients can be found in 38 countries. ShootProof provides online galleries (in 18 different languages), contracts, and invoices for professional photographers. These professionals can use our applications to sell, share, print, and download digital photos.
Here is a look at our homepage:
This post describes how ShootProof uses Amazon S3 Transfer Acceleration (S3TA) to improve photo upload speeds for customers around the world. First, let me tell you a little about the challenges we faced and our IT architecture in AWS, which explains why we use S3TA.
Challenges
Maintaining storage at a scale of multiple petabytes on our own, with numerous copies of clients’ imagery, would have involved a lot of overhead. We’d have to build a storage engineering team, rent space in a colocation facility (or three), and deploy a multitude of racks in those data centers. We’d also have to hire people just to manage hardware issues, like failing disk drives. Moreover, as a global company, we’d have to figure out a way to ensure all our customers have access to top-notch service and performance regardless of their location. All of that would distract us from our core mission, which is building better products for photographers. We focus our team and our resources on the things that matter to our customers. There is no real value to our customers for us to have more headcount on staff, let alone more hardware in a data center.
AWS services for a modern data architecture
ShootProof has been in AWS since we founded the company. It’s not a stretch to say that there would be no ShootProof without AWS – this is especially true when it comes to Amazon Simple Storage Service (Amazon S3). AWS has supported our business as it scaled from our early startup days to today, approximately 10 years later, when we’re storing petabytes of photography files in S3. We run everything in our IT stack in AWS, including computing in Amazon Elastic Compute Cloud (Amazon EC2) for web application services, as well as for photo processing. Delivering photos back to our customers faster and eliminating wait times is important to us. To do so, we use an asynchronous worker queue as a background process to automatically convert files in S3 and create multiple resized files. For our database engine, we have relied on Amazon Aurora with MySQL since late 2015. We have also recently adopted Amazon Redshift as our Data and Analytics Engineering team’s data warehouse, as part of their data pipeline processes.
Naturally, we use AWS extensively for storage. This includes Amazon Elastic Block Store (Amazon EBS) and Amazon Elastic File Service (Amazon EFS) to essentially parallelize the creation of zip files of photos for our customer. Amazon S3 is central to our operations as the critical store of our photographer customers imagery. Durability and reliability are key to us. Hands down, those are the reasons we’ve kept using S3 since the beginning. We literally store billions of objects, and have never lost a single one. Simply put, Amazon S3 gives us levels of data durability and reliability we could never achieve on our own.
Today, we’re using Amazon S3 Standard and S3 Glacier for archiving log files. We make use of storage classes such as S3 Standard-Infrequent Access for things like thumbnails. We’re always looking into S3 Intelligent-Tiering and the other storage classes to see if they can help us reduce cost without impacting our customer experience.
Amazon S3 Transfer Acceleration
One of ShootProof’s core features, photo galleries, requires photos to be uploaded via our web application or API. About 70% of photos are uploaded via a web application, and ultimately reside in an Amazon S3 bucket in our preferred US-East AWS Region.
While US-based customers perform uploads with minimal latency because of their proximity to our Amazon S3 bucket, this was not always the case for international customers when we first launched. For example, a customer in Sydney, Australia may have encountered significant latency when uploading directly to S3 in us-east. This of course was not good. We want to give our users the best experience we can in our applications, and subsequently reduce support issues and the time our team spends on them.
In order to reduce this latency and achieve a better customer experience, ShootProof adopted S3 Transfer Acceleration. As found on the S3TA webpage, the service “can speed up content transfers to and from Amazon S3 by as much as 50-500% for long-distance transfer of larger objects.” The service is useful for customers who have web or mobile applications with widespread users or applications hosted far away from their S3 bucket. Such conditions can lead to long and variable upload and download speeds over the internet – which was exactly the situation ShootProof faced.
By leveraging S3 Transfer Acceleration endpoints for photo uploads, our customers around the world experience fast and secure transfers over long distances between their location and the destination S3 bucket. S3 Transfer Acceleration allows us to use Amazon CloudFront’s 200+ edge locations so our application connects to S3 directly using the AWS backbone. This improves global uploads to our bucket in the Eastern U.S. Region. With S3 Transfer Acceleration, photographers can send their images to ShootProof in just seconds. And as a result, ShootProof has reduced customer support issues related to upload speeds.
How to try Amazon S3 Transfer Acceleration
If you have similar needs as us, you can turn on S3TA by enabling it in the S3 console. Have your application upload to, or download from, your acceleration-enabled bucket. You can do so by using one of the following s3-accelerate endpoint domain names:
- bucketname.s3-accelerate.amazonaws.com, or
- bucketname.s3-accelerate.dualstack.amazonaws.com – for IPv6 transfers.
If you want to test out its benefits, you can use the S3TA speed comparison tool to get a sense of its performance benefits from your location. See the full S3TA documentation here.
Conclusion
Thanks for reading more about how ShootProof uses AWS, and specifically how we use Amazon S3 Transfer Acceleration to speed up long-distance transfers to S3. S3TA helps us serve our far-flung customers who use the ShootProof application to send photography to us for processing, display, and distribution to their clients. S3TA has contributed to a more seamless operation at ShootProof by improving the experience of our customers through speeding up content transfers and minimizing troubleshooting.
I hope you’ve found this post useful. If you have any questions for us or the AWS team, please leave them in the comments section!
The content and opinions in this post are those of the third-party author and AWS is not responsible for the content or accuracy of this post.