Hat jemand Erfahrung mit dem Ausführen von Webkarten (Kachelserver + Client-JS-Scripting) auf Amazon Web Services (S3, EC2 usw.)? Welche Art von AWS-Konfiguration ist erforderlich, um eine Webkarten-App mit niedriger bis mittlerer Bandbreite auszuführen, die einen kleinen (-ish) Bereich abdeckt (von Stadt zu Kleinland)?
Alle Kacheln würden vorgerendert und in S3 hochgeladen. Im Idealfall benötige ich eine Kachel-Serving-App auf dem Webserver, die MBTiles bereitstellen kann (anstatt Hunderttausende Kachel-Bitmaps einzeln hochzuladen). Es wäre also eine Art EC2-Instanz erforderlich, aber welche?
Vielen Dank für alle Hinweise.
UPDATE: Nur um auf meine Frage einzugehen . Was ich grundsätzlich suche, ist ein Feedback darüber, wie tragfähig AWS ist, um Ihre eigenen Webkarten als Einzelperson zu hosten (was bedeutet, dass es nicht zu viel kosten sollte, sagen wir bis zu 30 USD / Monat). Ich habe meine Webkarten für einige Zeit über "normale" Hosting-Anbieter gehostet, aber diese haben ihre eigenen Einschränkungen (Upload-Bandbreite ist eine, Geschwindigkeit ist eine andere). Ich suche auch nach guten Alternativen zu AWS und nach allem, was bei der Verwendung von Cloud-Diensten für Webkarten zu beachten ist.
quelle
Antworten:
Unterschätzen Sie bei der Auswahl einer Architektur für einen Service, der sich so sehr auf eine „klassische“ Architektur wie Webkarten stützt, niemals die Wirksamkeit herkömmlicher Hosting-Lösungen wie RackSpace Cloud Server oder Linode .
Sie haben viel weniger Auswahlmöglichkeiten (wie S3 verwenden oder nicht, Load Balancer oder nicht, Backups usw. oder nicht und wie viel kostet das?), Deren Ergebnis schwer vorherzusagen ist UND, was noch wichtiger ist, Sie können Verwenden Sie Tools, mit denen Sie bereits vertraut sind.
Nachdem ich das vor einiger Zeit selbst durchgemacht habe, kann ich Ihnen sagen, dass die entscheidenden Faktoren für meine Entscheidung, einen Webkarten-Service auf Rackspace anstatt auf AWS zu hosten, folgende waren:
Damit sage ich nicht, dass Amazon AWS anderen unterlegen ist, sondern dass herkömmliche Hosting-Lösungen manchmal sowohl skalierbar als auch Cloud-basiert sind. Ein bemerkenswertes Beispiel ist das StackExchange- Netzwerk.
In Ihrem Fall würde ich also eine große Instanz auf Rackspace starten und dann alle Daten in eine lokale Postgis-Instanz laden. Nach der Konfiguration der Rendering-Engine würde ich dann den Cache aussortieren. Eine große Instanz führt den Seeding-Vorgang so schnell aus, dass die Ausführung nicht zu teuer wird. Sie können Kacheln in der Datei fs, MTBtiles, auch in S3 speichern (übrigens können Sie S3-Daten auf einem CDN mit CloudFront bereitstellen ).
Nach Abschluss des Seedings würde ich den Server neu starten und seine Größe in eine kleine Instanz (möglicherweise sogar 512 MB) ändern, da zu diesem Zeitpunkt nur statische Daten bereitgestellt werden müssten.
Dies wird eine ziemlich lange Antwort, also höre ich hier auf. Wenn Sie möchten, dass ich bestimmte Aspekte erläutere, schreiben Sie einfach einen Kommentar.
Haftungsausschluss: Ich bin nicht mit Rackspace, Linode oder einem anderen von mir genannten Anbieter verbunden.
quelle
Ich habe WebFaction zum Hosten von GIS-Daten in einer Postgresql / PostGIS-Datenbank mit MapServer verwendet und denke, dass der Service für die Kosten
<$10
pro Monat konkurrenzlos ist . Wenn Sie PostGIS 2.0 verwenden möchten, müssen Sie es selbst installieren, was etwas schwierig ist, aber standardmäßig wird PostGIS 1.5 bereitgestellt (Sie müssen ein Support-Ticket öffnen). Dies ist ein gemeinsam genutzter Hosting-Dienst unter CentOS, bei dem Sie die volle Flexibilität haben, um alles in Ihrem eigenen Teil des Servers zu installieren.Ich habe Webfaction nicht für das Servieren von Kacheln verwendet, aber sie bieten 100 GB Speicherplatz. Ich bin mir nicht sicher, ob der Arbeitsspeicher zu teuer wäre, da der Standardwert 256 MB beträgt (und jeder 256-Block zusätzlich 7 USD pro Monat kostet).
quelle
Eine weitere Möglichkeit, die AWS verwendet:
Möglicherweise möchten Sie die von Seth Fitzsimmons entwickelte AWS Lambda Tiler-Methode verwenden. Er hat es für das Open Aerial Map-Projekt verwendet und ich habe es für ein Privatkundenprojekt verwendet, als ich bei Stamen Design gearbeitet habe.
Es gibt einen ausführlichen Blogeintrag, in dem ich dokumentiert habe, wie der AWS Lambda Tiler auf Medium.com eingerichtet wird . Beachten Sie, dass der Blog-Beitrag nur Kachel-Rasterdaten behandelt. Wir haben diesen Prozess in Stamen jedoch auch verwendet, um unsere globalen Terrain Classic-Kartenkacheln zu steuern, die aus einer Kombination von OSM- und Natural Earth-Daten über PostgreSQL, PostGIS, Mapnik und CartoCSS generiert werden.
Einer der Vorteile dieses Ansatzes besteht darin, dass Sie keinen Kachelserver warten müssen und nur pro Nutzung jedes AWS Lambda-Funktionsaufrufs zahlen. Ich bin mir ziemlich sicher, dass dies für kleinere Projekte, die dies nicht tun, billig ist eine große Menge an Web-Traffic erhalten. Ein Nachteil dieses Ansatzes besteht darin, dass die Kacheln vom Benutzer verschoben und gezoomt werden, sodass das erste Rendern langsam ist, obwohl Sie die Kacheln vorzeitig aussäen können. Kacheln werden nach dem ersten Rendern in S3 geschrieben und gespeichert, sodass das anschließende Laden der Kacheln viel schneller erfolgt.
quelle
Um detaillierte Preise für AWS-Services zu erhalten, können Sie den Online-Rechner verwenden, der sich hier befindet: http://calculator.s3.amazonaws.com/calc5.html
Für eine kleine EC2-Instanz unter Linux können Sie, wenn Sie bereit sind, sich auf ein Jahr zu verpflichten, eine Reserved Instance kaufen, die etwa 25 USD pro Monat kostet. Das ist im Vergleich zu etwa 44 / Monat für On-Demand-Preise oder Preise ohne Vertrag.
Ich denke, die kurze Antwort auf Ihre Frage lautet: Wenn Sie einen Infrastrukturanbieter suchen, der sich um die Anforderungen Ihrer persönlichen Web-Mapping-Anwendung kümmert, ist AWS möglicherweise überfordert. Wenn Sie nach einem IT-Anbieter für Produktions-Apps suchen, insbesondere wenn diese HA und Skalierbarkeit erfordern, ist AWS Ihre Antwort. Dies gilt umso mehr, wenn Sie Apps erstellen, die die zahlreichen von AWS bereitgestellten Leimdienste wie SQS, SNS, SWF usw. nutzen.
Welche Art von EC2 brauchst du? Das ist eine Funktion, die Ihre Apps speziell benötigen. Der springende Punkt der Cloud-basierten IT ist, dass Sie es vor dem Kauf ausprobieren können. Testen Sie Ihre App unverbindlich und treffen Sie nur dann eine fundierte Entscheidung, ob Sie sich über einen bestimmten Zeitraum hinweg für einen EC2-Typ entscheiden (RI-Kauf).
quelle
Ich bin kein Experte mit viel oder gar keinem Wissen darüber, außer dass ich seit einiger Zeit einen Webserver auf Amazon EC2 betreibe. Das ist also keine Antwort.
Ich bin mir nicht sicher, ob Sie diese Tools optimal nutzen, indem Sie sie vorab rendern und hochladen.
Wenn dies nicht abschreckt oder zu einem Umdenken führt, wählen Sie wahrscheinlich zuerst Ihren bevorzugten Kartenserver und dann ein unterstütztes Betriebssystem für diesen Kartenserver aus. Wechseln Sie dann zu AWS EC2 und suchen Sie die Instanz, die Ihren Anforderungen am besten entspricht (Größe, Speicher, Raum, Region).
Möglicherweise gibt es ein AMI, das den gesamten Stapel enthält, den Sie benötigen. Lassen Sie es als Nächstes konfigurieren und installieren Sie dann Ihren Stapel.
Es besteht die starke Möglichkeit, dass Sie all dies "kostenlos" oder kostengünstig erledigen.
quelle
Das stimmt, Sie können sich für AWS entscheiden, wenn Sie die verschiedenen Dienste von AWS nutzen, da dies recht kostspielig ist. Wenn Sie günstigere Preise mit den gleichen Vorteilen erzielen möchten, würde ich für https://fxdata.cloud oder https://digitalocean.com empfehlen, da beide über bemerkenswerte Services und die günstigsten Preise verfügen. Grundsätzlich erhalten Sie alle Betriebssystem- und DBMS-Optionen mit hoher Zuverlässigkeit.
quelle