Load Balancers
3 different types of Load Balancers:
Load Balancers
Advanced Load Balancers Theory - Sticky Sessions
Sticky Sessions enable your users to stick to the same EC2 instance. Can be useful if you are storing information locally to that instance.

Advanced Load Balancers Theory - Cross Zone Load Balancing
Cross Zone Load Balancing enables you to load balance across multiple AZ.

Advanced Load Balancers Theory - Path Patterns
Path Patterns allow you to direct traffic to different EC2 instances based on the URL containted in the request.

HA Architecture

CloudFormation
CloudFormation Drift Detection
AWS CloudFormation Drift Detection can be used to detect changes made to AWS resources outside the CloudFormation Templates. AWS CloudFormation Drift Detection only checks property values that are explicitly set by stack templates or by specifying template parameters. It does not determine drift for property values that are set by default. To determine drift for these resources, you can explicitly set property values which can be the same as that of the default value.
Elastic Beanstalk
With AWS Elastic Beanstalk, you can quickly deploy and manage (web) applications in the AWS Cloud without worrying about the infrastructure that runs those applications. You simply upload your application, and AWS Elastic Beanstalk automatically handles the details of capacity provisioning, load balancing, scaling, and application health monitoring.
Elastic Beanstalk also supports the deployment of web applications from Docker containers.
OpsWorks
AWS OpsWorks Stacks lets you manage applications and servers on AWS and on-premises. With OpsWorks Stacks, you can model your application as a stack containing different layers, such as load balancing, database, and application server. You can deploy and configure Amazon EC2 instances in each layer or connect other resources such as Amazon RDS databases.
A stack is basically a collection of instances that are managed together for serving a common task.
Consider a sample stack whose purpose is to server web applications. It will be comprised of the following instances:
High Availability with Bastion Hosts 1 [SAA-C02]

High Availability with Bastion Hosts 2 [SAA-C02]
One host in one AZ behind an Auto Scaling group with health checks and a fixed EIP. If the host fails, the health check will fail and the Auto Scaling group will provision a new EC2 instance in a separate AZ. You can use a user data script to provision the same EIP to the new host. This is the cheapest option, but it is not 100% fault tolerant.

On-Premises strategies with AWS [SAA-C02]
AWS services you can use on-premises