运行中低带宽Web地图应用程序需要哪种AWS配置?


17

有没有人有在Amazon Web Services(S3,EC2等...)上运行Web地图(平铺服务器+客户端JS脚本)的经验?运行中小带宽(小城市)(城市到小国规模)的中低带宽Web地图应用程序需要哪种AWS配置?

所有图块都将被预渲染并上传到S3。理想情况下,我需要在Web服务器上提供一个可以提供MBTiles的图块服务应用程序(而不是分别上传成千上万个图块位图)。因此,将需要某种EC2实例,但是哪种呢?

感谢您的任何提示。

更新:只是为了阐述我的问题。我基本上在寻找的是一些有关AWS如何以个人身份托管自己的Web地图的反馈(这意味着它应该不会花费太多,比如说每月不超过30美元)。我已经通过“普通”托管服务提供商托管了一段时间的网络地图,但是这些都有其自身的局限性(上传带宽是一个,速度是另一个)。我还在寻找AWS的任何替代方案,以及在将云服务用于Web地图时需要注意的事项。


3
ubuntu上的一个“建设国家级瓷砖服务器”项目Mapserver + MapProxy + AWS(EC2)Postgres Speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperz感谢您的链接。他们的设置更具野心,因为瓦片渲染管道完全在AWS上运行,因此(我想)这可能会非常昂贵。但一个启示就是MapProxy,因为它支持MBTiles。
Igor Brejc 2012年

1
使用小型服务器并提供约500 MB的gis数据,亚马逊已经通知我,我可以使用免费套餐。刚刚说
Brad Nesom 2012年

Answers:


6

在为非常依赖于“经典”架构(例如网络地图)的服务选择架构时,请不要低估RackSpace Cloud Servers或RackSpace Cloud Server 等传统托管解决方案的有效性。 Linode

您将做出难以预测的选择(例如,是否使用S3,是否使用负载均衡器,是否进行备份等,以及花费多少?),并且选择更为重要,更重要的是,您将能够使用您已经熟悉的工具。

不久前我经历了同样的事情,我可以告诉您,决定在Rackspace而不是AWS上托管Web地图服务的关键因素是:

  1. 云服务器比EC2实例更具弹性。实际上,预计 EC2实例将失败,并且它们失败
  2. EBS卷也失败(新闻中有很多可悲的故事),并且I / O通常很差
  3. 除非您选择较大的实例,否则I / O争用可能会成为问题(尤其是如果您计划在EC2上播种图块,而不是将其复制过来)。MTBtiles数据库也可能是一个问题
  4. 每当您重新启动服务器时,公共IP都会更改:这在Linode或Rackspace上不会发生
  5. 您将不得不自己制定备份和还原策略,而Linode和Rackspace都提供点和单击的每日和每周自动快照和还原
  6. 如果运行您的VPS的主机发生故障,Rackspace将负责重新定位您的实例并在其他服务器上重新启动它,并且它们将在4小时内完成此操作(在其SLA中)。我在度假时发生在我身上:感觉很专业。Linode应该做同样的事情
  7. Linode的SLA可用性很高:99.9%,他们声称性能出色,因为它们没有过度配置
  8. Rackspace最近提出了像EBS这样的卷策略,因此磁盘空间不再是一个问题。以前,如果您需要大量的磁盘空间,则HAD才能获得大型实例,而在EC2上,则可以通过更好的控制来配置存储,cpu和内存

因此,我并不是说Amazon AWS要比其他AWS逊色,我只是说有时候传统的托管解决方案可以像基于云的托管解决方案一样扩展。一个显着的例子是StackExchange网络本身。


因此,在您的情况下,我将在Rackspace上启动一个大型实例,然后将所有数据加载到本地Postgis实例中。然后,在配置渲染引擎之后,我将为缓存添加种子。大型实例将足够快地完成播种过程,因此运行起来不会太昂贵。您可以将图块存储在fs,MTBtiles中,甚至可以存储在S3上(顺便说一句,您可以使用CloudFront在CDN上提供S3数据)。

播种完成后,我将重新启动服务器并将其大小调整为一个小实例(甚至是512MB),因为那时它仅需提供静态数据即可。


这得到了一个很长的答案,所以我将在这里停止。如果您希望我在某些方面进行详细说明,请发表评论。

免责声明:我不隶属于Rackspace,Linode或我引用的任何其他提供商。


1
感谢您的深入回答。您指出了一些我尚未考虑的问题(例如EC2的IP更改)。有很多选择。目前,我并不需要太多的云CPU功能,因为我将只托管预渲染的图块(因此没有PostGIS等)。但是存储容量,带宽(和速度)重要。
Igor Brejc 2012年

很好的建议!多年来,我已经意识到,如果您也要使用其他服务,则应该使用AWS。如果您正在云中寻找虚拟机,最好去找其他提供商,例如Digital Ocean,Linode等。这会更便宜,而且功能更强大。
Devdatta Tengshe

5

我一直在使用WebFaction在MapServer的Postgresql / PostGIS数据库中托管GIS数据,我认为该服务<$10每月的费用是无与伦比的。如果要使用PostGIS 2.0,则需要自己安装,这有点棘手,但是默认情况下它们提供PostGIS 1.5(您需要打开支持通知单)。这是CentOS上的共享托管服务,您可以完全灵活地在服务器自己的部分中安装任何东西。

我没有使用Webfaction来提供图块,但是它们确实提供了100GB的空间。我不确定RAM是否会太昂贵,因为默认值为256 MB(每个256块每月额外花费7美元)


顺便说一句,回答此类问题时是否可以包含引荐链接?它不会自觉地影响我的观点,但是理论上可能会!
djq 2012年

1
谢谢你的提示。WebFaction的价格确实吸引人。遗憾的是,他们没有提供有关所提供应用程序的更多信息。顺便说一句,在其上安装PostGIS和MapServer有多困难?
Igor Brejc 2012年

如果仅需要PostGIS 1.5,那就只是一张支持票。PostGIS 2.0并不是很棘手,但只需要下载和安装一些软件包(如GDAL等)即可。支持人员非常乐于助人,而且反应迅速。(意识到我在写时已经删除了一些答案;将对其进行更新。)。
djq 2012年

1
我最近在我的WebFaction虚拟主机帐户上安装了MapServer和TinyOWS。我的空间数据存储在同一Web托管帐户上的PostGIS 1.5数据库中。我描述了在此处启动并运行MapServer WMS服务的步骤:链接
jirikadlec2 2014年

5

使用AWS的另一种可能性:

您可能需要研究使用Seth Fitzsimmons设计的AWS Lambda Tiler方法。他一直在将其用于“ 开放航空地图”项目在Stamen Design工作期间,而我曾将其用于私人客户项目。

我写了一篇详尽的博客文章,记录了如何在Medium.com上设置AWS Lambda Tiler。请注意,该博客文章仅涵盖切片栅格数据,但我们还在Stamen上使用了此过程来驱动我们的全球Terrain Classic地图图块,这些地图图块是通过PostgreSQL,PostGIS,Mapnik和CartoCSS从OSM和自然地球数据的组合生成的。

这种方法的好处之一是,您无需维护切片服务器,而只按每次使用AWS Lambda函数调用付费,我可以肯定的是,对于那些没有这样做的较小项目,这是便宜的一面收到大量的网络流量。这种方法的缺点之一是,平铺是由用户平移和缩放地图进行播种的,因此尽管可以提前预填充平铺,但第一个渲染可能在较慢的一侧。在首次渲染图块之后,将图块写入并存储到S3,因此后续的图块加载要快得多。


好答案。是否有任何自动化的方法可以使用任何AWS服务开发Vector切片?
恶魔之梦

不确定您所说的“自动”是什么意思,但是Brain Bancroft的教程介绍了如何使用AWS上的Tegola作为一种这样的方法来设置MVT服务器:bancroft.io/blog/mvt-server-2
clhenrick

3

要获取有关AWS服务的详细价格,您可以使用位于此处的在线计算器:http : //calculator.s3.amazonaws.com/calc5.html

对于运行Linux的小型EC2实例,如果您愿意使用一年,则可以购买预留实例,每月费用约为25美元。相比之下,按需定价或无合同定价为每月约44。

我认为问题的简短答案是,如果您正在寻找基础架构提供商来满足您的个人Web映射应用程序需求,那么AWS可能会显得过时。如果您正在寻找生产应用程序的IT提供商,特别是如果它们需要HA和可伸缩性,那么AWS是您的答案。如果您要创建利用AWS提供的许多粘合服务(例如SQS,SNS,SWF等)的应用程序,则情况将更加如此。

至于您需要哪种EC2?这是您的应用程序特定要求的功能。基于云的IT的要点是,您可以在购买前尝试一下。在没有承诺的情况下测试您的应用程序,并且只有在您知道的情况下,才可以就一段时间内提交EC2类型做出明智的决定(RI购买)。


3

除了我已经在Amazon EC2上运行Web服务器一段时间以来,我不是对此有很多或几乎没有任何知识的专家,所以这不是答案。

我不确定您是否通过预渲染和上传来充分利用这些工具。

  • 我的aws支出中最大的一部分是我的数据传输(您在谈论加载)。
  • 服务器还需要做什么(除非您正在使用许可证来渲染图块并且没有AWS许可证)。

如果这不能阻止或引起您的重新思考,请先选择您喜欢的地图服务器,然后为该地图服务器选择一个受支持的操作系统,然后转到AWS EC2并找到最能满足您的需求(大小,内存,空间,区域)。
可能包含或可能不包含包含所需所有堆栈的AMI,因此接下来进行配置,然后安装您的堆栈。
有很大的可能性,您将以“免费”或便宜的价格完成所有这些工作。


1
感谢您的回答。我同意预渲染并不理想,但是按需渲染需要更多的云应用程序资源,这也非常昂贵。在预渲染方案中,服务器仅需要从MBTiles(sqlite)存储中获取切片并为其提供服务,因此您需要的CPU,磁盘存储量少得多,并且不需要真正的RDBMS。而且,如果您将最高缩放级别限制为可管理的水平,则上传的图块数量就不会太多。顺便说一句,我已经更新了我的问题。
Igor Brejc 2012年

0

如果您要使用AWS的不同服务,那么您可以选择AWS,因为AWS的成本很高。如果您想以更便宜的价格获得相同的利益,我建议您使用https://fxdata.cloudhttps://digitalocean.com,因为它们俩都具有明显的服务和最便宜的价格。基本上,您将获得具有高度可靠性的所有OS和DBMS选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.