0

亚马逊上有这个例子,一个高流量的网络应用程序。我注意到他们使用 S3 作为他们的内容交付方法。我想知道我是否需要一个用于内容交付的 Web 服务器和一个用于我的应用程序的 Web 应用程序。我不明白为什么他们在图中有 2 个 Web 服务器和 2 个 Web 应用程序。

建立一个通过 S3 提供图像和静态内容并通过常规存储提供其余内容的网站的最佳方式是什么?

我的最后一个问题是,我是否可以将 S3 视为主存储,足够可靠以至于我只能将静态内容保留在那里并且没有正常存储作为备份?

来自亚马逊的图表

4

1 回答 1

0

这是一个非常笼统的图表,具体的图表将根据整体架构的具体情况而有所不同。

话虽如此,我相信 Web Server 代表 Apache 或 Nginx 之类的东西,而 App Server 代表 Rails、Rack Server、Unicorn、Gunicorn、Django、Sinatra、Flask、Jetty、Tomcat 等。在某些情况下,您可以合并Web Server 和 App Server 一起使用,例如使用 python mod_wsgi 部署 Apache 来运行您的 Django 应用程序。(所以取决于架构)

建立一个通过 S3 提供图像和静态内容并通过常规存储提供其余内容的网站的最佳方式是什么?

除了将您的动态内容指向您的数据库(SQL 和 NoSQL)并将您的静态文件指向 S3 存储桶(图像、css、Jquery 代码等)之外,没有真正最好的方法 您还可以根据您的应用程序使用第三方模块堆。例如,您可以在 Django 中使用django-storages模块完成此操作。您可以为其他应用程序堆栈(如 Rails)找到类似的模块。

我的最后一个问题是,我是否可以将 S3 视为主存储,足够可靠以至于我只能将静态内容保留在那里并且没有正常存储作为备份?

S3 非常可靠,它们为您的数据提供 99.999999999% 的可靠性。如果您使用他们的 RRS(Reduced Redundancy Storage),这会下降,但如果您想使用它,您可能希望将数据备份到非 RRS 存储桶中。无论如何,如果它是非常关键的数据,您可以自由地将数据备份到其他地方以防万一。

请注意,在图表中,他们还建议对您的静态文件使用 CloudFront,如果您的用户将从不同的地理区域访问您的应用程序,这将特别有用。

希望这可以帮助。

于 2014-02-07T18:14:05.847 回答