Skip to main content

Guidance for Visual Search on AWS

Elevate your ecommerce experience with reverse image lookup

Overview

This Guidance shows how to create a visual search capability for ecommerce websites, allowing users to upload product images to find visually similar items and improve product discovery. While typically complex, recent technological advancements have made it easier to develop accurate and scalable visual search algorithms. This Guidance explores these new technologies, such as multimodal embedding models, and shows how these technologies can be used to create intuitive visual search features. By generating embeddings from product images and text descriptions, you can add effective visual search functionality to your ecommerce platform.

How it works

This architecture diagram helps build a simple visual search capability, allowing your users to upload a product image and discover similar looking products from the ecommerce website.

Deploy with confidence

Ready to deploy? Review the sample code on GitHub for detailed deployment instructions to deploy as-is or customize to fit your needs. 

Go to sample code

Well-Architected Pillars

The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.

AWS X-Ray traces requests as they flow through API Gateway to underlying services such as Lambda and Amazon S3, providing valuable insights into the application's behavior. Simultaneously, Amazon CloudWatch captures metrics and logs from all services involved in the architecture. By visualizing and analyzing these components using X-Ray, along with the metrics and logs collected by CloudWatch, you can efficiently identify performance bottlenecks and troubleshoot requests.

Read the Operational Excellence whitepaper 

This Guidance is configured with a multi-layered approach, combining tightly scoped AWS Identity and Access Management (IAM) policies with the access control of API Gateway and the threat mitigation of AWS WAF. This creates a robust security framework that safeguards the application and its underlying resources from potential security threats. Specifically, IAM policies are scoped down to the minimum permissions necessary for each service to function properly, effectively limiting unauthorized access to resources. Furthermore, API Gateway implements API key-based authorization to control API access and is integrated with AWS WAF for protection against web exploits.

Read the Security whitepaper 

The fully managed, serverless services offer high availability and automatic scaling to meet fluctuating traffic demands. For example, Lambda, Amazon OpenSearch Serverless, API Gateway, and Amazon S3 adjust their capacity dynamically, while Amazon Bedrock supports provisioned throughput, allowing you to select the appropriate model capacity units for your specific traffic volumes. This combination ensures that the application can handle varying loads without failure, minimizing downtime. The high availability and scalability of these services, coupled with the ability to fine-tune the capacity of Amazon Bedrock, create a robust, reliable architecture capable of consistently serving requests even under demanding conditions.

Read the Reliability whitepaper 

Amazon Bedrock and Lambda offer several features to optimize your workloads and enhance performance efficiency. With Amazon Bedrock, you can use provisioned throughput mode to meet high request volumes for real-time inference when on-demand capacity isn't sufficient. Additionally, Amazon Bedrock offers a batch inference capability that is ideal for initial and scheduled bulk embedding creation. Lambda provides provisioned concurrency, which pre-provisions Lambda execution environments for a configured number of instances. This can potentially reduce cold-start occurrences and improve Lambda execution timing, further boosting your application's performance.

Read the Performance Efficiency whitepaper 

Amazon Bedrock, Amazon S3, and Lambda offer various features to optimize your costs. Amazon Bedrock, as a fully managed service, eliminates operational and management costs associated with deploying, scaling, and managing foundation models. It provides flexible pricing options with on-demand and provisioned throughput modes, allowing you to choose the most cost-effective plan. Amazon S3 offers different storage tiers and lifecycle policies, so you can automate data movement between tiers and optimize storage costs. For compute resources, Lambda is covered by Compute Savings Plans, offering discounted pricing for Lambda executions. You can further optimize Lambda costs by selecting suitable memory and processor configurations.

Read the Cost Optimization whitepaper 

Lambda, API Gateway, and Amazon S3 scale dynamically with your application's incoming traffic, maximizing resource utilization and limiting the environmental impact. These services are not pre-provisioned, allowing for efficient resource allocation. Lambda allows you to choose optimal memory, storage, and processor configurations, further maximizing resource efficiency. With Amazon S3, you can set lifecycle policies to automatically delete stale objects, reducing unnecessary data storage. The scalability and flexibility of these services help you minimize wasted resources and reduce your overall environmental footprint.

Read the Sustainability whitepaper 

Disclaimer

The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.