Skip to content
This repository has been archived by the owner on Aug 30, 2024. It is now read-only.

autoscaling 3.3 design

chris grzegorczyk edited this page Feb 4, 2013 · 4 revisions

Table of Contents

Overview

This design covers our implementation of AWS Auto Scaling.

Tracking

Status Draft
Updated 2012/12/19 Initial document, focus is preparation for Sprint 1
Updated 2013/01/28 Updated for Sprint 2 functionality (which was previously for Sprint 1)
Updated 2013/02/01 Updated with Sprint 2 final details

Out of Scope

Implementation of items related to features that we do not support are out of scope. These features are:

  • IAM Roles
  • Placement groups
  • Spot Instances
  • SNS
  • VPC

Feature Dependencies

  • EC2 - Verifying metadata, managing instances, tagging
  • ELB - health check type

Related Features

This feature relates to the following features in this release:

  • EC2 - Tagging / Filtering
  • EC2 - Instance health checking
  • CloudWatch
  • ElasticLoadBalancing

Implementation Summary

Item Value Notes
Version 2011-01-01 Version of AutoScaling API supported
DB eucalyptus_autoscaling
Source modules scaling Contents under com.eucalyptus.scaling package
  scaling-common Contents under com.eucalyptus.scaling.common package
Service class AutoScalingService
Component ID class AutoScaling
Service type name autoscaling
Service URIs /services/AutoScaling SOAP / Query API
  /internal/AutoScaling SOAP / Query API
Eucarc variable name AWS_AUTO_SCALING_URL
Properties prefix autoscaling

Analysis

Open Issues

  • Are we implementing metrics operations? ( DescribeMetricCollectionTypes, DisableMetricsCollection, EnableMetricsCollection )
  • Are we supporting CW of auto scaling?
  • Are we supporting "pagination" for describe operations?
  • Where are ARNs supported instead of names? (are ARNs supported for the policy name in PutScalingPolicy?)

Design

Entities

The following entities will be added:

  • Launch configuration
  • Auto scaling group
  • Auto scaling policy

Service Impact

New SOAP / Query API user facing services are added.

Supported Operations

For more information on administrative support by operation, see Administrative Functionality below.

Operation Policy Enforced Admin Enabled Notes
CreateAutoScalingGroup Y Placement group, VPC Zone Identifier not supported.
CreateLaunchConfiguration Y Spot Price, IAM Instance Profile, EBS Optimized not supported.
DeleteAutoScalingGroup Y Y
DeleteLaunchConfiguration Y Y
DeletePolicy Y Y
DescribeAdjustmentTypes Y
DescribeAutoScalingGroups Y Y
DescribeLaunchConfigurations Y Y
DescribePolicies Y Y
DescribeTerminationPolicyTypes Y
ExecutePolicy Y Y
PutScalingPolicy Y
SetDesiredCapacity Y Y
UpdateAutoScalingGroup Y Y Placement group, VPC Zone Identifier not supported.

Integration Areas

IAM

Item Value Notes
Vendor autoscaling Prefix for actions, e.g. autoscaling:DescribeLaunchConfigurations
Resources launchconfiguration
  autoscalinggroup
  scalingpolicy
Actions autoscaling:* We will permit use in policy of any actions from the supported API version
Quotas autoscaling:quota-launchconfigurationnumber
  autoscaling:quota-autoscalinggroupnumber
  autoscaling:quota-scalingpolicynumber

The ARN of an Auto Scaling resource has the form:

  arn:aws:autoscaling::<account id>:<resource type>/<resource id>:[<name>/<value>]+

An example policy for service access:

    {
       "Statement":[{
          "Effect":"Allow",
          "Action":"autoscaling:*",
          "Resource":"*"
       }]
    }

Eucalyptus Extensions

IAM

Support for quotas and resource (see above)

An example policy for limiting auto scaling groups:

    {
      "Statement":[{
        "Effect":"Limit",
        "Action":"autoscaling:createautoscalinggroup",
        "Resource":"*",
        "Condition":{
          "NumericLessThanEquals":{
            "autoscaling:quota-autoscalinggroupnumber":"2",
          }
        }
      }]
    }

Administrative Functionality

We will extend the standard functionality for administrative purposes.

Listing Resources

The following operations will support listing of all accounts/users item:

  • DescribeLaunchConfigurations
  • DescribeAutoScalingGroups
  • DescribePolicies
To enable this the parameter verbose is passed as a name selector.

Deleting Resources

The following operations will support administrative deletion of resources:

  • DeleteLaunchConfiguration
  • DeleteAutoScalingGroup
  • DeletePolicy
For administrative deletion the ARN of the resource must be used (not the simple name), e.g.:
  arn:aws:autoscaling::013765657871:launchConfiguration:6789b01a-a9c9-489f-9d24-ed39533fca61:launchConfigurationName/Test

Updating Resources

The following operations will support administrative update of resources:

  • ExecutePolicy
  • SetDesiredCapacity
  • UpdateAutoScalingGroup
For administrative deletion the ARN of the resource must be used (not the simple name)

Configuration

No configuration properties noted.

Upgrade

No upgrade impact noted.

Packaging

No specific packaging requirements.

Documentation

Administrative functionality should be documented.

Security

Use of ARN in place of simple name adds risk of permitting deletion of other accounts resources.

Testing

No specific test cases noted.

References

tag:rls-3.3



Clone this wiki locally