ArcGIS software has been deployed on and integrated with Amazon Web Services (AWS) for more than 15 years, with close collaboration and ongoing adoption of new cloud services across ArcGIS.
Many organizations architect ArcGIS systems on AWS, using a variety of AWS services and concepts to build systems with varying degrees of complexity. In this section, integration of AWS services will be discussed in brief, with links to relevant documentation or guidance where appropriate, and relevant best practices.
The foundation of any AWS-based ArcGIS system is compute resources, which provide hosting for software components. Examples of how AWS can be used for various ArcGIS scenarios are provided.
AWS EC2 instances are used to host an operating system as a virtual machine. They can be used to host ArcGIS Enterprise components, app hosting workflows, databases (when not using a managed offering) and ArcGIS Pro client hosting. EC2 instances are available in a wide range of configurations, balancing compute, memory, networking, and other considerations across instance classes and types. For ArcGIS workflows, most organizations start with general instance types and then specialize based on specific workflow requirements or based on observed usage of system resources.
Lambda Python functions can make use of the ArcGIS API for Python, which can be used to run commands against ArcGIS components based on Lambda execution.
Lambda functions based on JavaScript can use the ArcGIS REST JS module to interact with ArcGIS services, to query data, access organization content, or work with location services.
Lambda functions can be deployed within an environment (as internal service endpoints), externally facing, or as part of a CDN deployment through Lambda Edge integration with Amazon CloudFront.
AWS EKS provides a managed Kubernetes service that is one of the supported environments for ArcGIS Enterprise on Kubernetes. Organizations can integrate ArcGIS Enterprise on Kubernetes into existing EKS workloads, build on organizational experience, and work within established network structures and constraints.
Amazon S3 is a resilient, globally distributed object storage service, which is used with ArcGIS in a variety of patterns. S3 buckets support robust authorization patterns including IAM roles for EC2 instances and can be used to store files of any type.
S3 storage can be used as the storage location for ArcGIS Enterprise system directories, including the portal content directory, and configuration store and directory storage for ArcGIS Server sites. S3 storage can also be used as a cache directory for storing map and image service caches.
Many ArcGIS systems interact with imagery data that is stored in S3, which is often accessed through a cloud storage connection and used in ArcGIS Pro or added to a mosaic dataset and published through ArcGIS Image Server.
ArcGIS Data Pipelines can interact with several different data formats in S3 to extract geospatial features, enrich them or transform them, and write them to a remote service to enable integration into a workflow in ArcGIS.
In most scenarios, direct-read of vector data in S3 is not supported for mapping workflows, but use of those vector datasets in analytical inputs is common for geoanalytics workflows using ArcGIS Pro or ArcGIS GeoAnalytics Engine running in a Spark environment within or adjacent to AWS. ArcGIS Pro can also connect to and read Apache Parquet files from cloud storage connections.
The Amazon RDS service offers a managed relational database hosting option, which is often used with ArcGIS systems as a method to host an enterprise geodatabase, though interacting with an RDS database directly through query layers is also supported. ArcGIS supports a range of RDS offerings directly, with the distinction that only the spatial type provided by the database system is supported. RDS databases can also be configured as a relational store for ArcGIS Enterprise on Kubernetes.
Amazon Redshift is a data warehouse offering that supports scaled analytics of large business datasets. ArcGIS supports connecting to Amazon Redshift as a cloud data warehouse, though query layers and published map services authored through ArcGIS Pro. As for any other cloud data warehouse connection, follow best practices in this area and refer to the data lakes and data warehouses content.
Amazon EFS is a file system service that can be configured with Linux EC2 instances to store files and content. ArcGIS Enterprise systems built on Linux can work with an EFS configuration to store shared content and configurations in a high availability architecture.
Amazon EC2 instances are configured with mounted block storage, provided by the AWS EBS service. This storage is typically mounted to EC2 instances as storage drives and is used for local data storage and ArcGIS Enterprise configuration components.
AWS Elastic Load Balancers provide powerful capabilities for ArcGIS systems, especially those in a highly-available configurations. Load balancing and reverse proxying are also common to non-HA systems and are frequently used to pass client traffic from the internet or a broader network zone to the backend server components of ArcGIS Enterprise.
The Amazon API Gateway service provides a method for defining specific HTTP endpoints and methods, forwarding to backend Lambda functions, AWS service endpoints or other software-based web services such as an ArcGIS Enterprise service. Use of the API Gateway service is guided by the same recommendations as other API management technologies.
Amazon CloudFront is a managed CDN service that can provide global edge caching of web pages or web service responses. Building on AWS’s extensive network of points of presence, a CloudFront distribution can significantly improve users’ access to web applications and static assets by caching responses close to the user. Geospatial web apps built with the ArcGIS Maps SDK for JavaScript are good candidates for CDN distribution and acceleration. Web services from ArcGIS Enterprise can be compatible with AWS CloudFront in certain scenarios, but it is important to carefully manage cache configuration and expiration to ensure that users receive the correct response for queries and don’t access stale data or configurations.
Many organizations use virtual desktop interfaces (VDI) to provide rich application experiences to users. In an ArcGIS system, this most often means a configuration of ArcGIS Pro, which can be hosted in a central network location but accessed remotely by users in many locations. This pattern ensures that communication from the ArcGIS Pro session to data and services is optimized, while the only interactions carried over longer distances to a user are the visual feedback of a remote session and a set of input controls from the user.
For organizations that explore infrastructure as code and software deployment automation, the ArcGIS CloudFormation templates are an excellent starting point for creating an environment-specific set of templates that can be used to deploy a particular system architecture.
Combining infrastructure deployment of networking, compute and storage resources with script execution to deploy ArcGIS software with ArcGIS PowerShell DSC or Chef, the CloudFormation templates provide a repeatable, code-defined deployment pattern which encourages consistency, reliability and enterprise IT alignment.
AWS Cognito provides a variety of identity-related service offerings and can be used as an OpenID Connect (OIDC) provider for ArcGIS Enterprise or ArcGIS Online. Cognito identity pools can be established using a variety of login patterns, and then ArcGIS user accounts can be created to allow login based on Cognito identity.