16

我想在亚马逊的服务器上发布一个网站,即:

  1. 运行 CakePHP
  2. 使用 MySQL 存储数据
  3. 让用户通过 Flash 上传音频(当前使用托管的 Flash Media Server),然后收听文件

我是否需要 Amazon 的 EC2 用于网站、RDS 用于 MySQL 数据库和 CloudFront 用于 FMS?我真的很想了解我应该使用哪些服务。

谢谢。

4

3 回答 3

25

首先,您需要 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 协议,您需要手动创建文件链接。此外,无法将您的域名用于文件。

相对于在 EC2、EBS 中安装 MySQL,RDS 也有一些优势:

  • 自动数据库备份
  • 您可以使用 Amazon CloudWatch 监控您的数据库(免费服务)
于 2010-04-14T08:22:27.890 回答
0

您需要 EC2 来启动实例并创建您的 LAMP 服务器。如果您不需要自己管理 MySql 数据库,RDS 很好,但是 RDS 的一个限制因素是您不能进行数据库复制。

对于持久存储,您可以使用 EBS 或 S3 作为数据文件。

于 2010-03-21T11:10:31.063 回答
0

这些回复中没有提到的一件事是可能(或可能不需要)绕过您的文件访问的安全性。云网络适用于可公开访问的数据,但我还没有看到云网络可以为每个用户提供粒度级别的文件访问。虽然您可以对访问文件的 url 进行模糊处理,这样就不容易依次猜测音频文件 ID,但如果人们保留私人音频,这可能还不够。不是说不做,只是谨慎做决定。

于 2011-04-25T23:10:27.413 回答