使用S3作为数据访问服务器的优点和缺点是什么?

我需要pipe理一些configuration文件。 这些文件可以存储在AWS S3上并通过URL检索。 另一种方法是使用应用程序服务器并将JSON内容存储到数据库并公开API以检索数据。

每种方法的优缺点是什么?

这是一个相当开放的问题,正如上面的说明中所述,这可能最终会变成一场辩论。 但是说了这么多,我认为这是我的两分钱,在过去的几年里,它pipe理着一个体面的环境,跨越了多个AWS区域。

如果您只需要托pipe静态内容,那么S3是最简单的方法。 您只需创build一个存储桶,启用Web访问,上传文件,就完成了。 如果您希望获得大量的stream量,您甚至可以非常轻松地利用Amazon的CloudFront CDN。 唯一潜在的缺点是,域名的格式可能是(bucketname)。(region).amazonaws.com。 如果你只使用HTTP,那么你总是可以设置一个CNAME指向这个,这样你就可以使用自己的域名。 如果你想使用HTTPS,那么你必须坚持使用amazonaws.com的DNS名称,或者如果你想使用自己的域名(或者使用CloudFront并支付一大笔费用来支持自定义SSL证书就可以了)。

设置EC2实例来提供内容的最大好处是,如果内容是dynamic的,或者您想使用自定义的SSL证书(比在CloudFront中使用一个更低的成本)。

打开自己的EC2实例最大的缺点是你需要知道EC2的devise方式,你需要准备好你的服务器可能死亡,需要重新启动等事件。你会想保持你的整个服务器configuration备份(可能只是build立一个AMI,或亚马逊机器图像)。

当您有一个正在运行的EC2实例时,它正在物理服务器上运行。 与VMWare环境不同,在运行时不能将其迁移到其他物理服务器。 因此,如果发生硬件故障,Amazon决定升级或退出服务器运行的硬件等,然后他们将安排重新启动服务器以将其移动到新硬件。