Benchmarking Elastic Cloud: AWS, GCP and Azure Performance and Cost Analysis

Evaluate Elastic Cloud performance metrics across AWS, GCP, and Azure. Use these benchmarks to optimize deployment strategies and infrastructure costs.

Introduction

Elasticsearch supports managed cloud services on AWS, Azure, and GCP. This article benchmarks performance across these providers. We use EsRally, a standard tool for Elasticsearch performance testing.

In this benchmark, Azure search service times were 6 to 7 times higher than AWS and GCP, and AWS pricing was lower than GCP and Azure for equivalent workloads.

Computing Resources

Elasticsearch cluster performance depends on allocated computing resources. Memory, storage, compute, and network form the primary resource profile. This study uses a uniform 3-node cluster configuration across all supported cloud providers.

Note: Microsoft Azure does not support ARM processors.

Amazon Web Services (AWS)

Architecture

The table below lists the configuration for the Elasticsearch cluster deployed on AWS.

See the link for the hardware profile.

Google Cloud Platform

Architecture

The table lists the configurations for the Elasticsearch cluster on GCP.

See the link for the hardware profile.

Microsoft Azure

Architecture

The following table lists the configurations for the Elasticsearch cluster on Azure.

See the following link for hardware profile details.

Benchmarking Elastic Cloud with EsRally

Create virtual machine (VM) instances in the target regions for each cloud provider. Place the VM in the same zone as the Elasticsearch cluster to reduce network latency. For example, deploy the cluster and VM in AWS US-East. Repeat this setup in GCP and Azure. Run ES Rally from these local VMs to ensure consistent test results.

ES Rally is an Elasticsearch benchmarking framework. It performs end-to-end performance analysis of an Elasticsearch cluster.

Split the benchmark into two sections: Indexing and Search Requests. Use the existing metricbeat and geonames tracks. Apply the following configuration:

Benchmarks ran multiple times. Results below show the average of all successful runs.

Indexing Benchmark

Metricbeat Index

This benchmark uses Metricbeat data with the following specifications:

Capture total response time. This includes wait time before Elasticsearch services the request.

Average 99th percentile latency across multiple runs:

Conclusion

Maximum indexing throughput results:

Geoname Index

Benchmark data: Metricbeat with the following specifications:

The test also measures the time from request submission to complete response. This interval includes the wait time before Elasticsearch services the request.

The average 99th percentile latency across multiple runs was:

Conclusion

Maximum indexing throughput values are:

Search Benchmark

We measured the 90th percentile service time for various search queries.

Metricbeat Index

GeoNames Index

Search benchmarks show Azure service times are 6 to 7 times higher than AWS and GCP.

Conclusions: Elastic Cloud on AWS, GCP and Azure

To summarize the experiment,

Indexing benchmarks show higher document rates for Azure than for AWS and GCP on both Metricbeat and GeoNames workloads. However, latency data suggests indexing rates were likely similar across all three providers, given comparable latency profiles.

Search benchmarks indicate that the Azure Elasticsearch cluster lacks the NVMe storage performance available on AWS and GCP. This hardware difference is the primary factor resulting in query service times 6 to 7 times higher on Azure.

The benchmark results indicate that the current Elastic Cloud infrastructure on Azure cannot match the search performance of AWS and GCP. Additionally, AWS pricing is lower than GCP and Azure pricing for equivalent workloads.

Elastic Cloud continuously upgrades underlying infrastructure. Performance parity across AWS, GCP, and Azure service offerings is expected as hardware upgrades roll out.

If you are planning a move to Elastic Cloud, see our Elastic migration services.

Related reading: LogsDB full-text search benchmarks and Elasticsearch capacity planning.

References:

[1] https://www.elastic.co/guide/en/cloud/current/ec-getting-started-profiles.html#ec-profiles-compute-optimized

[2] https://www.elastic.co/blog/benchmarking-and-sizing-your-elasticsearch-cluster-for-logs-and-metrics

[3] https://esrally.readthedocs.io/en/stable/

[4] https://www.elastic.co/guide/en/cloud/current/ec-default-aws-configurations.html

[5] https://www.elastic.co/guide/en/cloud/current/ec-default-gcp-configurations.html

[6] https://www.elastic.co/guide/en/cloud/current/ec-default-azure-configurations.html

Elastic Cloud benchmarking questions

How does Elastic Cloud perform on AWS, GCP and Azure?
The benchmark used a uniform 3-node cluster on each cloud with EsRally. Azure showed higher indexing rates, but its search service times were 6 to 7 times higher than AWS and GCP, because Azure lacked the NVMe storage performance of AWS and GCP. The article expects parity as hardware upgrades roll out.
Which cloud is cheapest for Elastic Cloud?
The article concludes that AWS pricing is lower than GCP and Azure pricing for equivalent workloads. It also notes that Elastic Cloud continuously upgrades its underlying infrastructure, so it expects performance parity across the AWS, GCP and Azure service offerings as hardware upgrades roll out.
How do you benchmark an Elasticsearch cluster?
Use EsRally, an Elasticsearch benchmarking framework that performs end-to-end performance analysis. Create a virtual machine in the same zone as the cluster to reduce network latency, then split the benchmark into indexing and search requests using the metricbeat and geonames tracks. Run it several times and average the successful runs.
What indexing throughput did each cloud reach?
On the Metricbeat track, maximum indexing throughput for 3 nodes was 12,900 events per second on AWS, 17,256 on GCP and 22,990 on Azure. On the GeoNames track it was 35,256 on AWS, 29,170 on GCP and 41,417 on Azure. The article says latency suggests indexing rates were likely similar.