0% found this document useful (0 votes)
19 views3 pages

Assignment 3

The document outlines the design of a scalable and serverless photo album application on AWS, utilizing services like Amazon S3 for storage, AWS Lambda for event-driven processing, and Amazon DynamoDB for a cost-effective database solution. It emphasizes the use of AWS Elastic Load Balancing for optimal traffic distribution and Amazon CloudFront to enhance global response times. Additionally, it proposes a media transformation workflow involving Lambda, SQS, and Fargate for efficient processing and future video support using AWS Elemental MediaConvert.

Uploaded by

huyquangph2004
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views3 pages

Assignment 3

The document outlines the design of a scalable and serverless photo album application on AWS, utilizing services like Amazon S3 for storage, AWS Lambda for event-driven processing, and Amazon DynamoDB for a cost-effective database solution. It emphasizes the use of AWS Elastic Load Balancing for optimal traffic distribution and Amazon CloudFront to enhance global response times. Additionally, it proposes a media transformation workflow involving Lambda, SQS, and Fargate for efficient processing and future video support using AWS Elemental MediaConvert.

Uploaded by

huyquangph2004
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

# Designing a Scalable and Serverless Photo Album Application on AWS

1. Storage with Managed Cloud Services

We will use Amazon S3 (Simple Storage Service) for storing photo and media assets. S3 is a highly
scalable, durable, and cost-effective object storage service, and it integrates seamlessly with other AWS
services.

2. Scalability to Handle Increasing Demand (serverless/event-driven solution)

To cope with the expected growth, we will use AWS Lambda and other serverless services that
automatically scale based on incoming traffic. AWS Lambda is event-driven and executes code in
response to triggers, allowing it to handle varying workloads efficiently. By adopting a serverless
approach, your application will automatically scale up and down as needed, minimizing the need for
manual intervention.

3. Load Balancing to Maintain Optimal Compute Capacity

We will utilize AWS Elastic Load Balancing (ELB) to distribute incoming traffic across multiple instances,
ensuring the desired load stays between 50% and 60%. ELB automatically scales with demand, providing
seamless load distribution and high availability.

4. Adopting a Serverless/Event-Driven Solution

As mentioned earlier, AWS Lambda will play a central role in the architecture. It will be used to handle
various events, such as photo uploads, media processing triggers, and more. Additionally, AWS Step
Functions can be employed to orchestrate complex workflows involving multiple Lambda functions.

5. Cost-Effective Database Solution

Considering the simple table structure, we recommend migrating from a traditional relational database
to Amazon DynamoDB. DynamoDB is a fully managed NoSQL database that offers low-latency, high-
performance access, and cost-effectiveness for read and write operations.
6. Improving Global Response Times

To improve response times in different regions worldwide, we will utilize Amazon CloudFront, a content
delivery network (CDN). CloudFront caches and delivers your media assets from edge locations close to
your end-users, reducing latency and improving user experience.

7. Future Handling of Video Media

To support video media in the future, we recommend using AWS Elemental MediaConvert. It is a
serverless video transcoding service that can automatically convert uploaded videos to various formats,
resolutions, and bitrates.

8. Media Reprocessing and Transformation

For reformatting and transcoding media, we propose the following design:

a. Event-Driven Transformation: Upon media upload to S3, an S3 event trigger will invoke a Lambda
function to start the media transformation process.

b. Lambda-based Media Processing: The Lambda function will be responsible for identifying the type of
media and creating a corresponding job in an Amazon Simple Queue Service (SQS) queue.

c. Decoupled and Scalable Worker Nodes: Multiple EC2 instances (worker nodes) will be configured to
listen to the SQS queue for incoming transformation jobs. Each EC2 instance can be specialized for a
specific task (e.g., video transcoding, image resizing). This ensures efficient utilization of resources and
parallel processing.

d. Dynamic Job Allocation: To accommodate potential AI-based tagging or other processing services in
the future, we can leverage AWS Elastic Container Service (ECS) or AWS Fargate. These managed
container services can be used to deploy and manage custom processing tasks without worrying about
the underlying infrastructure.
Workflow:

User → AWS API Gateway → Lambda → SQS (media stored when triggered by lambda) → Fargate →
SQS → fargate

Lambda → S3 → CloudFront → user

Lambda → DynamoDB

You might also like