在 Amazon 弹性计算云 (EC2) 中创建 ArcGIS 地图或影像服务缓存与在云之外创建缓存具有以下区别:
- 有大量不同的实例大小和价格可供您选择。
- 您可以将卷添加到您的实例,用于放置缓存。
本主题将详细介绍以上因素。
选择实例大小和价格
Amazon EC2 为您提供了多种实例大小和规格。每种实例均按使用的小时数进行收费,价格各有不同。实例越大,特别是对于拥有很大内存的实例,生成切片就越快。实例越小,生成切片的速度会越慢,但价格也会相对低廉。
您可以使用一个强大的实例在附加的 Amazon 弹性块存储 (EBS) 卷上创建缓存。缓存创建完毕之后,可分离 EBS 卷并将其附加到普通实例(可能比较小且价格低廉)。然后,您可终止用于缓存的高性能实例。通过这种方式,您可使用云的强大功能进行缓存,而无需在使用完毕后仍然需要对这一相对昂贵的实例支付费用。
您需要在价格和速度之间作出决定。使用价格低、性能弱的实例并非总是最经济的选择,因为缓存的总成本取决于创建切片所花费的时间。另一方面,性能最强大的实例所产生的缓存总成本也可能更高:尽管缓存所花费的时间更短,但每小时使用该实例的价格会更高。
通过使用较小的测试缓存(大概中等城市的大小)以及一个自定义的 Amazon 机器映像 (AMI) 或站点模板,您可对不同的实例类型执行相对价廉的测试以找到一种最经济的缓存方式。
性能强大的 EC2 实例类型非常适用于定期缓存更新,因为许多更新工作流程都有严格的时间限制。
选择缓存时所使用的地图服务实例数
每个 EC2 实例都有特定数量的虚拟 CPU 内核。当从 Amazon Web Services 管理控制台中选择实例类型时,可看到 CPU 内核的数量。该核数可帮助您确定用于缓存的缓存工具 (CachingTools) 地理处理服务的实例数。使用太多的服务实例会导致 CPU 过载,而服务实例太少则会导致 CPU 利用率不足。
虽然可通过反复试验达到最佳数量,但一个好的起点是允许 CachingTools 服务的最大实例数 n + 1,其中 n 是站点中单个 EC2 实例上的虚拟内核数。
自动伸缩
构建大缓存时,您可能希望设置自动伸缩触发器,这些触发器会随着 CPU 使用率的提高而自动增加用于处理缓存的 EC2 实例数。但是,自动伸缩更适用于处理流量中的异常峰值。创建缓存时,您已知道将需要巨大的计算能力,因此,在构建缓存前便启动所有必要实例(而不是等待它们通过自动伸缩触发器按顺序启动)更有意义。
选择缓存的放置位置
如向 Amazon Web Services 传输数据的策略中所述,可将数据放置在多种类型的位置上。首次创建缓存时,将其写入附加到 EC2 实例上的 EBS 卷上。该卷在构建站点时附加,并且如果该卷足够大,则最好将缓存存放到该位置。如果该卷过小,可将其替换为根据现有数据卷快照创建的更大的卷,并在其中注册服务器缓存目录。
请勿在 EC2 实例的 C 或根驱动器上构建缓存。如果终止实例,缓存将丢失。
如果您在本地磁盘上具备现有缓存,且习惯使用 Amazon 简单存储服务 (S3) 存储段,则可将 CompactV2 缓存复制到 Amazon S3 中的存储段,并将地图缓存存储在其中。无法使用注册为缓存目录的云存储来创建或管理缓存。为了支持缓存消耗,缓存的存储格式应为 CompactV2,因为该格式经过优化,可以实现最优性能。如果现有缓存使用的是较旧的存储格式,请使用升级地图缓存存储格式地理处理工具来升级到 CompactV2 格式。
- 可通过以下方式创建 CompactV2 格式的缓存:发布使用此格式的新缓存地图或影像服务,或使用升级地图缓存存储格式地理处理工具将现有缓存转换为 CompactV2 格式。
- 在 AWS 上 ArcGIS Server 站点所在的同一区域创建 Amazon S3 存储段。
- 将服务缓存从本地驱动器复制到 AWS 上的 ArcGIS Server 站点,然后将其置于 Amazon S3 存储段内名为 arcgiscache 的文件夹中。
有关向 S3 存储段复制内容的示例,请参阅 AWS 文档。请注意,如果缓存很大(如大小以 TB 计),您可能需要将其置于硬盘中并发送至 Amazon,再由后者进行上传。
- 登录到运行缓存服务站点的 ArcGIS Server Manager,然后通过 AWS 上的 ArcGIS Server 站点将 S3 存储段注册为云存储和缓存目录。
- 如果您在 ArcGIS Server Manager 中仍处于登录状态,可执行以下任一操作:
- 停止现有服务并更改其缓存目录,以指向 S3 存储段中的新云存储缓存目录。
- 发布新的服务,以分配您在步骤 3 中置于 S3 存储段内的缓存。
- 重新启动服务。
注:
如果您更新了地图服务的缓存,则更新的缓存将在 ArcGIS Server 站点的本地驱动器上生成。必须将缓存重新复制到 S3 存储段,以便该服务的用户可以使用更新后的缓存内容。