Guidance for Multi-Region Application Scaling Using Amazon Aurora
Overview
How it works
These technical details feature an architecture diagram to illustrate how to effectively use this solution. The architecture diagram shows the key components and their interactions, providing an overview of the architecture's structure and functionality step-by-step.
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.
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.
Operational Excellence
Operational excellence in a multi-Region context involves ensuring that your infrastructure operates smoothly across different Regions. Amazon CloudWatch is used to monitor various aspects, including the performance of the Aurora Global Database, the Amazon EKS cluster (such as CPU and memory usage), and incoming requests routed through the Application Load Balancer. Performance insights within Aurora allow for further observation of database performance. Moreover, in configuring this approach, collaboration between Amazon EKS, Application Load Balancer, Aurora Global Database, and Global Accelerator is emphasized to isolate faults in individual partitions. This collaborative effort enhances scalability and resilience, particularly in mitigating the rare but potential occurrence of Availability Zone (AZ) or Region failures.
Security
This Guidance utilizes various AWS services to protect resources and data. Amazon EKS employs Kubernetes Role-Based Access Control (RBAC) to manage access to cluster resources so that only authorized entities can interact with sensitive components. Network security is strengthened through the use of the AWS Transit Gateway and Global Accelerator, which provide secure communication channels between Regions and help mitigate distributed denial of service (DDoS) attacks. Aurora Global Database enhances data security with encryption at rest and in transit, safeguarding sensitive information from unauthorized access. Additionally, AWS Identity and Access Management (AWS IAM) is utilized to manage user permissions and access policies so that only authenticated and authorized users can interact with AWS resources.
Reliability
This Guidance incorporates redundancy and fault tolerance across multiple layers of the architecture. Amazon EKS uses multiple AZs to distribute workloads for high availability and fault tolerance. The use of Aurora Global Database enhances database reliability by replicating data across Regions, minimizing the risk of data loss, and helping to ensure continuity of operations in the event of a Regional outage. Additionally, Global Accelerator routes traffic to healthy endpoints, automatically rerouting traffic away from unhealthy or degraded resources to maintain service availability. Automated scaling mechanisms within Amazon EKS and Application Load Balancer help manage fluctuations in workload demand so that resources are dynamically allocated to meet performance requirements without manual intervention.
Performance Efficiency
This Guidance uses various AWS services and features to streamline resource utilization, enhance scalability, and minimize latency. Amazon EKS employs auto-scaling capabilities to dynamically adjust compute resources based on workload demands. Utilizing add-ons like Horizontal Pod Autoscaler and Karpenter, along with Application Load Balancer, supports automatic and elastic scaling of applications and worker nodes, as well as efficient traffic distribution across healthy targets.
Aurora facilitates scaling database reads across Regions and positioning applications near users. Additionally, Aurora Optimized Reads for Aurora PostgreSQL offers improved query latency by up to 8x and cost savings of up to 30% compared to instances without it.
Global Accelerator further enhances network performance by up to 60% by routing application traffic through the AWS global network infrastructure, simplifying the management of multi-Regional deployments with two static IPs cast from AWS globally distributed edge locations.
Cost Optimization
In this Guidance, cost optimization is facilitated through the strategic utilization of AWS services and features, with a focus on maximizing efficiency while minimizing expenses. With Amazon EKS, Horizontal Pod Auto Scaling and Karpenter enable automatic scaling of applications and worker nodes, optimizing resource allocation to match varying demand levels.
Aurora plays a pivotal role in cost optimization by offering two storage configurations tailored to specific workload requirements. The Aurora Standard configuration delivers cost-effective pricing for applications with moderate I/O usage, while the Aurora I/O-Optimized configuration provides enhanced pricing for I/O-intensive workloads, supporting optimal performance without overspending. The Aurora Autoscaling feature dynamically adjusts read replicas based on application workload fluctuations for efficient resource utilization and minimizing unnecessary expenses.
Furthermore, the use of AWS Graviton Processors, specifically Graviton3 instances, on Aurora and Amazon EKS optimizes price-to-performance ratios, offering significant cost savings while maintaining high performance.
Sustainability
This Guidance deploys and integrates an Amazon EKS cluster and an Aurora Global Database in the AWS Cloud—there is no need to procure any physical hardware. Capacity providers keep virtual “infrastructure” provisioning to a minimum, along with the necessary auto-scaling events should the workloads demand it.
Every pod running on the Kubernetes platform, including the Amazon EKS cluster and the Aurora Global Database, will consume memory, CPU, I/O, and other resources.
Furthermore, by supporting the use of energy-efficient processor instance types, like AWS Graviton Processors, this Guidance provides increased sustainability. Using Graviton in Amazon EC2 and Aurora can improve the performance of workloads with fewer resources, thereby decreasing the user's overall resource footprint.
Disclaimer
Did you find what you were looking for today?
Let us know so we can improve the quality of the content on our pages