What I have learned about High Availability on AWS
Amazon-Web-Services ·This is the ninth post of content for preparing yourself for becoming an AWS Solutions Architect Associate.
In this post, we are going to focus on High Availability features within AWS.
As I have done previously let’s look at the similarities and differences to the closest equivalent in Azure. As I go through this section, I will point out some of the similar platforms.
Elastic Load Balancers (ELB)
Balances network load across virtual machines. Typically public facing.
-
Application - HTTP/HTTPs - layer 7 and application aware. Can balance base on local language or currency - sees the requests within the application to make intelligent routing.
-
Network - TCP traffic where extreme performance is required. Layer 4 device, ultra-low latency. These LB are the most expensive.
-
Classic - legacy ELB. Layer 7 specific features but not application aware. Strict Layer 4 load balancer for TCP. Round-robin use case as an inexpensive. Application LB is the best option in most cases.
X-forward-for header provides the IP information on where it has been forwarded to end user.
504 error is an gateway time out and application has not responded.
Load balancers are given a DNS URL and not a public IP address. This is different from Azure where Load Balancers do have Public IP addresses. In AWS, Load balancers are not free where in Azure a basic load balancer is free.
Registering a Target group in AWS is the same as creating a backend pool in Azure LB.
-
Sticky sessions - bind a users session to a particular EC2 instance. Helpful for shopping sites with shopping carts. If you are testing and only going to a single EC2 instance, disable sticky sessions to troubleshoot.
-
Cross zone load balancing - Will send traffic across availability zones. Creates a better balance across availability zones even if EC2 instances are not balanced between AZs.
-
Path patterns - Direct different traffic using a listener with rules to forward requests based on the URL path. Scenario is a URL for images that are in a different AZ.
Auto Scaling
Three components:
- Groups - logical component
- Configuration templates - launch configuration, size, specifications, security groups for the instances.
- Scaling options - ways to scale, conditions (dynamic) or scheduled.
Scaling Options:
-
Maintain current instance levels at all times - allows for the number of instances to remain the same level. If an instance fails, it will be stopped and another instance will deploy.
-
Scale manually - only the change in max, min, or desired capacity.
-
Scale based on a schedule - based on date and time.
-
Scale based on demand - CPU utilization as an example. Defined parameters for changing conditions.
-
Use predictive scaling - across multiple services. Proactive and reactive approach to scale faster.
Launch configuration is required before creating a scaling group.
High Availability Architecture
-
Plan for failure - everything fails
-
Netflix - simulation tools to introduce failure to make sure HA works. <goo.gl/UR2nzM>
-
Fail-over from one region to another or one availability zone to another with Route 53 doing a heath check.
Cloud Formation
-
Management and governance
-
Templates to deploy workloads such as a WordPress site
-
Enter the parameters, instance types, key pairs, permissions to Create an instance stack.
-
Similar to Azure Marketplace instances and ARM template deployments.
-
AWS Quick starts is the AWS marketplace that launches into CloudFormation.
-
Json Scriping a cloud environment.
Elastic Beanstalk
-
Compute service
-
Application and Platform
-
Upload code
-
Deploys code without needing to know CloudFormation
-
Configure with elastic provisioning and auto-scaling
-
Upload code and Elastic Beanstalk will check code and deploy.
-
No need to worry about the infrastructure. Grow out the infrastructure to fit the need for the application to run.
HA with Bastion
-
Two bastions in two AZ within public subnets behind a network load balancer.
-
Lower cost options is to use an auto scaling group with a minimum of one for the Bastion instance using an elastic IP.
On-premises strategies
-
Database migration service - works with Oracle, MySQL, DynamoDB, etc. Homogenous and heterogenous migration. Oracle - Oracle or Oracle - MySQL.
-
Server migration service - similar to Azure Recovery Service. Migration as well as a DR tool.
-
AWS application discovery service - gather information through a virtual appliance on VMware vCenter to identify dependencies of infrastructure. Map the entire on-premises data center.
-
VM Import/Export - migrate applications to EC2 or export EC2 into data center.
-
Download Amazon Linux to an ISO image - run EC2 in VMware, Hyper-V.
I hope that you are enjoying this information so far. It is helping me to continue to comprehend these services as I prepare for the exam myself. Thank you very much.
Reference links:
What I’ve Learned about IAM on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/20/aws-iam
What I’ve Learned about S3 on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/20/aws-s3
What I’ve Learned about EC2 on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/22/aws-ec2
What I’ve Learned about EBS on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/22/aws-ebs
What I’ve Learned about Cloudwatch on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/22/aws-cloudwatch
What I’ve Learned about RDS on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/03/22/aws-rds
What I’ve Learned about Route 53 on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/04/01/aws-dns
What I’ve Learned about VPC on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/04/01/aws-vpc
What I’ve Learned about High Availability on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/05/01/aws-ha
What I’ve Learned about Applications on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/05/02/aws-apps
What I’ve Learned about Security on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/05/03/aws-security
What I’ve Learned about Lambda and serverless on AWS
https://captainhyperscaler.github.io/amazon-web-services/2022/05/04/aws-serverless