低から中帯域幅のWebマップアプリを実行するには、どのようなAWS構成が必要ですか?


17

Amazon Webサービス(S3、EC2など)でWebマップ(タイルサーバー+クライアントJSスクリプト)を実行した経験はありますか?低(中程度の)エリア(都市から小国のサイズ)をカバーする低から中帯域幅のWebマップアプリを実行するには、どのようなAWS構成が必要ですか?

すべてのタイルは事前にレンダリングされ、S3にアップロードされます。理想的には、(数十万のタイルビットマップを個別にアップロードするのではなく)MBTilesを提供できるタイルサーバーアプリがWebサーバーに必要です。したがって、何らかのEC2インスタンスが必要になりますが、どのような種類ですか?

ヒントをありがとう。

更新:私の質問について詳しく説明します。基本的に私が探しているのは、個人としてあなたのウェブマップをホストするためにAWSがどれだけ実行可能かについてのフィードバックです(つまり、月額30ドルまでと言ってあまり高くないはずです)。「通常の」ホスティングプロバイダーを介してしばらくの間、Webマップをホストしてきましたが、これらには独自の制限があります(アップロード帯域幅は1つ、速度は別です)。また、AWSに代わる優れた代替品や、Webマップにクラウドサービスを使用する際に注意するものを探しています。


3
1つのプロジェクト「Building a National Tile Server」Mapserver + MapProxy + AWS(EC2)Postgres on ubuntu speakerdeck.com/u/walkermatt/p/building-a-national-tile-server
Mapperz

1
@Mapperzリンクをありがとう。セットアップは少し野心的で、タイルレンダリングパイプラインが完全にAWSで実行されているため、これ(非常に高価)になる可能性があります。しかし、MBTilesをサポートしているため、1つの啓示はMapProxyです。
イゴールブレジュ

1
小型サーバーを使用し、約500 MBのgisデータを提供しています。Amazonから無料利用枠の資格があることを通知されています。ちょうど言って
ブラッドネソム

回答:


6

Webマップのような「クラシック」アーキテクチャに非常に依存するサービスのアーキテクチャを選択する場合、RackSpace Cloud ServersやLinodeなどの従来のホスティングソリューションの有効性を過小評価しないでください。

結果を予測するのが困難で、さらに重要なことには、S3を使用するかどうか、ロードバランサーを使用するかどうか、バックアップなどを選択するなどの選択肢がはるかに少なくなります。すでに使い慣れているツールを使用してください。

しばらく前に同じことを行ったことがありますが、AWSではなくRackspaceでWebマップサービスをホストするという決定の重要な要因は次のとおりでした。

  1. Cloud Serverは、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には99.9%の優れた可用性SLAがあり、過剰なプロビジョニングをしないため、優れたパフォーマンスを主張します。
  8. Rackspaceは最近、EBSのようなボリューム戦略を考案したため、ディスクスペースはもう問題になりません。以前は、大量のディスクスペースを必要としていた場合、大きなインスタンスを取得する必要がありましたが、EC2では、きめ細かな制御でストレージ、CPU、およびメモリをプロビジョニングできます

これにより、Amazon AWSが他のサービスより劣っているとは言いません。従来のホスティングソリューションがクラウドベースのソリューションと同様に拡張できることもあります。注目すべき例は、StackExchangeネットワーク自体です。


したがって、あなたの場合、Rackspaceで大きなインスタンスを起動し、ローカルのPostgisインスタンスにすべてのデータをロードします。次に、レンダリングエンジンを構成した後、キャッシュをシードします。大規模なインスタンスは、実行するのに費用がかかりすぎないように、シード処理を十分に速く完了します。S3でもfs、MTBtilesにタイルを保存できます(ただし、CloudFrontを使用してCDNでS3データを提供できます)。

シードが完了した後、サーバーを再起動し、その時点で静的データのみを提供する必要があるため、小さな(おそらく512MBの)インスタンスにサイズ変更します。


これはちょっと長い答えを得ているので、ここでやめます。特定の側面について詳しく説明したい場合は、コメントをお寄せください。

免責事項:Rackspace、Linode、または私が引用した他のプロバイダーと提携していません。


1
詳細な回答をありがとう。あなたは、私が考慮していないいくつかの問題を指摘しました(EC2のIP変更など)。から選択する多くのオプション。現時点では、事前レンダリングされたタイルのみをホストするため(PostGISなどは使用しないため)、クラウドCPUの電力をあまり求めていません。ただし、ストレージ容量、帯域幅(および速度)重要です。
イゴールブレジュ

素晴らしいアドバイス!私が長年にわたって認識してきたことは、AWSの他のサービスも使用する場合は、AWSを使用する必要があるということです。クラウドでVMを探している場合は、Digital Ocean、Linodeなどのような他のプロバイダーに行くのが最善です。これは、安価でありながら堅牢です。
Devdatta Tengshe

5

私はMapServerを使用してPostgresql / PostGISデータベースでGISデータをホストするためにWebFactionを使用してきましたが、このサービスは<$10月あたりのコストで他の追随を許さないと思います。PostGIS 2.0を使用する場合は、少し手間がかかりますが自分でインストールする必要がありますが、デフォルトではPostGIS 1.5が提供されます(サポートチケットを開く必要があります)。これはCentOS上の共有ホスティングサービスであり、サーバーの任意の部分に何でもインストールできる柔軟性を備えています。

私はタイルの提供にWebfactionを使用していませんが、100GBのスペースを提供します。デフォルトが256 MBであるため、RAMのコストが高すぎるかどうかはわかりません(各256ブロックのコストは1か月あたり7ドル追加されます)


ちなみに、このような質問に答えるときに参照リンクを含めることはできますか?それは意識的に私の見解に影響を与えませんが、理論的には可能です!
djq

1
ヒントをありがとう。WebFactionの価格は魅力的です。残念なことに、彼らは彼らが提供するアプリに関する詳細な情報を提供していません。ところで、PostGISとMapServerのインストールはどれくらい大変でしたか?
イゴールブレジュ

PostGIS 1.5のみが必要な場合は、単なるサポートチケットです。PostGIS 2.0はそれほどトリッキーではありませんが、GDALなどのいくつかのパッケージをダウンロードしてインストールするだけで済みます。サポートスタッフは非常に親切で迅速に対応してくれます。(書き込み時に回答の一部を消去したことを認識してください。更新します。)
djq

1
最近、WebServerのWebホスティングアカウントにMapServerとTinyOWSをインストールしました。空間データは、同じWebホスティングアカウントのPostGIS 1.5データベースに保存されます。私は私がアップし、ここで実行しているのMapServer WMSサービスを作るためにやった手順説明:リンク
jirikadlec2

5

AWSを使用するもう1つの可能性:

Seth Fitzsimmonsが考案したAWS Lambda Tilerメソッドの使用を検討することもできます。彼はこれをOpen Aerial Mapプロジェクトで使用しており、私はStamen Designで働いている間にプライベートクライアントプロジェクトで使用しました。

Medium.comでAWS Lambda Tilerをセットアップする方法を文書化した徹底的なブログ投稿があります。ブログの投稿ではラスターデータのタイリングのみを取り上げていますが、PostgreSQL、PostGIS、Mapnik、およびCartoCSSを介してOSMとNatural Earthデータの組み合わせから生成されるグローバルテレインクラシックマップタイルを駆動するために、このプロセスをStamenでも使用しました。

このアプローチの利点の1つは、メンテナンスするタイルサーバーがないことと、各AWS Lambda関数呼び出しの使用ごとにのみ支払うことです。これは、大量のWebトラフィックを受信します。このアプローチの欠点の1つは、ユーザーがマップをパンおよびズームすることによってタイルがシードされるため、タイルを事前にシードすることもできますが、最初のレンダリングが低速側になる可能性があることです。タイルは、最初にレンダリングされた後に書き込まれ、S3に保存されるため、後続のタイルの読み込みははるかに高速です。


いい答え。AWSサービスでベクタータイルを自動化する方法はありますか?
デビルズドリーム

「自動化」の意味はわかりませんが、AWSでTegolaを使用してMVTサーバーをセットアップする方法に関するBrain Bancroftのチュートリアル:bancroft.io/blog/mvt-server-2
clhenrick

3

AWSサービスの詳細な価格を取得するには、http//calculator.s3.amazonaws.com/calc5.htmlにあるオンライン計算機を使用でき ます。

Linuxを実行している小さなEC2インスタンスの場合、1年にコミットする場合は、月額約25ドルのリザーブドインスタンスを購入できます。これは、オンデマンド価格設定、または契約なしの価格設定の約44 /月と比較してです。

あなたの質問に対する簡単な答えは、個人のウェブマッピングアプリケーションのニーズを処理するインフラストラクチャプロバイダーを探している場合、AWSは過剰である可能性があるということです。本番アプリのITプロバイダーを探している場合、特にHAとスケーラビリティが必要な場合は、AWSがあなたの答えです。これは、SQS、SNS、SWFなど、AWSが提供する多くのグルーサービスを活用するアプリを作成している場合にさらに当てはまります。

どのような種類のEC2が必要ですか?これは、アプリ固有の要件である機能です。クラウドベースのITのポイントは、購入する前に試すことができることです。コミットメントなしでアプリをテストし、知っている場合にのみ、一定期間(RIの購入)でEC2タイプにコミットすることについて十分な情報に基づいた決定を下してください。


3

私は、しばらく前からAmazon EC2でWebサーバーを実行していること以外は、それについて多くの知識や専門知識を持っていません。したがって、これは答えではありません。

これらのツールを事前レンダリングとアップロードによって最大限に活用しているかどうかはわかりません。

  • 私のaws費用の最大の部分は、データ転送(ロードについて話していること)にあります。
  • サーバーは他に何をする必要がありますか(タイルのレンダリングにライセンスを利用していて、AWSのライセンスを持っていない場合)。

それが思い止まらなかったり、考え直したりしない場合は、おそらく最初にお気に入りのマップサーバーを選択し、次にそのマップサーバーでサポートされているOSを選択してから、AWS EC2に移動し、ニーズに最適なインスタンス(サイズ、メモリ、スペース、地域)。
必要なすべてのスタックを含むAMIがある場合とない場合があるため、次に構成してからスタックをインストールします。
「無料」または安価ですべてを達成できる強力な可能性があります。


1
ご回答有難うございます。事前レンダリングは理想的ではありませんが、オンデマンドレンダリングには非常に多くのクラウドアプリリソースが必要です。事前レンダリングのシナリオでは、サーバーはMBTiles(sqlite)ストレージからタイルをフェッチして処理するだけなので、必要なCPU、ディスクストレージははるかに少なく、実際のRDBMSは不要です。そして、最高のズームレベルを管理可能なものに制限する場合、アップロードするタイルはそれほど多くありません。ところで、質問を少し更新しました。
イゴールブレジュ

0

AWSには非常にコストがかかるため、異なるサービスを使用している場合は、AWSに行くことができます。同じ利点でより安い価格を求めている場合は、両方ともかなりのサービスと最も安い価格を持っているため、https://fxdata.cloudまたはhttps://digitalocean.comをお勧めします。基本的に、すべてのOSおよびDBMSオプションを高い信頼性で入手できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.