我需要亚马逊的 EC2、Cloudfront、RDS 吗?
Posted
技术标签:
【中文标题】我需要亚马逊的 EC2、Cloudfront、RDS 吗?【英文标题】:Do I need Amazon's EC2, Cloudfront, RDS? 【发布时间】:2011-01-29 21:01:39 【问题描述】:我想在亚马逊的服务器上发布一个网站:
我是否需要 Amazon 的 EC2 用于网站、RDS 用于 MySQL 数据库以及 CloudFront 用于 FMS?我真的很想知道我应该使用哪些服务。
谢谢。
【问题讨论】:
【参考方案1】:您需要 EC2 来启动实例并创建您的 LAMP 服务器。如果您不需要自己管理 MySql 数据库,RDS 很好,但是 RDS 的一个限制因素是您不能进行数据库复制。
对于持久存储,您可以使用 EBS 或 S3 存储数据文件。
【讨论】:
EBS/S3 是否支持闪存媒体服务器/文件?我不太明白。【参考方案2】:首先,您需要 EC2 服务才能拥有一个虚拟机,您可以在其中安装 Apache、PHP 和您的 Web 应用程序。
那么您还需要一个数据库服务器和媒体文件的数据存储库。推荐的方式正是您所建议的:RDS for MySQL 和 CloudFront 作为文件存储库。
最初,上述服务(RDS、CloudFront 甚至 EBS)均不可用。开发人员无法使用 MySQL 数据库,因为即使它安装在 EC2 实例中,也不能保证实例保持正常运行,如果实例丢失,数据也会丢失。为此,引入了 EBS。它创建了一个具有保证持久性的挂载存储,您可以从 EC2 实例访问该存储。理论上你可以在那里安装 MySQL 并用它来存储 flash 文件。如果只想通过 HTTP 协议提供文件,使用 EBS 没有问题。
但是,CloudFront 有一些优势:
用户会被自动路由到最近的边缘位置,以便高性能地交付您的内容。 您还可以使用它通过 RTMP 协议流式传输内容。 您不必担心存储空间的大小。使用 EBS,您可以创建具有特定大小的存储。如果您后来发现需要更多存储空间,这可能会成为问题。使用 CloudFront,文件安装在 S3 中,您无需担心它们的大小。 您不会浪费 Web 服务器容量。如果您使用 EBS,文件将由 EC2 中的服务器提供。您也可以使用 S3,但不能使用 RTMP 协议,您需要手动创建文件链接。此外,这些文件不能使用您的域名。
RDS 也比在 EC2、EBS 中安装 MySQL 有一些优势:
自动数据库备份 您可以使用 Amazon CloudWatch 监控您的数据库(免费服务)【讨论】:
您可以在 S3 上对域进行 CNAME,就像使用 CloudFront 一样。【参考方案3】:这些回复中没有提到的一件事是可能(或可能不需要)绕过您的文件访问的安全性。云网络适用于可公开访问的数据,但我还没有看到云网络可以为每个用户提供粒度级别的文件访问。虽然您可以对访问文件的 url 进行模糊处理,这样就不容易依次猜测音频文件 ID,但如果人们保留私人音频,这可能还不够。不是说不做,只是谨慎做决定。
【讨论】:
Cloudfront 和 S3 都支持“私有”资产,这意味着只能使用带时间戳和签名的 url 访问文件。文件名本身甚至不必是随机的。以上是关于我需要亚马逊的 EC2、Cloudfront、RDS 吗?的主要内容,如果未能解决你的问题,请参考以下文章
EC2 上用于 Wordpress 的 Cloudfront
CLOUDFRONT EC2 源错误 CloudFront 试图建立与源的连接 [重复]