2012-04-05 3 views
5

Ich erkannte, dass ich eine gesamte Site auf S3 hosten konnte (html, js, css, etc.) und dynamisch durch asynchrone Kommunikation zu einer Datenbank (auf EC2 für mich) beim Laden der Seite. Obwohl die index.html-Datei in S3 ist, kann ich Cross-Origin-Anfragen aktivieren, um eine "dynamische" Site zu haben.Hosten einer dynamischen Site auf S3 über asynchrone Ursprungsquellanforderung

Ich frage mich, ob Leute dies getan haben und wenn es irgendwelche Sicherheitsvorbehalte gibt, sollte ich daran denken?

Für mich ist dies eine extrem skalierbare (und billige!) Serverseitige Architektur. Mein Server muss niemals eine einzige Zeile HTML senden. Die einzige Last ist das Senden und Empfangen von Snippets von JSON. Es macht es auch sehr einfach, ein "statisches" Flag zu aktivieren, wenn mein Server stark ausgelastet ist und einfach alles von S3 aus bedient.

+0

Anscheinend sind ein paar Leute (seit dieser Woche, ich selbst eingeschlossen) mit dieser Idee gekommen. http://www.allthingsdistributed.com/2011/08/Jekyll-amazon-s3.html http://davidvaldman.com/post/20588533081/s3dynamiccors Das einzige Problem, das ich denken kann, ist, wenn Sie müssen Ändern Sie die Vorlage, die zum Rendern Ihres Inhalts verwendet wird (z. B. wenn die Domäne, unter der Ihre statischen Dateien geliefert werden, geändert wird). Man benötigt dafür ein Bulk-Update-Tool, und Ihre Site hat kein konsistentes Layout, bis die Aktualisierung abgeschlossen ist. Ich bin immer noch auf der Suche nach weiteren Nachteilen bei diesem Ansatz. – primroot

Antwort

1

Statische Sites auf S3 sind einfach und Hinzufügen von CloudFront CDN-Unterstützung ist ein Kinderspiel.

Da domänenübergreifende Qualifikationen auf dem Tupel {domain, protocol, port} basieren, kommen domänenübergreifende Überlegungen ins Spiel.

Die standardmäßigen domänenübergreifenden Problemumgehungen gelten jedoch weiterhin.

Beispiel Techniken, die ich verwendet habe, Cross-Domain über iFrame zu kommunizieren oder anders:

0) jsonp

1) Access-Control-Allow-Origin:

2) document.domain Einstellen Kommunikation

3 zu ermöglichen,) window.postMessage

Zum Hosten von statischen Assets Auf S3 ist JSONP großartig, aber wahrscheinlich kommt es am meisten ins Spiel, wenn es sich um Ihre Website von S3 und nicht um die Assets handelt (während hier Ihre Website S3 ist und Sie mit einem anderen Server kommunizieren).

Mit Access-Control-Allow-Origin erhalten Sie alle modernen Browser und können sicher oder nicht sicher über die Domäne sprechen. IE hat einen anderen (und sichereren) Standard vorgeschlagen und unterstützt, wird aber voraussichtlich CORS in IE10 unterstützen.

Das ist meine Meinung, aber gehen Sie die CORS-Route, wenn Sie für moderne Browser kodieren.

+0

eine wichtige Anmerkung, jsonp stimmt nicht mit der gleichen Domain ajax in Bezug auf die Leistung überein (Quelle: http: //jsperf.com/ajax-jsonp-vs-ajax-json) –

Verwandte Themen