Skip To Content

ArcGIS for Server architectures on Amazon Web Services

You can use the ArcGIS Server Amazon Machine Images (AMIs) to launch several different architectures on Amazon Web Services (AWS). Esri provides AWS CloudFormation templates to launch most supported architectures. Esri also provides ArcGIS Server Cloud Builder on Amazon Web Services, which gives you a few options for GIS server site architectures. You can also deploy these architectures manually using the AWS Management Console.

Architectures available with AWS CloudFormation templates

Esri provides sample AWS CloudFormation templates to deploy the following architectures:

  • Highly available siloed GIS servers
  • Highly available GIS server sites
  • A web GIS on a single machine
  • A highly available web GIS deployment

Each of these architectures is described in AWS CloudFormation and ArcGIS for Server.

Architectures available with Cloud Builder

ArcGIS Server Cloud Builder on Amazon Web Services allows you to build a simple GIS server site with one GIS server to a complex site with many GIS servers. It also allows you to include an enterprise geodatabase and determine where the enterprise geodatabase is placed.

A GIS server without an enterprise geodatabase

You can use Cloud Builder to create an ArcGIS Server site running on Windows or Linux without an enterprise geodatabase. Such a site can have one or many GIS servers. All the participating GIS servers must use the same operating system. In all cases, the GIS server or servers are placed beneath an Amazon load balancer.

A GIS server with an enterprise geodatabase on the same EC2 instance

You can optionally choose to create a site that has an enterprise geodatabase running on the same EC2 instance as ArcGIS Server. If the site contains multiple GIS servers, the enterprise geodatabase runs on just one of those servers.

If you built your ArcGIS Server site on Linux, the enterprise geodatabase runs on PostgreSQL. If you build your ArcGIS Server site on Windows, the enterprise geodatabase can run on Microsoft SQL Server Express or SQL Server Standard.

Running the enterprise geodatabase on the same EC2 instance as ArcGIS Server can help you save hardware costs (the hourly fees you pay to Amazon for use of the instances). This architecture also reduces latency between the server and the database. However, when you run the server and the database on the same EC2 instance, you are sharing hardware resources and run a greater risk of site disruption if either component is overloaded or goes offline.

A GIS server with an enterprise geodatabase on its own EC2 instance

You can choose to create a site that has an enterprise geodatabase running on its own EC2 instance, separate from the ArcGIS Server EC2 instances. If you built your ArcGIS Server site on Linux, the enterprise geodatabase runs on PostgreSQL. If you built your site on Windows, the enterprise geodatabase runs on SQL Server Standard. If you choose to create a site with an Amazon Relational Database Service (RDS) for Microsoft SQL Server, it will always run on an instance separate from your ArcGIS Server instances.

Running the enterprise geodatabase on a separate instance from ArcGIS Server can result in increased fees for instance usage. However, separating the GIS server and database tiers gives you more freedom to adjust or fix one tier without affecting the other.

Architectures available when building your site manually

You can build the same architectures manually on AWS using the AWS Management Console as you can when deploying on-premises; however, you need to be proficient in configuring a web GIS or GIS server and proficient in AWS. Some tips for manual deployments are listed below.

When you build your site manually using the AWS Management Console, you can launch one or many EC2 instances running ArcGIS for Server to create a GIS server site. If you launch multiple instances, you must also launch an Amazon load balancer and add the instances to it. All GIS server instances you add beneath the load balancer must be identical. Similarly, if you launch multiple instances running ArcGIS for Server to be used in your web GIS, you also need to launch an Amazon load balancer and add the instances to it.

Each instance beneath the load balancer operates independently of the other instances. In other words, each instance has its own configuration store, server directories, logs, and so forth. This limits the types of things you can do with the server, such as asynchronous geoprocessing or distributed map caching jobs. If you want a genuine distributed architecture that can do those things, use Cloud Builder to create your site.

When you build your site manually using the AWS Management Console, you can also launch one EC2 instance running ArcGIS for Server, Portal for ArcGIS, and ArcGIS Data Store.

There are three Esri AMIs you can choose when launching instances for your site, or you can use a custom AMI that you have derived from one of these three AMIs. All the AMIs include ArcGIS for Server, Portal for ArcGIS, ArcGIS Data Store, and a database management system. When you build a site using the AWS Management Console, you must create your own geodatabase using a geoprocessing tool or Python to create the geodatabases.

Tip:

If you want to run enterprise geodatabases on a separate instance from ArcGIS Server, it's recommended that you use Cloud Builder to create your site.

Do I need to install ArcGIS Web Adaptor?

The ArcGIS Server AMIs include ArcGIS Web Adaptor. If you deploy a web GIS using the ArcGIS Server AMIs and CloudFormation templates, ArcGIS Web Adaptor is configured and used.

If you use ArcGIS Server Cloud Builder on Amazon Web Services or the CloudFormation templates to deploy a GIS server site, ArcGIS Web Adaptor is not configured because the Amazon load balancer plays many of the same roles, distributing incoming requests among the GIS servers in your site. However, after you create your site, you can optionally log in to your instance and configure ArcGIS Web Adaptor. This is necessary if you'll be hosting ArcGIS API for JavaScript applications on a Windows instance. See Deploy a web application on a Windows site for more details.