Note: Please go to docs.rightscale.com to access the current RightScale documentation set. Also, feel free to Chat with us!
Home > Guides > Dashboard Users Guide > Clouds > AWS Regions > Load Balancing > Actions > Create an AWS Elastic Load Balancer

Create an AWS Elastic Load Balancer

Prerequisites

  • If you have valid Amazon Web Services (AWS) EC2 credentials, you are automatically granted the Elastic Load Balancer service.  No additional service sign ups are required.
  • 'actor' user role privileges

Overview

You can use Amazon's Elastic Load Balancers for load balancing purposes. Windows and Linux ServerTemplates can automatically register and unregister when servers are launched in a deployment or autoscaling array.

For mission critical applications using AWS Elastic Load Balancers, you should configure the ELB to service application servers running in multiple availability zones.

File:12-Guides/Dashboard_Users_Guide/Clouds/AWS_Regions/Load_Balancing_(beta)/Actions/Create_an_AWS_Elastic_Load_Balancer/diag-3tierELB-v1.png

Steps

Create a Load Balancer

  1. Go to Clouds > AWS Region > Load Balancing
  2. Click Create ELB and fill out the required form fields:

 

screen-create-ELB_v1.png

 

General Info

  • Load Balancer name - The name of our Elastic Load Balancer. It must be unique within your AWS account.
  • VPC - The Virtual Private Cloud you'd like to associate to this load balancer.
  • Internal Load Balancer - Select this option to create an internal load balancer. A DNS name will be created and it will contain the private IP address of the load balancer. This option is only available if you set a value for VPC.
  • Subnets - Your load balancer can interface with instances in one or more subnets. Only subnets in the selected VPC are available. This option is only visible if you set a value for VPC.
  • Security Groups - One or more security groups to manage traffic communicating with your load balancer. This option is only visible if you set a value for VPC.
  • Availability Zone(s) - Select all of the availability zones for which the ELB will service. (Tip: Click in the box to view and select additional zones.) An ELB will only load balance across instances in the selected availability zones. An ELB is region-specific; it cannot load balance across multiple regions. For example, you cannot load balance your application traffic amongst instances in the 'us-east' and 'us-west' regions. Note: This field is not displayed if you have selected a value for VPC.

 

Default Listener

  • LB Protocol - The routing transport protocol that will be used by the ELB. (TCP, HTTP, HTTPS)
  • LB Port - External port that the ELB will listen on to accept client requests. Valid ports are 80, 443, 1024-65535.
    • For an example (v13.5 LTS) 3-tier deployment, use HTTP:80.
  • Instance Protocol - The routing transport protocol that the ELB will use to connect to the instances (i.e. application servers) in its load balancing pool. (HTTP, HTTPS, TCP, SSL)  If you are using one of the application ServerTemplates (v12+) published by RightScale, select 'HTTP' for the protocol. Note: The Load Balancer and Instance Protocols must match. You can create additional listener rules after you create the ELB.]
  • Instance Port - The port that the ELB will use to send traffic to the application instances. Valid ports are 1 to 65535. The Instance Port does not have to match the Load Balancer Port. If you are using one of the application ServerTemplates (v12+) published by RightScale, the default application listener port is '8000'.
    • For an example (v13.5 LTS) 3-tier deployment, use HTTP:8000.
  • Stickiness - This is where you can create a session sticky policy for your load balancer (stickiness meaning that once a session starts, all requests will attempt to routed subsequent to the same server for that given session). You can select one of the following options:
    • Disable Stickiness - Does not allow session stickiness the load balancer and application server. 
    • Load Balancer Generated Cookie Stickiness - A special cookie is used to track the backend server instance for each request. When the LB receives a request, it checks to see if this cookie is present in the request. If so, the load balancer sends the request to the application server specified in the cookie. If not, the request is sent to a server chosen based on the existing load balancing algorithm. This option creates a stickiness policy with sticky session lifetime controlled by the lifetime of the browser or a specified expiration period. This only works with HTTP/HTTPS listeners.
    • Application Generated Cookie Stickiness - This is similar to the Load Balancer Generated Cookie Stickiness option, with the following exception: once a cookie is explicitly removed or expires, the session stops being sticky until a new application cookie is issued.
  1. Click Save.
  2. Configure the Health Check test for the ELB and click Save.

screen-ELB_Health_Check-v1.png

Add Additional Listeners (optional)

Elastic Load Balancers support both HTTP and HTTPS (SSL) requests. When you create an ELB, you must define a default listener. If you wish to set up additional listeners (e.g. HTTPS), you can configure them after the ELB is created.

File:12-Guides/Dashboard_Users_Guide/Clouds/AWS_Regions/Load_Balancing_(beta)/Actions/Create_an_AWS_Elastic_Load_Balancer/diag-3tierELB_http_https-v1.png

Listener ports should be defined when your ELB is created. If you are setting up an ELB to load balance across applications servers launched with one of RightScale's v12.11 or v13.5 LTS ServerTemplates, you may need to modify your ELB and add additional listeners, as necessary.

  1. Click on the Elastic Load Balancer you would like to modify. 
  2. Check the configuration of the application ServerTemplate that will be used to launch the application servers that will connect to the ELB. Make sure that the application servers are configured to listen for requests from the ELB on the correct port. You will need to set up the listener appropriately, depending on how the application servers will be configured. (e.g. Application Listen Port (8000), LB_PORT (80), etc.)
  3. To configure HTTP access, add a listener to forward requests to the appropriate port (e.g. 8000) for the application server. Click Add Listener to create a new listener for the ELB.
    • LB Protocol: Select 'HTTP'
    • LB Port: Enter '80'
    • Instance Protocol: Select 'HTTP'
    • Instance Port: Use '8000' (for v12.11 or v13.5 LTS ServerTemplates); use '8080' (for v14 ServerTemplates)
    • Stickiness: You can choose either to have stickiness disabled or generate a sticky session based on either load balancer or application generated HTTP cookies.
  4. To allow HTTPS (SSL) access, add a listener to forward requests to the appropriate port (e.g. 8000) for the application servers. Click Add Listener to create a new listener for the ELB.
    • LB Protocol: Select 'HTTPS'
    • LB Port: Enter '443'
    • Instance Protocol: Select 'HTTPS'
    • Instance Port: Use '8000' (for v12.11 or v13.5 LTS ServerTemplates); use '8080' (for v14 ServerTemplates)
    • Stickiness: You can choose either to have stickiness disabled or generate a sticky session based on either load balancer or application generated HTTP cookies.
    • Certificate: Select an SSL Certificate. See Create an AWS Server Certificate.

Update the DNS Records

Once you've created your ELB, find its DNS name (e.g. elbname-12345678.us-east-1.elb.amazonaws.com) and use it to create a CNAME with your DNS provider. For an ELB, you cannot create a DNS record that points to an IP address because it could change over time.  

  1. Go to the Elastic Load Balancer's Info tab in the RightScale Dashboard. 
  2. Copy the "DNS name" for the ELB. (e.g. elb-name-2005463590.us-west-1.elb.amazonaws.com)

screen-ELB_Info-v2.png

  1. Create a CNAME with your DNS provider (e.g. AWS Route 53, DNS Made Easy, DynDNS, etc.)


Example: Amazon Route 53

screen-ELB_Create_CNAME-v1.png

Create a Security Group for Application Servers

The next step is to create or update a security group that will be used by application servers to allows ingress communication from an ELB. By default, RightScale's Linux-based application ServerTemplates (e.g. PHP, Rails, Tomcat) listen on TCP port 8000 and the Windows-based application ServerTemplate (e.g. Microsoft IIS App) listens on TCP port 80.

  1. Create or modify a security group in the AWS region where the ELB will service requests to the application servers. Later, you will configure the application servers to use this security group in order to connect to the ELB. 
  2. Create the desired port permissions. At a minimum, you will need to open up port 80 for HTTP access. You can also open up 443 for HTTPS (SSL) access. Specify the following information to create a permission for an ELB.
    • Direction: Inbound
    • Protocol: TCP - Group
    • Ports:
      • For v12.11 or v13.5 LTS ServerTemplates, use 8000..8000 (PHP, Rails, Tomcat, Django); 80..80 (Microsoft IIS)
      • For v14 ServerTemplates, use 8080..8080 (PHP, Rails, Tomcat, Django); 80..80 (Microsoft IIS)

    • Owner: amazon-elb
    • Group: amazon-elb-sg

File:12-Guides/Dashboard_Users_Guide/Clouds/AWS_Regions/Load_Balancing_(beta)/Actions/Create_an_AWS_Elastic_Load_Balancer/screen-Security_Group_for_ELB-v1.png

  1. Click Save.
  2. Later, when you set up your application servers and/or server array, be sure to use the above security group for the application servers will connect to the Elastic Load Balancer. 

Note: You cannot add a new security group to a running instance. In such cases, it's recommended that you add the security group to the "next" server and relaunch the server.

You must to post a comment.
Last modified
10:51, 6 Oct 2014

Tags

Classifications

This page has no classifications.

Announcements

None


© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.