# How to create an application load balancer?

To create an Application Load Balancer, follow the steps below:

**Step 1:** [Login](https://customer.acecloudhosting.com/index.php?m=ace_product_register_addon\&action=login) to your account.

**Step 2:** Navigate to **Networks** and then click on **Load Balancer**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FY3bwycDWjhroZvsjkCKM%2Fimage.png?alt=media&#x26;token=9190c4bf-13c9-40a5-907d-0ca7ed411591" alt=""><figcaption></figcaption></figure>

**Step 3:** Click **Create Load Balancer**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FBFIKH7NcVvJZhUJmRSSN%2Fimage.png?alt=media&#x26;token=7458426b-d660-49fc-855d-c1516d01cef6" alt=""><figcaption></figcaption></figure>

**Step 4:** Select **Application Load Balancer** and click **Next**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FakXpLRm4TmMiuS2rfLFN%2Fimage.png?alt=media&#x26;token=03c0501f-1a4d-47e3-8192-7207c57e482e" alt=""><figcaption></figcaption></figure>

**Step 5:** Enter the **Load Balancer Type Details** and click **Next**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2F1TB4Zcpr1JQPivaqzYVg%2Fimage.png?alt=media&#x26;token=91aa2c4e-a48c-4e17-904b-d9b0203c6268" alt=""><figcaption></figcaption></figure>

| **Field**         | **Description**                                |
| ----------------- | ---------------------------------------------- |
| Name\*            | Name of the Load Balancer                      |
| Description       | Description of the Load Balancer               |
| IP Address type\* | Select IP address type from IPv4 and Dualstack |
| Subnet\*          | Select a subnet from the available networks.   |

**Step 6:** Enter the **Listener Details** and click **Next.**

**Note:** If you do not want to create a listener, disable the toggle and click **Next**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FrdxHKgVKNUAUtjXWfRhT%2Fimage.png?alt=media&#x26;token=7bac28d6-4a1b-4d01-b576-91cdf5325cac" alt=""><figcaption></figcaption></figure>

| **Field**                      | **Description**                                                                                                                                                                                           |
| ------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Listener Name\*                | Enter the name of the Listener.                                                                                                                                                                           |
| Listener Description           | Enter the description of the Listener.                                                                                                                                                                    |
| Listener Protocol\*            | <p>Select a protocol for the listener from the below options:</p><ol start="1"><li>HTTP</li><li>HTTPS</li><li>TERMINATED\_HTTPS</li></ol>                                                                 |
| Listener Port\*                | The protocol port number for the resource. The default is 1.                                                                                                                                              |
| Client Data Timeout (in ms)    | Enter client inactivity timeout in milliseconds. The default is 50000.                                                                                                                                    |
| TCP Inspect Timeout (in ms)    | Enter time, in milliseconds, to wait for additional TCP packets for content inspection. The default is 0.                                                                                                 |
| Member Connect Timeout (in ms) | Enter member connection timeout in milliseconds. The default is 5000.                                                                                                                                     |
| Member Data Timeout (in ms)    | Enter member inactivity timeout in milliseconds. The default is 50000.                                                                                                                                    |
| Allowed CIDRs                  | Enter a list of IPv4, IPv6 or mix of both CIDRs.                                                                                                                                                          |
| Connection Limit\*             | The maximum number of connections permitted for this listener. Default value is -1 which represents infinite connections.                                                                                 |
| TLS Cipher String\*            | Enter List of ciphers in OpenSSL format and it should be colon-separated.                                                                                                                                 |
| Insert Headers                 | <p>Select the headers to insert into the request before it is sent to the member from the below option:</p><ol start="1"><li>X-Forwarded-For</li><li>X-Forwarded-Port</li><li>X-Forwarded-Proto</li></ol> |

**Step 7:** Enter **Pool Details**, **Server Monitor Health** details, and click **Next.**

**Note:**

1. If you have not created a **Listener**, you will not be able to create a **Pool** and a **Monitor**.
2. If you have not created a Pool, you will not be able to create a Monitor.
3. If you do not want to create a Pool and Monitor, disable the toggle and click Next.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FEQCMIwPXqLimf3BFGY51%2Fimage.png?alt=media&#x26;token=e9596db1-d775-4bdf-bf60-5fef7b63d432" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FFyHmkScq3MAcmaF36uPb%2Fimage.png?alt=media&#x26;token=09f86a06-e5e2-4236-a7c0-da5c2f8841de" alt=""><figcaption></figcaption></figure>

| **Field**           | **Description**                                                                                                                                                                                                                                 |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Pool Name\*         | Enter the name of the Pool.                                                                                                                                                                                                                     |
| Pool Description    | Enter the description of the pool.                                                                                                                                                                                                              |
| Pool Algorithm\*    | <p>Select the load balancing algorithm for the pool from the below options:</p><ol start="1"><li>Least connections</li><li>Round robin</li><li>Source IP</li></ol>                                                                              |
| Pool Protocol\*     | <p>Select a protocol for the pool from the below options:</p><ol start="1"><li>HTTPS</li><li>PROXY</li><li>PROXYV2</li><li>TCP</li></ol>                                                                                                        |
| TLS Enabled         | <ul><li>Select <strong>YES</strong> to enable TLS, enabling it will help member to use TLS encryption.</li><li>Select <strong>NO</strong> to disable TLS.</li></ul>                                                                             |
| TLS Cipher String   | Enter List of ciphers in OpenSSL format and it should be colon-separated.                                                                                                                                                                       |
| Session Persistence | <p>Select a JSON object specifying the session persistence for the pool from the below options:</p><ol start="1"><li>HTTP Cookie</li><li>APP Cookie</li><li>Source IP</li></ol>                                                                 |
| Cookie Name\*       | Enter the name of the cookie to use for session persistence.                                                                                                                                                                                    |
| Monitor Name\*      | Enter the name of the Health Monitor.                                                                                                                                                                                                           |
| Monitor Protocol\*  | <p>Select a protocol for the health monitor from the below options:</p><ol start="1"><li>HTTP</li><li>HTTPS</li><li>PING</li><li>TCP</li><li>TLS-HELLO</li><li>UDP-CONNECT</li><li>SCTP</li></ol>                                               |
| Max Retries Down\*  | Enter the number of allowed check failures before changing the operating status of the member to ERROR. A valid value is from 1 to 10. The default is 3.                                                                                        |
| Delay (in sec.)\*   | Enter the interval, in seconds, between health checks. The default is 10.                                                                                                                                                                       |
| Max Retries\*       | Enter the number of successful checks before changing the operating status of the member to ONLINE. The default is 1.                                                                                                                           |
| Timeout (in sec.)\* | The time, in seconds, after which a health check times out. The default is 5.                                                                                                                                                                   |
| HTTP Method         | <p>Select the HTTP method that the health monitor uses for requests from the below options:</p><ol start="1"><li>GET</li><li>HEAD</li><li>POST</li><li>PUT</li><li>DELETE</li><li>TRACE</li><li>OPTIONS</li><li>PATCH</li><li>CONNECT</li></ol> |
| Expected Codes\*    | Enter the HTTP status codes expected in response from the member to declare it healthy. The default is 200.                                                                                                                                     |
| URL Path\*          | Enter the HTTP URL path of the request sent by the monitor to test the health of a member. Must be a string that begins with a forward slash. The default URL path is /.                                                                        |

**Step 8:** Enter the details of the backend servers and click **Next.**

**Note:**

1. If you have not created a **Pool**, you will not be able to create **Backend Servers**.
2. If you do not want to create **Backend Servers,** disable the toggle and click **Next**.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2Fjej4uhtEsbFSmR3WOjqo%2Fimage.png?alt=media&#x26;token=58f59a1f-13a3-4d41-bb12-eb4a5e37ca2f" alt=""><figcaption></figcaption></figure>

| **Field**         | **Description**                                                                                                                       |
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Add Servers\*     | Select the servers from the dropdown.                                                                                                 |
| Specific IP       | Enter the specific IP you want to Add and click on **Add** button.                                                                    |
| Name              | Name of the server.                                                                                                                   |
| IP Address        | IP address of the server.                                                                                                             |
| Associated Subnet | Name of the subnet, associated with the server.                                                                                       |
| Specific Port\*   | Enter the specific port you want to add.                                                                                              |
| Monitor Address   | Enter an alternate IP address used for health monitoring a member.                                                                    |
| Monitor Port      | Enter an alternate protocol port used for health monitoring a member.                                                                 |
| Weight            | Enter the weight of a member determines the portion of requests or connections it services compared to the other members of the pool. |

**Step 9:** Review your load balancer details and click on the **Create** button.

<figure><img src="https://2627469859-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F4xe4XNC0Kdt8dOCWNCOa%2Fuploads%2FXhHyXmQEi9PkpKyL6IQc%2Fimage.png?alt=media&#x26;token=48e28b2a-f92b-4acc-85f9-44c7bcf50c26" alt=""><figcaption></figcaption></figure>
