ArcGIS Pro, ArcGIS Enterprise and your DBMS can all be deployed on commercial and private clouds. Amazon Web Services (AWS) and Microsoft Azure are the most common cloud platforms.
The motivation to use cloud instances is usually driven by the IT department. These are the arguments to deploy on the cloud:
Many customers were asking for a recommended configuration and had performance concerns, so we wanted to test it for ourselves and provide a reference. To keep it real we use real data that contains around 1.5 million parcels. In order to test the parcel fabric performance, we made sure:
These are the type of questions we were curious to answer:
A common mistake is to choose the cheapest instance, then wonder why performance is bad. So we consulted the pros and chose instances that customers will likely choose. Those are not the top tier, but the minimum that are likely to perform well.
We also made sure to select the comparable instances between AWS and Azure to make sure we are comparing ‘apples to apples’.
These are the Instances we used in 2022:
Instances \ Cloud | AWS | Azure |
ArcGIS Enterprise (Base deployment) | 8 vCPUs x 32 GiB 80 GB Disk | 8 vCPUs x 32 GiB 80 GB Disk |
DBMS: MS SQL Server Or PostgreSQL | 8 vCPUs x 32 GiB 250 GB Disk | 8 vCPU core x 32 GiB 250 GB Disk |
ArcGIS Pro* | 1 GPU x 4 vCPU x 16 GiB 80 GB Disk | 1 GPU x 4 vCPU x 28 GiB 80 GB Disk |
Performance Test harness | 8 CPUs x 32 GiB 100 GB Disk Windows VM | 8 CPUs x 32 GiB 100 GB Disk Windows VM |
* The mentioned instances for Pro were the used in 2022 and they approach their end of life. For Azure, in 2026 we recommend using the NCasT4_v3 series. For AWS the G4 instances are currently recommended. You can find more useful information in this blog by @RyanDanzey
Assumptions we made in our tests:
We installed ArcGIS Enterprise Base deployment on a single instance.
For DBMS installed PostgreSQL 13 and MS SQL Server 2019 on an instances (EC2).
Some of you might want to know which DBMS outperformed the other in a specific cloud, others might know which DBMS they will use but want to know which cloud outperformed.
What would happen when you run ArcGIS Pro locally (on-premise) against ArcGIS Enterprise that is deployed to the cloud?
We saw an additional price of 50 ms for all requests. Depending on your network, internet speed and location relative to the cloud, expect to pay a price if you run ArcGIS Pro outside of the cloud. For that reason, we recommend to collocate the ArcGIS Pro clients on the cloud as well, with appropriate instances that support GPU.
Since we repeat the test with each release, on both clouds, with 2 different DBMS, you can choose the columns you want to compare by downloading the attached Excel file.
To get an impression of the performance you can watch this video:
We have been repeating our tests on premise and on the cloud with newer versions of ArcGIS Enterprise. We no focus on comparing all the permutations but make sure that performance does not degrade and that memory leaks are not introduced.
We have also been adding new REST API methods. Moving a capability from the ArcGIS Pro client to the server improves performance for methods that process a lot of data. It also allow other clients (like web) to make use of the capability and support automation that does not require the ArcGIS Pro client, for example: using the server Python API.
You can create an enterprise geodatabase on many relational databases but only the most common one have been certified by the parcel fabric team: MS SQL Server, PostgreSQL and Oracle.
Why? We want to focus our testing on the most commonly used databases and adjust the list based on customer demand, not just because we can.
As more and more customers move their IT infrastructure to the cloud, we have been testing common configurations: MS SQL Server and PostgreSQL on Azure and AWS. We shared the result in this presentation (minute 56). In those tests the database was install on an 'instance' with dedicated memory and virtual CPUs. You still need to install the software and a DBA to maintain the database.
Cloud providers also offer 'database as a service' (DBaaS). You can access and use the database software without handling infrastructure setup, installation, or maintenance. The cloud provider manages provisioning, backups, security, and updates.
Amazon (AWS) offers PostgreSQL as RDS and Aurora. We wanted to compare:
Previous tests (see above) showed that using PostgreSQL on AWS installed on an instance was the fastest. But there were rumors that using RDS is even twice as fast and that Aurora is 3 times as fast – we wanted to put that to the test.
ArcGIS Enterprise specifications: version 12.0 installed on Windows 2022, with a m5a.4xlarge instance, 16 CPUs, 64 GB of RAM, and 16 instances of ArcGIS Server (ArcSocs).
In all the 3 options the DBMS was using r6i.4xlarge with 16 CPUs, and 126 GB RAM.
RDS and Aurora always use PostgreSQL native geometry (PostGIS), so we made sure to use it on the EC2 instance as well.
| PostgreSQL installed on an instance (baseline) | RDS | Aurora |
Total requests in 1 hour (throughput) | 241950 | 277834 (15%) | 285273 (18%) |
Requests per second | 65.5 | 75 (15%) | 77 (18%) |
Average response time (ms) | 557 | 292 (-48%) | 251 (-55%) |
During the tests ArcGIS Server CPU usage was between 73%-77%, memory usage between 42%-45%.
We use specialized software to test the parcel fabric REST APIs performance called JMeter. It allows us to catch regressions, memory leaks and even stress load the system with any amount of virtual users to see what breaks first: the database or the server?
How do you break the DBMS?
We increased the number of virtual users from ?? to 90, reduced the delays between requests, increased the ArcGIS Enterprise to m5a.12xlarge (48 CPU, 189 GB RAM, 60 ArcSOCs)
Results: we couldn't break it. The limiting factor for the installed PostgreSQL server is that is only accepts a 100 connections by default. That is a setting that a DBA can change. The RDS and Aurora support up to 5000 connections by default, and both showed a throughput of ~158K requests for a 15 minute run and could handle 270 requests per second with an average response time of 301 milliseconds.
Impressive!
The most important reason is that you have been asking for it, and as we see more organizations moving to the cloud we would like you to avoid common mistakes and make educated decisions.
We share these insights in this post and we hope you find it useful. If you have any questions or requests please leave a comment below.
I would like to thank the experts who carried out these tests and provide these insights
- Hector Martinez @HectorMartinez23
- Ken Galliher @KenGalliher1
- Chris Zemp @ChrisZemp
- Jason Camerano @JasonCamerano
- Ryan Danzey @RyanDanzey
Working from Home: ArcGIS Pro…Cloud hosted virtualization - https://www.esri.com/arcgis-blog/products/arcgis-pro/sharing-collaboration/working-from-home-arcgis-...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.