Eucalyptus vs. AWS - Load Balanced, AutoScaled Deployment

Follow

Eucalyptus Versions: 4.0

Difference Between Eucalyptus and AWS When Deploying a Load Balanced, AutoScaled Application

Eucalyptus provides an AWS-compatible Elastic Load Balancing and AutoScaling service.  Both of these services mimic the same services provided on AWS.  Therefore, just as on AWS, cloud users on Eucalyptus can deploy a load-balanced, autoscaled application. As mentioned in a previous knowledge base article discussing the differences between Eucalyptus and AWS Elastic Load Balancing service, there is also a difference when deploying this environment on Eucalyptus compared to AWS.  This article will cover the minor (but helpful) difference experienced between these two environments.

To create a load balanced, autoscaled environment, both a load balancer and autoscaling group are needed.  The proper steps to create this environment is as follows:

  1. Create an Elastic Load Balancer (ELB)
  2. Create an AutoScaling Group, passing the ELB name to associate the autoscaling group to the ELB.

Amazon Web Services (AWS) Environment

On AWS, if a cloud user creates the AutoScaling group first, the autoscaling group will not launch the autoscaling instance until the ELB is created.  For example:

  1. Create the AutoScaling group, and associate it with the non-existent ELB 'NginxLoadBalancer':

    aws autoscaling create-auto-scaling-group --auto-scaling-group-name NginxScalingGroup --launch-configuration-name NginxLaunchConfiguration --min-size 1 --max-size 1 --load-balancer-names NginxLoadBalancer --health-check-type ELB --health-check-grace-period 300 --availability-zones us-east-1b

  2. Check the autoscaling group and notice that the autoscaling instance never launches:

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names NginxScalingGroup
    AUTOSCALINGGROUPS arn:aws:autoscaling:us-east-1:048212016277:autoScalingGroup:aeb4681d-8653-4087-bb35-604107300d55:autoScalingGroupName/NginxScalingGroup NginxScalingGroup 2014-07-14T09:56:57.327Z 300 1 300 ELB NginxLaunchConfiguration 1 1 None
    AVAILABILITYZONES us-east-1b
    LOADBALANCERNAMES NginxLoadBalancer
    TERMINATIONPOLICIES Default

  3. Once the ELB is launched, a few minutes later, the autoscaling instance will be created:
    • aws elb create-load-balancer --load-balancer-name NginxLoadBalancer --availability-zones us-east-1b --listeners Protocol=http,LoadBalancerPort=80,InstanceProtocol=http,InstancePort=80
      NginxLoadBalancer-552006549.us-east-1.elb.amazonaws.com
    • aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names NginxScalingGroup
      AUTOSCALINGGROUPS arn:aws:autoscaling:us-east-1:048212016277:autoScalingGroup:aeb4681d-8653-4087-bb35-604107300d55:autoScalingGroupName/NginxScalingGroup NginxScalingGroup 2014-07-14T09:56:57.327Z 300 1 300 ELB NginxLaunchConfiguration 1 1 None
      AVAILABILITYZONES us-east-1b
      INSTANCES us-east-1b Healthy i-8f3117a4 NginxLaunchConfiguration Pending
      LOADBALANCERNAMES NginxLoadBalancer
      TERMINATIONPOLICIES Default
    • aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names NginxScalingGroup
      AUTOSCALINGGROUPS arn:aws:autoscaling:us-east-1:048212016277:autoScalingGroup:aeb4681d-8653-4087-bb35-604107300d55:autoScalingGroupName/NginxScalingGroup NginxScalingGroup 2014-07-14T09:56:57.327Z 300 1 300 ELB NginxLaunchConfiguration 1 1 None
      AVAILABILITYZONES us-east-1b
      INSTANCES us-east-1b Healthy i-8f3117a4 NginxLaunchConfiguration InService
      LOADBALANCERNAMES NginxLoadBalancer
      TERMINATIONPOLICIES Default
    • style="font-family: monospace;"aws autoscaling describe-auto-scaling-instances
      AUTOSCALINGINSTANCES NginxScalingGroup us-east-1b HEALTHY i-8f3117a4 NginxLaunchConfiguration InService

 

Eucalyptus Environment

On a Eucalyptus cloud environment, if a cloud user tries to deploy an autoscaling group and attempts to associate it with a non-existent ELB, the following result will occur:

# euscale-create-auto-scaling-group NginxScalingGroup --launch-configuration NginxLaunchConfig --min-size 2 --max-size 3 --load-balancers NginxLoadBalancer --health-check-type ELB --availability-zones ViciousLiesAndDangerousRumors
euscale-create-auto-scaling-group: error (ValidationError): Invalid parameters [Invalid load balancer name(s): [NginxLoadBalancer]]

Eucalyptus checks to see if the ELB exists.  If it doesn't exist, then the AutoScaling group will not be created. 

Have more questions? Submit a request

Comments

Powered by Zendesk