AWS High Availability Tips
Changing the health of an Ec2 instance for Auto-scaling groups.
You can change the status of an instance using Auto-scaling commands. For example the set-instance-health will change the health of the instance to healthy. This can be used if a machine rebooted or has an error and it was manually fixed.
Auto scaling AddToLoadBalancer while suspended
When AddToLoadBalancer is suspended, Auto scaling launches instances but does not add them to the load balancer or target group. If the AddToLoadBalancer process is resumed Auto Scaling resumes adding instances to the load balancer or target group when they are launched. Auto Scaling does not add the instances that were launched while the AddToLoadBalancer process was suspended. Those instances should be added manually.
Avoiding potential service disruptions using auto scaling
In order to prevent service disruptions when you are expecting high traffic. It is recommended that you check the service limits in Trusted Advisor and adjust it as necessary so the forcasted count remains within limits. This will allow your account not to get unexpected overages in billing. It will also confirm that you have the correct number of instances that can be used when you expect the traffic.
Maintaining HA on AWS infrastructure
You can do the following to maintain High Availability on AWS
- Leverage CloudFront for delivery of content.
- Add RDS read-replicas to forward read traffic that go to your relational database.
- Leverage Elastic Cache for caching frequently used data from your users.
Legacy application fail-over on AWS without reconfiguration
The following mechanisms will allow the application to failover to new instances with out the need for reconfiguration.
- You should create a secondary ENI that can be moved to a failover instance.
- You can Assign a secondary private IP address to the primary ENI that can be moved to a failover instance.
When you move a network interface from one instance to another, the network traffic is redirected to the new instance.
Spot instances
Spot instances are cost effective choice when comparing it to On-Demand instances. You can set up Auto Scaling to launch spot instances if needed.
ELB connection draining
When connection draining is enabled you can specify a maximum time for the load balancer to keep connections alive before reporting the instance as de-registered. The maximum timeout value can be set between 1 and 3,600 seconds the default is 300 seconds. When the time limit is reached, the load balancer is forcibly closed connections to the de-registered instanced.
Registering Ec2 Instances with an AWS ELB
You register targets, such as instances with a target group. To route requests to the targets in a target group, specify the target group in a rule for one of the listeners for your load balancer.
Health check settings are defined for your load balancer on a per target group basis. Each target group uses the default health check settings, unless you override them when you create the target group or modify them later on.
Processes performed by auto scaling
- Schedule Actions
- HealthCheck
- AddToLoadBalancer
DescribeInstanceHeatlh — Elastic Load Balancing API property
This describes the state of the specified instances with respect to the specified load balancer. If no instances are specified, the call describes the state of all instances that are currently registered with the load balancer.
Cross Region Replication
CRR is a Amazon S3 feature that allows for automatic replication of data across AWS regions. While using this feature every object loaded to an S3 bucket is automatically replicated to a destination bucket in a different AWS region you choose. CRR can be used to provide lower-latency data access in different geographic regions.
Multi-AZ database support
Multi-AZ is supported for MySQL, MariaDb, Oracle and PostgreSQL. If you want to use Microsoft SQL Server you need to use the native mirroring to achieve High Availability.
Scaling the compute resources of a DB instance
Storage capacity allocated to your DB instance can be increased while maintaining DB instance availability. The database will be temporarily unavailable while the DB instance class is scaled up or down. This period of unavailability typically lasts only a few minutes, and will occur during the maintenance window for your DB instance, unless you specify that the modification should be applied immediately.
List of Different AWS SQS Services
Basic Message Operations
- SendMessage: Send messages to a specified queue.
- ReceiveMessage: Return one or more messages from a specified queue.
- DeleteMessage: