0% found this document useful (0 votes)
11 views

CC Assignment 5

Ddc

Uploaded by

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

CC Assignment 5

Ddc

Uploaded by

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

ASSIGNMENT NO.

5
Name: Anish Joshirao
PRN No:121B1D054
Sub: Cloud Computing Lab

Title of Assignment:
The increasing demand for cloud applications requires robust systems capable of maintaining
high availability and scalability to ensure optimal performance. Organizations often face
challenges in managing resource allocation during traffic spikes, minimizing downtime
during failures, and ensuring seamless user experiences. This issue is compounded by the
need to balance cost efficiency while scaling resources dynamically. Implementing high
availability and scalability in AWS can address these challenges, providing reliable and
adaptable infrastructure for cloud applications.

Outcome / Learning objectives:


● Learn how to design and implement a highly available and scalable cloud infrastructure
that can automatically scale resources based on demand.
● Understand how to configure Elastic Load Balancers (ELB) to distribute traffic
efficiently across instances and ensure minimal downtime during failures.
● Gain hands-on experience in configuring Auto Scaling to dynamically adjust the
number of EC2 instances based on traffic fluctuations, ensuring optimal performance
and cost-efficiency.
● Explore Multi-AZ and Multi-Region architectures to ensure fault tolerance and
minimize the impact of localized failures.
● Develop a comprehensive understanding of how to balance resource scalability and cost
efficiency while ensuring the reliability and availability of cloud-based applications.

Theory:
High Availability and Scalability in AWS
High Availability (HA) is a design strategy that ensures systems remain operational with minimal
interruption, even in the event of hardware or software failures. HA aims to reduce downtime and
maintain continuous access to applications or services. Key principles of HA include redundancy
(having backup components that can take over if the primary system fails), failover mechanisms
(automatically switching to backup systems when necessary), and distributing resources across
geographic locations to ensure ongoing operations. Metrics like Uptime and Recovery Time
Objective (RTO) measure HA effectiveness, ensuring minimal disruptions and rapid recovery from
failures.

Scalability refers to the system's capability to handle increased workloads by adjusting


resources as needed. This can be achieved through horizontal scalability (adding more
instances to balance the load) or vertical scalability (increasing the capacity of existing
instances). Horizontal scaling is favoured for distributed applications due to its enhanced
fault tolerance, while vertical scaling is simpler but limited by the capacity of a single
machine. AWS offers tools like Auto Scaling and Elastic Load Balancing (ELB) to achieve
scalability by adjusting resources based on demand.
Ensuring High Availability in AWS
AWS offers various services to achieve high availability for applications:
● Multi-AZ Deployments: By deploying resources across multiple Availability Zones
(AZs), AWS ensures that if one AZ fails, others can continue operating seamlessly.
Amazon RDS and ELB support Multi-AZ setups to enhance high availability.
● Elastic Load Balancing (ELB): ELB distributes incoming traffic across multiple
instances. If an instance fails, it automatically routes traffic to healthy instances,
maintaining availability.
● Auto Scaling Groups: Auto Scaling adapts the number of instances based on
demand, providing optimal performance during high traffic and reducing instances
when demand decreases, optimizing cost.
● Amazon Route 53: A scalable DNS service that routes users to the optimal endpoint,
with failover capabilities to redirect traffic if the primary endpoint fails.
● AWS Global Accelerator: This service enhances availability by routing traffic to the
closest AWS endpoint, reducing latency and ensuring reliable cross-region
performance.
Ensuring Scalability in AWS
AWS offers a variety of tools to ensure scalability:
● Auto Scaling: Adjusts the number of EC2 instances based on predefined metrics
(e.g., CPU usage), scaling resources up or down according to traffic, optimizing cost
and performance.
● Elastic Load Balancing (ELB): Essential for horizontal scaling, ELB distributes
traffic across multiple instances. As Auto Scaling adds instances, ELB adjusts traffic
distribution to maintain performance.
● Amazon RDS Read Replicas: For database-heavy applications, read replicas offload
read traffic from the primary database, improving both performance and scalability.
● Amazon S3 & S3 Transfer Acceleration: Provides unlimited storage that
automatically scales with data. S3 Transfer Acceleration speeds up data uploads,
suitable for data-intensive applications.
● AWS Lambda: Automatically scales based on incoming requests, handling any scale
of workload without server management, ideal for unpredictable traffic patterns.
Horizontal vs. Vertical Scalability in AWS
AWS supports both horizontal and vertical scaling. Horizontal scaling, which adds instances
to manage increased load, is more adaptable and fault-tolerant, as it distributes traffic across
multiple resources. Vertical scaling, which involves upgrading capacity within a single
instance (CPU, RAM), is simpler but has physical limitations, making it less scalable than
horizontal scaling.
Configuring High Availability and Scalability in AWS
Best practices to configure HA and scalability in AWS include:
1. Set Up a Multi-AZ Environment: Deploy resources across multiple AZs to ensure
ongoing operation even if one AZ fails (e.g., Amazon RDS and ELB).
2. Implement Auto Scaling Groups: These groups allow resources to scale
automatically, ensuring adequate provisioning during peak demand and cost
efficiency during low demand.
3. Use Load Balancers: ELB distributes traffic evenly, optimizing application
performance and enhancing fault tolerance.
4. Create Database Replicas: For read-heavy applications, read replicas reduce primary
database load and enhance scalability.
5. Monitor and Optimize with CloudWatch: AWS CloudWatch tracks resource
utilization, enabling performance monitoring and scaling actions for optimal
application performance.
6. Utilize Global Services: Services like AWS Global Accelerator and Route 53 ensure
high availability and performance by routing traffic to the nearest endpoint, providing
low latency and reliability for global users.
These configurations ensure AWS environments achieve high availability and scalability,
supporting robust, cost-effective, and reliable cloud infrastructures.

Implementation/ Snapshot:
Creating target groups:
Creating load balancer
Conclusion
In AWS, achieving high availability and scalability is crucial for ensuring that cloud-based
applications are both resilient and adaptable. With services like Multi-AZ deployments, Auto
Scaling, Elastic Load Balancing, and AWS Lambda, AWS provides a comprehensive set of
tools that enable organizations to build highly available, fault-tolerant applications capable of
seamlessly scaling according to demand. By implementing best practices, businesses can
optimize their AWS infrastructure to ensure their applications remain available and
responsive, even during high-demand periods or unexpected failures.

You might also like