我需要管理一些配置文件。这些文件可以存储在 AWS S3 上并通过 URL 检索。另一种方法是使用应用程序服务器并将 JSON 内容存储到数据库并公开 API 来检索数据。
每种方法的优缺点是什么?
答案1
这是一个相当开放的问题,正如 jeffatrackaid 在上面的评论中所说,这最终可能会演变成一场辩论。但话虽如此,以下是我的看法,因为我在过去几年中管理了一个横跨多个 AWS 区域的规模相当大的环境。
如果您只需要托管静态内容,那么 S3 是迄今为止最简单的方法。您只需创建一个存储桶,启用 Web 访问,上传文件,就大功告成了。如果您预计流量很大,您甚至可以轻松利用 Amazon 的 CloudFront CDN。唯一的潜在缺点(可能并不重要)是域名的格式为 (bucketname).(region).amazonaws.com。如果您只使用 HTTP,那么您可以随时设置一个 CNAME 来指向它,这样您就可以使用自己的域名。如果您想使用 HTTPS,那么您要么必须坚持使用 amazonaws.com DNS 名称,要么忍受 SSL 不匹配错误(如果您想使用自己的域名)(或使用 CloudFront 并支付一笔小额费用来支持其上的自定义 SSL 证书)。
设置 EC2 实例来提供内容的最大优势在于,如果内容本质上是动态的和/或您想使用自定义 SSL 证书(比在 CloudFront 中使用证书的成本低很多)。
启动您自己的 EC2 实例的最大缺点是您需要意识到 EC2 的设计方式使得您需要为服务器可能死机、需要重新启动等情况做好准备。因此您需要以某种方式备份您的整个服务器配置(可能仅通过构建 AMI 或 Amazon 系统映像)。
当您运行 EC2 实例时,该实例是在物理服务器上运行的。与 VMWare 等环境不同,它在运行时无法迁移到另一台物理服务器。因此,如果出现硬件故障,Amazon 会决定升级或淘汰运行服务器的硬件等。然后他们会安排重新启动服务器以将其迁移到新硬件。