To create an alert-based server array.
Alert-based server arrays are typically used to set up an application tier for autoscaling purposes.
To create a server array, go to Manage -> Arrays. You will need to select the cloud infrastructure or region where the server array instances will be launched. Instances that are launched in an array must exist in the same region, but can be dispersed across multiple availability zones within the same region. You will add the server array through the Add Server Array Assistant.
Provide the following information:
ServerTemplate - Choose the template that you would like to use in order to scale your deployment. This ServerTemplate will be used to create the new servers that will be added to the server array. Since you are scaling the number of application servers, you will need to select the latest version of the appropriate (PHP/Rails/Tomcat) application ServerTemplate, not a frontend ServerTemplate. (If you need to make changes to the template, you will need to clone it.)
Note: Make sure that the Inputs for the ServerTemplate are properly configured and that they will boot correctly.
Server Details Tab
Cloud - Each array must be associated with a cloud or cloud region.
SSH Key & Security Group - Specify the appropriate SSH key and Security Group(s) that will be attached to the array (if required by the cloud provider).
Datacenter / Zone or Availability Zone - Choose a datacenter / zone or availability zone within your cloud (if required by the cloud provider). If "weighted across..." is chosen, you may then fill the Instance allocation fields and Max instances for each in the Array Details tab.
Array Details Tab
Status - The status of the server array. If active (enabled), the server array is allowed to respond to triggered alert conditions and autoscale. For alert-based arrays, if you disable an array with running instances, the server array will no longer be able to scale up or down, but the instances will continue to run until they are manually terminated. If you are setting up the server array for the first time, you may want to manually launch a few application servers into the array to make sure that the configurations are correct before you enable the server array. For example, you do not want to enable a server array with a minimum count of 10 and have all of the servers strand in booting because of a bad configuration.
Warning! If a server array is enabled and an instance strands in booting and does not become operational, additional instances will be launched into the array until there are enough operational servers that meet the minimum count or the maximum count is reached. Therefore, it's strongly recommended that you test the array's configuration and manually launch a few servers into the array before you enable it and make it active.
Min Count - The minimum number of active servers that must exist at all times in the server array. If all of your application servers are going to be launched into the server array, you should set the minimum count to two (2) where each server is launched into a different zone (if supported by the cloud) so that your site will remain functional if one of the application servers goes down.
Max Count - The maximum number of active servers that must exist at all times in the server array.
Array Type - Specify alert-based or queue-based arrays. Secondary options will change accordingly.
Instance Allocation* - Give the percentage probability you would like for a new instance to land in the given datacenter / zone or availability zone.
Max instances* - Maximum number of instances that may be launched in the given datacenter / zone or availability zone.
*For Weighted Arrays - If "Weighted across availability zones" was chosen in the previous Server Details tab, you can set percentages of instance allocation that total 100% and specify a max number of instances for each availability zone.
Array Type Details
Decision threshold - The elasticity decision threshold is the percentage of servers that must agree in order to trigger an alert before an action is taken. Each server can vote once for a particular alert. Default = 51%. We recommend setting this value to 51% or larger in order to ensure that the majority of your servers agree before action is taken. The decision threshold prevents unnecessary "scale ups" because of one outlier server that is out of control. This is what we mean when we say that we scale democratically.
Choose voters by tag - The Voters Tag that RightScale will use in order to determine when to scale up/down. For example, the elasticity daemon will look for all Servers using the specified tag (e.g. MyArray) when counting the number of votes for a scale/up action. When the number of votes for a particular scaling action (e.g. grow) exceeds the decision threshold, the server array will automatically scale based on the specified resize parameters.
Resize by - The resize parameter defines how many servers you want to launch when you scale. When a decision is made to "grow an array," we recommend launching at least 2 servers in order to ensure that a significant impact will be made to your setup. Remember, if your deployment needs more server resources, it's better to overcompensate than under-compensate. Similarly, if you have larger setups or you have a predictable scaling pattern (ex: 5 servers at a time), you also have the flexibility to scale in bulk. See Server Array Schedule.
Resize Up by: Number of servers to scale up by
Resize Down by: Number of servers to scale down by
Note: Typically, you will want to resize down more conservatively than how you resize up so that you don't accidentally terminate too many instances that would either degrade your site's performance or immediately result in a resize up action.
Resize calm time - The calm time defines how long you want to wait before you repeat another action. Since it takes a few minutes for a new server to be launched and become fully operational, you'll want to give yourself a buffer before another action can be taken. For normal situations, we recommend using a calm time of 15 minutes.
Test the Server Array
Before you enable the server array and make it active, it's important to first test the configuration of the server array.
- Go to the server array and click the Launch button to manually launch a single instance into the array.
- If the server becomes operational, it's probably safe to enable the array. If the server becomes stranded in booting, you should troubleshoot the problem by looking into its audit entries. Terminate the instance and fix the array's configuration. Repeat the steps above until you are able to successfully launch a single instance.
Note: If you are using load balancing service like Rackspace Cloud Load Balancers and are setting up the deployment for the first time, you should not enable the array until you have created your CLB.