在 Amazon Web Services (AWS) 上部署 ArcGIS Server 或 ArcGIS Enterprise 使您得以在托管 web 服务时享受到云环境的便利和可扩展性。web 服务的最终用户通常不会需要或希望通过登录到 AWS 中的实例来完成工作;他们仍会使用本地设备上的应用程序,通过服务来使用数据。
作为 AWS 上的 ArcGIS 部署管理员,您需要确保发布者能够创建最终用户所需的服务。某些服务可从本地或 web 客户端进行发布,并在发布的同时复制数据。然而在某些情况下,您可能需要通过 Internet 将 GIS 数据传输到云中的各个位置。本主题列举出了一些可用来发布和复制数据的选项、根据需要将数据传输到 AWS 的方法,以及 AWS 上可以存储数据的位置。其中还讨论了会对数据传输时间造成影响的一些因素。
利用 web 界面
ArcGIS Server Manager 和 ArcGIS Enterprise 门户均可通过 web 浏览器进行访问。也就是说,您可以从本地桌面登录这些应用程序,而无需登录 Amazon Elastic Compute Cloud (EC2) 上的 AWS 实例。
您可以在本地 ArcMap 安装程序中创建服务定义文件,文件中包含您希望用于服务的数据。创建该文件后,可通过 Manager 登录到 AWS 上的独立或联合 ArcGIS Server 站点,随后从服务定义文件进行发布。
如果您在 AWS 上部署了 ArcGIS Enterprise,则能够以具有权限的用户身份登录到门户,从而创建内容和发布托管要素图层、将数据源(例如压缩 shapefile、压缩文件地理数据库或逗号分隔值 (CSV) 文件)上传到门户,并发布可与门户组织中的其他成员共享的托管要素图层。
如果您在 EC2 实例上配置了 ArcGIS GeoEvent Server,则可以流动式接收实时数据源。有关详细信息,请参阅 ArcGIS GeoEvent Server 帮助。
通过地理数据服务复制数据
您可以从本地计算机上的 ArcGIS Server 安装连接到 AWS 上的 ArcMap 站点,然后注册本地企业级地理数据库和 AWS 上的企业级地理数据库,在 AWS 上发布地理数据库的地理数据服务,以及通过此服务将数据从本地地理数据库复制到 AWS 上的地理数据库。
有关详细信息,请参阅 ArcGIS Server 帮助中的配置地理数据服务的建议。
将数据移动到 AWS
在某些情况下,您可能需要将数据移动到 AWS,允许发布者登录到您根据 Esri Amazon 机器映像 (AMI) 创建的且包含 AWS 许可副本的 ArcGIS Pro 实例,以及允许发布者在其中创建地图和发布数据。在以下情形中,您需要执行上述操作:
- 您将源数据存储在 AWS 上。
- 您将源数据的子集移动到 AWS 上进行发布,由于将数据从本地源发布到云中的 ArcGIS Server 站点可能比较缓慢,因此在很多情况下不推荐这样做。
在 AWS 上存储数据的位置
如果您需要将数据传输到 AWS,则有多个位置可用于存储 GIS 数据。所有下列选项都需要向 Amazon 缴纳一定的费用,但具体的费用值会有所不同,因此在选择之前应进行一些研究。将数据存储到 AWS 中 ArcGIS Server 站点所在的同一区域。
- Amazon 弹性块存储 (EBS) 卷 - EBS 卷是虚拟的磁盘驱动器,可附加到您的 EC2 实例以增加更多存储。您从 Esri AMI 启动的实例中包含根卷。您可以使用 AWS 管理控制台添加自己的预填充 EBS 卷。
- Amazon Simple Storage Service (S3) - Amazon S3 是一个专为云中的数据存储而设计的 Amazon 服务。此存储选项可将出现数据故障或丢失的概率降至最低。可使用 S3 作为数据备份的位置,作为一个用于在本地部署和 EBS 卷之间传输数据的中间地带,或作为您注册到 AWS 上的 ArcGIS Server 站点的,地图和图像缓存或大数据文件共享的位置。
- EC2 实例 - 可以将数据直接传输到 EC2 实例的根卷上。
用于将数据传输到云中的选项
将数据从本地部署传输到云中需要耗费一定的时间,在某些情况下还需要与信息技术 (IT) 安全人员进行协调。与本地网络中的常见数据传输相比,将数据导出到云中的位置在速度和安全性方面通常都较为逊色。
将数据传输到云中的方法很多,但如果要传输的是敏感数据,则请与 IT 工作人员进行协调以确保传输方法的安全性,并需要获得组织的批准。下面介绍了若干选项:
- 在发布服务时复制数据。
在发布服务时,您可以将该服务的数据复制到 ArcGIS Server 站点。将数据打包到服务定义文件 (.sd) 中,将其传输到 ArcGIS Server 站点的上传目录中,最后将其解压缩到 ArcGIS Server 输入目录中。请注意,如果您不对地图或其他资源中所使用的空间范围以及数据集进行限制,可能需要花费大量时间并导致大量的数据传输。
此选项不支持在服务之间共享数据,或者在云和本地部署之间进行数据同步。
- 在 AWS 上创建地理数据库并将其注册为独立或联合 ArcGIS Server 站点的托管数据库。
当您将要素服务发布到 ArcGIS Server 站点时,数据将复制到托管数据库。
与前一选项相同,此选项不支持在服务之间共享数据,或者在云和本地部署之间进行数据同步。
- 使用远程桌面连接并复制和粘贴数据。
Microsoft Windows 远程桌面连接支持文件系统的重定向,其中可将本地驱动器映射至远程计算机。通过远程桌面登录至 EC2 的 Windows 实例时,您可打开 Windows 资源管理器并将数据从本地驱动器复制到 EBS 卷。
如果您选择使用远程桌面连接来传输敏感数据,则应确保部署了额外的安全层。对于较早版本的远程桌面连接,我们发现其中存在一些安全漏洞,可导致伪装成服务器的计算机能够访问您的数据(即所谓的中间人攻击)。
注:
通过复制粘贴来传输数据往往需要花费一定的时间。粘贴过程完成之前,不要复制其他任何文件或数据。否则,粘贴将终止,导致您需要重新操作。
- 使用 S3 客户端实用程序。
Amazon S3 可用作将数据从本地部署移动到 EBS 卷的中间区域。要将数据传输到 S3,可使用 AWS 管理控制台或用于在 S3 和您自己的计算机之间移动文件的第三方应用程序。将数据传输到 S3 中之后,您可使用 EC2 实例上的同一实用程序将数据从 S3 中传输到该实例上。
- 访问从您自己的 Web 服务器提供的数据。
通过您的 EC2 实例,可使用 HTTP 访问 Web 中可用的任何数据。如果组织中具有一个面向 Web 的服务器,您可将数据放置在该服务器上,然后从您的 EC2 实例进行下载。这种方法的优势在于您可以在 Web 服务器上配置安全性,从而限制可下载数据的用户以及通过 SSL 对事务进行加密。
- 启用 FTP。
通过启用文件传输协议 (FTP),可将文件直接上传到 EC2 实例中。注意,标准的 FTP 不会对信息进行加密,而且密码也以明文的方式发送。要安全地使用 FTP,您需要采取一些额外的安全措施,例如使用 SSL 加密 FTP 会话、限制可通过 FTP 将数据传输到实例的用户,以及在初始数据传输后禁用 FTP。一些第三方产品旨在帮助您设置安全的 FTP 连接
- 使用 AWS 工具。
如果您需要将大量数据传输到 Amazon,请使用便携式存储设备将数据送至 Amazon 并付费,由 Amazon 将数据直接加载到 S3 中,这样可能会使传输过程更加快捷,或者更具有成本效益。Amazon 提供的这项服务称为 AWS雪球。
Amazon 与许多提供数据传输、存储和安全性解决方案的解决方案供应商都有合作。请参阅 AWS 合作伙伴解决方案查找者,了解这些企业中能否有一家可帮助您解决云策略的问题。Esri 就是其中一家提供商,可提供在 Amazon 云中部署 ArcGIS 的不同工程和实施服务。
影响数据传输时间的因素
根据与 AWS 区域的物理接近情况、时间段以及 Internet 连接质量,上述数据传输选项的性能会有所不同。
GIS 数据集,尤其是影像与地图缓存会占用大量的空间,因此在传输之前可能需要进行压缩以降低文件大小或总文件数量,从而提高传输效率(尤其对于地图缓存)。某些 S3 客户端实用程序会限制可传输的单个文件的大小或可存储的单独文件的数量。另外,某些压缩程序还会限制可压缩的数据量。选择数据传输选项时,应将压缩时间与工作量考虑在内。
最后,如果使用 S3,请注意可创建的存储段的数量限制以及关于 S3 存储段的其他限制。Amazon 在存储段限制和局限性中介绍了这些内容。
维护数据路径的完整性
无论何时,要将数据移至一个新的位置时,均应注意对引用该数据的相应路径进行更新。这里需要特别注意的是地图文档,地图文档往往可能会引用数十个位于不同路径中的数据图层。
将 Amazon Elastic Compute Cloud 数据位置注册到 ArcGIS Server 站点有助于减少在发布后修复损坏的数据路径的工作量。有关详细信息,请参阅 ArcGIS Server 帮助中的使用 Server Manager 将数据注册到 ArcGIS Server。
减少修复数据连接需求的另一种方式为,在地图文档中使用相对路径并将地图和数据存储在一个通用文件夹中。