AWS 与 ArcGIS 集成

ArcGIS 软件已在 Amazon Web Services (AWS) 上部署并集成超过 15 年,双方保持紧密合作,并在 ArcGIS 产品中持续采用新的云服务。

许多组织在 AWS 上架构 ArcGIS 系统,利用各种 AWS 服务和概念来构建具有不同复杂程度的系统。 在本部分中,将简要讨论 AWS 服务的集成,并在适当处提供相关文档、指南以及相关最佳实践的链接。

计算

任何基于 AWS 的 ArcGIS 系统的基础都是计算资源,这些资源将为软件组件提供托管环境。 文中提供了 AWS 如何用于各种 ArcGIS 场景的示例。

  • AWS EC2 实例用于以虚拟机的形式托管操作系统。 可用于托管 ArcGIS Enterprise 组件、应用程序托管工作流、数据库(当不使用托管服务时)以及 ArcGIS Pro 客户端。 EC2 实例提供多种配置,用于在实例类别和类型之间平衡计算、内存、网络及其他因素。 对于 ArcGIS 工作流,大多数组织会从通用实例类型入手,然后根据特定工作流需求或者观察到的系统资源使用情况进行专门化调整。

  • AWS Lambda 是一种提供无服务器计算执行的服务,适用于多种模式。 ArcGIS 部署可以通过多种常见模式与 Lambda 集成:
    • Lambda Python 函数可以利用 ArcGIS API for Python,由此根据 Lambda 的执行对 ArcGIS 组件运行命令。

    • 基于 JavaScript 的 Lambda 函数可以使用 ArcGIS REST JS 模块与 ArcGIS 服务进行交互,以查询数据、访问组织内容或者使用位置服务。

    • Lambda 函数可以部署在环境内部(作为内部服务端点)、面向外部部署,或者通过 Lambda EdgeAmazon CloudFront 的集成作为 CDN 部署的一部分进行部署。

  • AWS EKS 提供托管 Kubernetes 服务,该服务是 ArcGIS Enterprise on Kubernetes 支持的环境之一。 组织可以将 ArcGIS Enterprise on Kubernetes 集成到现有 EKS 工作负载中,基于组织经验进行构建,并在既定的网络结构和约束下工作。

  • AWS Batch 计算提供了一种运行异步、可扩展处理作业的选项,通过建立 EC2 实例模板,然后编排镜像,使其能够在启动时接受作业参数或者从队列系统中读取参数。 可以配置一个实例模板,并为其授权 ArcGIS Pro 或 ArcGIS Server 许可,然后使用该模板通过 ArcGIS API for Python 或 ArcPy 来处理地理空间数据或工作流。

数据和存储

  • Amazon S3 是一种具有弹性的全球分布式对象存储服务,在多种模式下与 ArcGIS 配合使用。 S3 存储桶支持强大的授权模式,其中包括为 EC2 实例设置 IAM 角色,并且可用于存储任何类型的文件。

    • S3 存储可用作 ArcGIS Enterprise 系统目录的存储位置,其中包括门户内容目录以及 ArcGIS Server 站点的配置存储和目录存储。 S3 存储也可以用作缓存目录,用于存储地图和影像服务缓存。

    • 许多 ArcGIS 系统会与存储在 S3 中的影像数据进行交互,该数据通常通过云存储连接进行访问并在 ArcGIS Pro 中使用,或者添加至镶嵌数据集并通过 ArcGIS Image Server 进行发布。

    • ArcGIS Data Pipelines 可以与 S3 中的多种不同的数据格式进行交互,以提取地理空间要素、丰富或转换这些要素,并将其写入远程服务,从而实现与 ArcGIS 工作流的集成。

    • 在大多数情况中,映射工作流不支持直接读取 S3 中的矢量数据,但是对于使用在 AWS 内部或邻近的 Spark 环境中运行的 ArcGIS Pro 或者 ArcGIS GeoAnalytics Engine 的地理分析工作流,在分析输入中使用这些矢量数据集是常见做法。 ArcGIS Pro 也可以连接到并读取来自云存储连接的 Apache Parquet 文件。​

  • Amazon RDS 服务提供托管关系数据库托管选项,该选项通常与 ArcGIS 系统配合使用,作为一种托管企业级地理数据库的方法,但是也支持通过查询图层直接与 RDS 数据库进行交互。 ArcGIS 直接支持多种 RDS 服务,但存在一个区别:仅支持数据库系统本身提供的空间类型。 RDS 数据库也可以配置为 ArcGIS Enterprise on Kubernetes 的关系存储

  • Amazon Redshift 是一种数据仓库服务,支持对大型业务数据集进行规模化分析。 ArcGIS 支持通过 ArcGIS Pro 创建的查询图层和已发布的地图服务,连接到作为云数据仓库的 Amazon Redshift。 与任何其他云数据仓库连接一样,请遵循此领域的最佳做法,并参阅数据湖和数据仓库内容。

  • Amazon EFS 是一种文件系统服务,可以与 Linux EC2 实例一起配置,用于存储文件和内容。 基于 Linux 构建的 ArcGIS Enterprise 系统可以与 EFS 配置配合使用,以在高可用性架构中存储共享内容和配置。

  • Amazon EC2 实例配置了由 AWS EBS 服务提供的挂载块存储。 此存储通常作为存储驱动器挂载到 EC2 实例上,用于本地数据存储以及 ArcGIS Enterprise 配置组件。

分析

  • ArcGIS GeoAnalytics Engine 可以部署到 Amazon EMR 服务中,以便在 EMR 环境内提供地理空间分析功能和工具。 对于已经在使用 EMR 的组织而言,此软件集成模式允许数据工程或分析工作流程在熟悉的环境中利用可信的 GeoAnalytics Engine 工具。 本博客文章概述了采用此集成模式的一个用例。

网络

  • AWS 弹性负载均衡器为 ArcGIS 系统(尤其是采用高可用性配置的系统)提供了强大的功能。 负载均衡和反向代理在非高可用性系统中也很常见,并且常用于将来自 Internet 或更广泛网络区域的客户端流量传递到 ArcGIS Enterprise 的后端服务器组件。

  • Amazon API Gateway 服务提供了一种定义特定 HTTP 端点和方法的方式,可将其转发至后端 Lambda 函数、AWS 服务端点或者其他基于软件的 web 服务(例如 ArcGIS Enterprise 服务)。 API Gateway 服务的使用遵循与其他 API 管理技术相同的建议。

  • Amazon CloudFront 是一种托管 CDN 服务,可为 web 页面或 web 服务响应提供全球边缘缓存。 依托 AWS 广泛的接入点网络,CloudFront 分发可以通过在用户附近缓存响应来显著改善用户对 web 应用程序和静态资产的访问。 使用 ArcGIS Maps SDK for JavaScript 构建的地理空间 web 应用程序非常适合 CDN 分发和加速。 在某些情况下,ArcGIS Enterprise 的 web 服务可以与 AWS CloudFront 兼容,但务必谨慎管理缓存配置和过期策略,以确保用户收到正确的查询响应,并且不会访问过期数据或配置。

虚拟桌面体验

许多组织使用虚拟桌面接口 (VDI) 为用户提供丰富的应用程序体验。 在 ArcGIS 系统中,这通常意味着 ArcGIS Pro 的配置,可以将其托管在中心网络位置,但可供许多位置的用户远程访问。 此模式可确保从 ArcGIS Pro 会话到数据和服务的通信得到优化,而通过较长距离传输给用户的交互内容仅包括远程会话的视觉反馈以及用户的一组输入控件。

其他 AWS 服务

对于探索基础设施即代码和软件部署自动化的组织来说,ArcGIS CloudFormation 模板是创建特定于环境的模板集的绝佳起点,这些模板集可用于部署特定系统架构。

CloudFormation 模板结合了网络、计算和存储资源的基础设施部署,并使用 ArcGIS PowerShell DSC 或 Chef 执行脚本以部署 ArcGIS 软件,由此提供了一种可重复的、由代码定义的部署模式,该模式有助于实现一致性、可靠性以及与企业 IT 保持一致。

Cognito

AWS Cognito 提供了多种与身份相关的服务方案,可以用作 ArcGIS Enterprise 或 ArcGIS Online 的 OpenID Connect (OIDC) 提供商。 可以使用各种登录模式来建立 Cognito 身份池,随后创建 ArcGIS 用户账户,从而支持基于 Cognito 身份进行登录。

Top