We currently use CloudFront for our CDN, but we face issues with image transformation. We create resized images and convert formats on demand, but our approach with Lambda@Edge is becoming costly and sometimes unreliable, especially due to noticeable cold start latency when generating AVIF images. I'm exploring options like optimizing the Lambda@Edge code, switching to S3 Object Lambda, using a dedicated image CDN along with CloudFront, or possibly redirecting all media requests to a managed services stack. On top of that, we need to handle substantial asset management for around 40,000 assets that require metadata, tagging, and controlled access for different teams. While a dedicated image transformation tool would partially address this, we need a comprehensive digital asset management solution that integrates well with our delivery system.
5 Answers
Consider using standard single-region Lambda with an origin shield setup. This should help reduce cache misses significantly. With Lambda@Edge, every transformation is applied at each edge location, which can create unnecessary latency and double work. For image handling, I've had great experiences with Imgix; it connects directly to S3 and manages the transformations effectively. But I’m not as familiar with asset management options.
Just a heads up, S3 Object Lambda is being phased out, so you might want to seek alternatives.
I implemented my image transformation setup behind the CDN. Initially, it checks the CDN for images, then S3, and triggers lazy transformations if necessary. I also use an edge lambda to determine the best return type based on the request's accept header and rewrite the URL accordingly.
If you’re looking into digital asset management, you might want to check out services like Cloudinary or Adobe DAM. For transformations, I use Thumbor with S3 for both original images and transformations, and it’s integrated with CloudFront and Origin shield for delivery. Since switching to this setup, my cache hit ratio at CloudFront is around 90%, which spikes during high traffic. It's cost-effective, too, thanks to the CloudFront free tier.
It sounds like you're on the right track with analyzing your options. My hunch is that many users might be utilizing lazy transformations if only a small number of images or formats are being accessed. Have you thought about pre-processing images and storing them in S3 directly? Using Lambda@Edge for every image transformation could lead to inefficiencies, especially if most content doesn’t get accessed frequently.

Related Questions
Erase Gemini Nano Banana Watermark
AI Image Upscaler
Parking Ticket Generator
Convert SVG to Image
Cursor UML Diagram To Image
Sprite Sheet Splitter