I just successfully built ECE in one EC2 node in AWS. I assume we use Docker to separate the EC2 instances in many container and run ES on it? Its like building a VM on a VM. Am I right?
I would like to know how I can build ECE on multiple instances to give more performance to the cluster?
Is there any document regarding this seems I can not find any. Please advice.
You're correct assuming that each Elasticsearch node is running in a separate Docker container. To install ECE on additional hosts, please follow the process described in our documentation: https://www.elastic.co/guide/en/cloud-enterprise/current/ece-installing-elastic.html. This page contains a section called "Install on additional hosts" which explains how to add more hosts to an existing ECE installation. Once you add these hosts and assign them the allocator role, you will be able to create Elasticsearch nodes on them.
Containerization is very different from virtualization in terms of how it works and how it affects performance. In general, the performance of Docker containers is very close the the performance of non-containerized processes. So that in itself is not expected to significantly impact Elasticsearch's performance.
You should remember though that ECE does constrain Elasticsearch containers in terms of CPU time, memory capacity, disk capacity and I/O throughput. This helps ECE isolate cluster nodes running on the same host from one another, mitigating the noisy-neighbor effect. A native process is typically not constrained this way, so while it may run faster due to not being constrained, it will also consume more resources from the host OS at the expense of other processes.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.