Playbook for Production

This playbook walks you through all the necessary steps to make sure you end up with a system that is ready for production.

Before you can begin to install Elastic Cloud Enterprise, there are some things you need to do to prepare:

  • Plan Your Deployment. Use our guidance to help you decide how you should install Elastic Cloud Enterprise, including information on high availability for production systems.
  • Check the prerequisites to make sure you meet the requirements for software, hardware, users, and networking. Pay special attention to what Linux kernel and Docker version you plan to use. Our testing has shown that not all combinations work well together.
  • Prepare your environment. You can install Elastic Cloud Enterprise on your own hardware or on many cloud environments, but you need to get your hosts ready for installation before you can run through the rest of this playbook.

If you plan to use them, you also need to provide a load balancer and your own TLS/SSL certificates.

Topology Recommendations

For production environments, our topology recommendations for a good baseline include:

  • Three runners that hold the director and coordinator roles for high availability.
  • As many runners that hold the allocator role as needed for the workload you’re planning to run. You’ll want to use at least three in different availability zones for high availability. An availability zone could be a rack, a server zone or some other logical constraint that supports the requirement that you could lose the entire availability zone and yet your cluster would still be up and running, because other availability zones are unaffected and can handle the workload.
  • Enough runners that hold the proxy role to handle the volume of user requests, or at least one per availability zone for high availability. In this playbook, we use three

All in all, this means you will likely need to install Elastic Cloud Enterprise on nine hosts if you want a highly available installation, less if you do not need the same level of fault tolerance.

Alternatively, if you don’t have eight or nine hosts to install Elastic Cloud Enterprise on, fewer hosts that provide substantial hardware resources could also be used. For example, if you have only three hosts, you will not be able to separate runner roles as recommended, but if these hosts are heavily provisioned they might work. For a setup like this, assign all roles to all runners. In these instructions, we refer to a host if it is a machine that you are installing Elastic Cloud Enterprise on. Once the software is installed, the host becomes a runner in your Elastic Cloud Enterprise installation.

Example: Create a First Baseline Installation

This example creates a baseline Elastic Cloud Enterprise installation that follows our topology recommendations. It uses three availability zones, so that it is highly available. To create this installation, you need nine hosts, but you could adapt these instructions to use fewer hosts, at the loss of some fault tolerance.

A first baseline topology with nine hosts across three availability zones

If you are not sure how to run the installation script on each host, take a look at this example for installing on nine hosts. The exact commands you run on your hosts will differ, but the example should give you an idea of how to distribute nine hosts across three availability zones evenly.

To create this baseline Elastic Cloud Enterprise installation:

  1. Install Elastic Cloud Enterprise on the first host to start a new installation with your first availability zone. This first host initially holds all runner roles to help bootstrap the rest of the installation, but you will remove some of its roles in a later step.
  2. Install Elastic Cloud Enterprise on a second and third host, and assign them the director and coordinator roles. Do not assign the allocator or the proxy role, as these runners should not handle or route any user requests.
  3. To handle the Elasticsearch and Kibana workload, install Elastic Cloud Enterprise on a fourth, fifth, and sixth host, or on however many hosts you think you need initially, and assign them the allocator role.
  4. To handle the routing of user requests to Elasticsearch, install Elastic Cloud Enterprise on a seventh, eighth, and ninth host, and assign them the proxy role. For installations that do not need to be highly available, you can create only one or two proxies instead, provided that they can route the volume of user requests.
  5. Modify the first host you installed Elastic Cloud Enterprise on to prevent it from handling or routing user requests:

    1. Move all nodes off the first host in preparation for removing the allocator role. This step moves the ES admin cluster and ES logging cluster that are part of the Elastic Cloud Enterprise administration console, shown as admin-console-elasticsearch and logging-and-metrics in the Cloud UI. Elasticsearch clusters and Kibana cannot be moved at the same time, so move one after the other. Verify that both Elasticsearch clusters and Kibana have been moved to another allocator.

      Moving all nodes can take a few minutes. You can check progress on the Activity Feed page in the Cloud UI.

      Tip

      Set a target allocator under the advanced options when moving nodes to make sure the nodes do not end up on the same allocator again. By default, moving a node moves it to any allocator that has enough capacity.

    2. After all cluster nodes have finished moving off the first host, remove the allocator role so that the first host is no longer handling any Elasticsearch or Kibana workloads.
    3. Remove the proxy role so that the host is no longer routing any user requests.
    4. Update the cluster endpoints, replacing the IP address portion of the CNAME with the IP address of one of the new proxies you created in Step 4. This step is needed so that the Elasticsearch and Kibana endpoints URLs shown in the Cloud UI use one of the new proxies you created. Note that if you plan to use a load balancer as recommended, you will access cluster endpoints through the load balancer rather than going directly to a proxy after installation is complete.

    At this point, the first host you installed Elastic Cloud Enterprise on should hold only the coordinator and director roles, making it the third runner to hold these roles along with the runners created in Step 2.

  6. Change the cluster configuration for the admin-console-elasticsearch and logging-and-metrics clusters to use three availability zones and resize the cluster to use at least 4 GB of RAM. This change makes sure that the clusters used by the administration console are highly available and provisioned sufficiently.

After your Elastic Cloud Enterprise installation is up, some additional steps might be required:

  1. Add your own load balancer. Load balancers are user supplied.

  2. Install your security certificate to enable TLS/SSL authentication for secure connections over HTTPS.