As we learned in earlier articles, Amazon offers resizable compute capacity in the cloud. To help with EC2 Elastic Computing resources, Amazon offers Auto Scaling, a service that allows launching or terminating EC2 instances based on user preferences and user-defined schedule. This allows the applications that are running on EC2 instances to scale up with increased traffic and scale down when traffic dies down. This also facilitates keeping costs down since the infrastructure only runs when there is a need. Auto scaling is suitable for applications where there are spikes in traffic.
Auto scaling can be configured to invoke/decommission EC2 instances depending on Amazon CloudWatch metrics, or according to a schedule.
Auto scaling supports replacing unhealthy/unavailable instances allowing maintenance of application availability.
Auto Scaling is automatically enabled by Amazon CloudWatch. There are no fees associated with Auto Scaling.
How to Use Auto Scaling
Auto scaling does not need any special sign up, if the user has already signed up for Amazon EC2 service. Auto Scaling can be used by any of the following:
- Downloading the Auto Scaling command line tools and invoking commands
- By creating an Auto Scaling Group and creating a Launch Configuration for the group using commands
- By creating an alarm in CloudWatch to spin up new instances or remove instances depending on the condition being monitored.
When to Use Auto Scaling
Auto scaling is applicable for the following use cases:
- When you want to automatically scale your AWS EC2 fleet.
- When you want to ensure that a fixed number of EC2 instances are minimally run.
- When you want to pair Auto Scaling with Elastic Load Balancing.
The best part of Auto Scaling is that there are no separate fees for using Auto Scaling.
Auto Scaling Groups
Auto Scaling Group is a logical grouping of EC2 instances that are managed together. For each scaling group, we need to define the minimum, maximum, and the desired number of running EC2 instances. A scaling plan needs to be created for each auto scaling group.
.NET API documentation for Auto Scaling
Amazon offers APIs in all popular languages including .NET.
The Auto Scaling documentation for .NET is available at http://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html.
To ensure that the right APIs are available in a project, include the following Auto Scaling namespaces in the project.
- To create a launch configuration, call the API CreateLaunchConfiguration in the Amazon.AutoScaling.AmazonAutoScaling namespace (http://docs.aws.amazon.com/sdkfornet/latest/apidocs/html/M_Amazon_AutoScaling_AmazonAutoScaling_CreateLaunchConfiguration.htm)
- Next, create an Auto Scaling Group using the CreateAutoScalingGroup API (http://docs.aws.amazon.com/sdkfornet/latest/apidocs/html/M_Amazon_AutoScaling_AmazonAutoScaling_CreateAutoScalingGroup.htm)
- Describe the Auto Scaling Group using the DescribeAutoScalingGroups API (http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingGroups.html)
- Describe the instances in the Auto Scaling Group using the DescribeAutoScalingInstances (http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingInstances.html)
In this article, we learned about the basics of AWS Auto Scaling and explored an overview of the APIs required to perform Auto Scaling basics. I hope you have found the article useful.