Skip To Content

AWS CloudFormation and ArcGIS

You can use Amazon Web Services (AWS) CloudFormation templates provided by Esri to build various ArcGIS Enterprise architectures.

In most cases, you will use a combination of CloudFormation templates to build a deployment.

What is AWS CloudFormation?

AWS CloudFormation is a service that helps define architectures on Amazon Web Services. It is an example of infrastructure as code, meaning you write code that can deploy a particular hardware infrastructure in a cloud environment. With CloudFormation, you use a JavaScript Object Notation (JSON) template to define a stack of resources that work together in a predetermined way. CloudFormation ensures that you maintain a minimum number of machines in a site, allowing for recovery when one of the machines is unavailable.

You can also use CloudFormation templates to launch and maintain a deployment rather than doing it manually, and you can set up identical architectures in different AWS accounts or regions.

Esri CloudFormation templates

Esri stores CloudFormation templates in an Amazon Simple Storage Service (S3) bucket, from which you can download them. Templates are specific to an ArcGIS release. You can also copy and modify these templates to fit your specific needs, or create your own templates to implement your deployment patterns.

Use the Esri CloudFormation templates to launch stacks from AWS Management Console or script stack creation.

Quick links

The sections below (excluding the password section) provide brief information on each type of CloudFormation template Esri provides and links to detailed pages about each template.

The following tables provide consolidated lists of links to pages that describe each template, including the required inputs and the outputs that are created, as well as links to download each template.

Templates to create deployments

Deployment createdView template

Amazon Virtual Private Cloud (VPC) with public subnets

arcgis-vpc.template.json

VPC with a NAT Gateway and public and private subnets

arcgis-vpc-dmz.template.json

Classic Elastic Load Balancer

arcgis-classic-load balancer.template.json

Application load balancer

arcgis-application-loadbalancer.template.json

ArcGIS Enterprise base components on a single machine

arcgis-enterprise-allinone.template.json

ArcGIS Enterprise base components duplicated on two machines for high availability

arcgis-enterprise-ha.template.json

Portal for ArcGIS on a single machine

arcgis-portal-singlemachine.template.json

Portal for ArcGIS on two machines for high availability

arcgis-portal-ha.template.json

Single machine ArcGIS Data Store (relational, tile cache, or spatiotemporal big data store)

arcgis-datastore-singlemachine.template.json

ArcGIS Data Store in primary-standby mode (relational or tile cache data store)

arcgis-datastore-primarystandby.template.json

ArcGIS Data Store in cluster mode (tile cache or spatiotemporal big data store)

arcgis-datastore-cluster.template.json

Single machine ArcGIS Server site (ArcGIS GIS Server, ArcGIS Image Server, or ArcGIS GeoAnalytics Server)

arcgis-server-singlemachine.template.json

Multiple machine ArcGIS Server site for high availability (ArcGIS GIS Server, ArcGIS Image Server, or ArcGIS GeoAnalytics Server)

arcgis-server-ha.template.json

Federate an ArcGIS Server site with a portal

arcgis-server-federate.template.json

Single machine ArcGIS GeoEvent Server site

arcgis-geoevent-server-singlemachine.template.json

Single machine ArcGIS Mission Server site

arcgis-mission-server-singlemachine.template.json

Multiple machine ArcGIS Mission Server site for high availability

arcgis-mission-server-ha.template.json

Single machine ArcGIS Notebook Server site

arcgis-notebook-server-singlemachine.template.json

Multiple machine ArcGIS Notebook Server site for high availability

arcgis-notebook-server-ha.template.json

Enterprise geodatabase in Amazon Aurora (PostgreSQL-compatible edition) added to an ArcGIS Server site (managed database or registered database)

arcgis-egdb-aurorapostgres.template.json

Enterprise geodatabase in Amazon Relational Database Service (RDS) for PostgreSQL added to an ArcGIS Server site (managed database or registered database)

arcgis-egdb-postgres.template.json

Enterprise geodatabase in Amazon RDS for SQL Server added to an ArcGIS Server site (managed database or registered database)

arcgis-egdb-sqlserver.template.json

Tip:

To access CloudFormation templates that create 10.8.1 or earlier releases of ArcGIS software, start with the 10.8.1 CloudFormation templates page, and use the links at the top of the page to access earlier releases. Not all templates that are available at this release were available in earlier releases.

Templates to upgrade deployments

Deployment upgradedView template

ArcGIS Enterprise base components on a single machine

arcgis-enterprise-allinone-upgrade.template.json

ArcGIS Enterprise base components duplicated on two machines

arcgis-enterprise-ha-upgrade.template.json

Portal for ArcGIS on a single machine

arcgis-portal-singlemachine-upgrade.template.json

Portal for ArcGIS on two machines

arcgis-portal-ha-upgrade.template.json

Single machine ArcGIS Server site (ArcGIS GIS Server, ArcGIS Image Server, or ArcGIS GeoAnalytics Server)

arcgis-server-singlemachine-upgrade.template.json

Multiple machine ArcGIS Server site (ArcGIS GIS Server, ArcGIS Image Server, or ArcGIS GeoAnalytics Server)

arcgis-server-ha-upgrade.template.json

ArcGIS Data Store on a single machine (relational, tile cache, or spatiotemporal big data store)

arcgis-datastore-singlemachine-upgrade.template.json

Primary and standby ArcGIS Data Store machines (relational or tile cache data store)

arcgis-datastore-primarystandby-upgrade.template.json

Cluster of ArcGIS Data Store machines (tile cache or spatiotemporal big data store)

arcgis-datastore-cluster-upgrade.template.json

Single machine ArcGIS GeoEvent Server site

arcgis-geoevent-server-singlemachine-upgrade.template.json

Single machine ArcGIS Mission Server site

arcgis-mission-server-singlemachine-upgrade.template.json

Multiple machine ArcGIS Mission Server site

arcgis-mission-server-ha-upgrade.template.json

Single machine ArcGIS Notebook Server site

arcgis-notebook-server-singlemachine-upgrade.template.json

Multiple machine ArcGIS Notebook Server site

arcgis-notebook-server-ha-upgrade.template.json

Templates to create custom AMIs

Type of custom Amazon Machine Image createdView template

Create an AMI with a Linux operating system and ArcGIS Enterprise components.

arcgis-ami-linux.template.json

Create an AMI with a Microsoft Windows operating system, ArcGIS Enterprise, and ArcGIS Pro.

arcgis-ami-windows.template.json

Passwords used in CloudFormation templates

It's recommended that you store your passwords in AWS Secrets Manager and use the secret Amazon Resource Name (ARN) for the passwords instead of providing passwords in plain text.

When you create a secret ARN in the Secrets Manager service of AWS Management Console for a password used with Esri CloudFormation templates, you must do the following:

  • Choose Other types of secrets for secret type and use the Plaintext option.
  • Delete all default text from the input field before you type the password.

Templates that create a VPC

An Amazon Virtual Private Cloud (VPC) is a virtual network. You must have a VPC in which to create your deployments on AWS. You can use one of the following templates to create a VPC before you create an ArcGIS deployment. The VPC template you use depends on the level of security you require.

Templates that create an Elastic Load Balancer

An Amazon Elastic Load Balancer (ELB) directs network traffic to Amazon Elastic Compute Cloud (EC2) instances.

The following templates create an ELB with an SSL certificate configured in it. The load balancers can be internet facing, which means you can use it with public subnets, or internal, which means you can use it with private subnets.

  • Classic load balancer—You must create one load balancer per site or portal when you use classic load balancers.
  • Application load balancer—You can use a single application load balancer for all components of an ArcGIS Enterprise deployment. If you use a load balancer with an ArcGIS Notebook Server site, it must be an application load balancer.

If you use a load balancer with your site or portal, you must create it before creating the ArcGIS deployment.

Templates that create an ArcGIS Enterprise deployment

Esri provides multiple CloudFormation templates you can use to create an ArcGIS Enterprise deployment.

All-in-one deployments

If you deploy for testing purposes or on very large machines for a production deployment, you can use the templates that create base ArcGIS Enterprise components on the same EC2 instance.

The base ArcGIS Enterprise deployment on a single machine template deploys Portal for ArcGIS, an ArcGIS GIS Server site (hosting server), and ArcGIS Data Store (relational and tile cache) on one EC2 instance.

The highly available base ArcGIS Enterprise deployment template deploys two identical EC2 instances (a primary and standby instance) each containing the base ArcGIS Enterprise components.

Templates that allow you to deploy components on separate machines

Rather than deploying all ArcGIS Enterprise components on the same machine, you can use the following templates in combination to build an ArcGIS Enterprise deployment with each component on separate EC2 instances. This allows a more customized deployment. For example, you can size machines differently for each component or create different numbers of machines for each component.

All ArcGIS Enterprise components that are part of the same deployment must be deployed in the same VPC. All components and resources (including the VPC) must run under the same AWS account.

Templates are listed in the order they must be used. Use one template from each step (single machine or highly available).

Templates that create ArcGIS Server sites

Esri provides CloudFormation templates that allow you to create ArcGIS Server sites to fill different roles. The role the site fills depends on the template you use and the license you provide. The sites described in the table below can be created using one of the following templates:

License roleSite typeSite role

ArcGIS GIS Server

GIS Server

A stand-alone or federated GIS Server site to which you can publish feature, map, geoprocessing, geocoding, geodata, or geometry services.

ArcGIS GeoAnalytics Server

GeoAnalytics Server

Acts as a federated GeoAnalytics Server server to allow portal users to run GeoAnalytics Tools.

ArcGIS Image Server

Image Server, Image Hosting Server, or Raster Analytics Server

A stand-alone or federated Image Server site to which you can publish image services from mosaic datasets. If the site is federated with a portal, you can set it as the portal's raster analysis server or image hosting server.

To federate any of these ArcGIS Server sites with an ArcGIS Enterprise portal, use the CloudFormation template to federate sites.

ArcGIS GeoEvent Server site

Use the ArcGIS GeoEvent Server CloudFormation template to create a single-machine ArcGIS GeoEvent Server site.

You can use the site as a stand-alone GeoEvent Server from which you stream real-time observation data, or you can use the CloudFormation template to federate ArcGIS Server sites with an ArcGIS Enterprise portal.

ArcGIS Mission Server site

Use one of the following ArcGIS Mission Server CloudFormation templates to create a single-machine ArcGIS Mission Server site.

The ArcGIS Mission Server site must be federated with an ArcGIS Enterprise portal. If you have a base ArcGIS Enterprise deployment, you can use the CloudFormation template to federate ArcGIS Server sites with an ArcGIS Enterprise portal to accomplish this.

ArcGIS Notebook Server site

Use one of the following ArcGIS Notebook Server CloudFormation templates to create an ArcGIS Notebook Server site on Amazon Elastic Compute Cloud (EC2) instances running Ubuntu.

The ArcGIS Notebook Server site must be federated with an ArcGIS Enterprise portal. If you have a base ArcGIS Enterprise deployment, you can use the CloudFormation template to federate ArcGIS Server sites with an ArcGIS Enterprise portal to accomplish this.

Templates that create enterprise geodatabases and register them with an ArcGIS Server site

You can run one of the following CloudFormation templates to create a database service, create an enterprise geodatabase in it, and register the database with an ArcGIS Server site. If the site is an ArcGIS GIS Server site, you can register the geodatabase as a managed database.

The ArcGIS Server site must exist before you run any of the templates listed above. You can use either of the following templates to create a GIS Server or ArcGIS Image Server site with which you can register a database:

Templates to upgrade deployments

If you created a deployment using the 10.9 or 10.9.1 version of one of the deployment templates listed above or used the 10.9 or 10.9.1 ArcGIS Enterprise Cloud Builder for Amazon Web Services app to create the deployment, you can use the corresponding upgrade CloudFormation template to upgrade your deployment.

See Upgrade deployments for more information about how to upgrade deployments based on how and when they were created.

Templates to create a custom Amazon Machine Image

The custom Amazon Machine Image CloudFormation templates allow you to choose the base AMI that you start with, which ArcGIS Enterprise components the image contains, and which operating system to use. Confirm that the operating system and version are supported for the ArcGIS Enterprise component you include on the image.

When you create an AMI with a Microsoft Windows operating system, you can include ArcGIS Pro on the image.