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

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

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

谢谢。

有帮助吗?

解决方案

首先,您需要 EC2 服务才能拥有虚拟机,您可以在其中安装 Apache、PHP 和 Web 应用程序。

然后,您还需要一个数据库服务器和媒体文件的数据存储库。推荐的方法正是您所建议的:RDS for MySQL 和 CloudFront 作为文件存储库。

最初,上述服务(RDS、CloudFront 甚至 EBS)均不可用。开发人员无法使用MySQL数据库,因为即使它安装在EC2实例中,也不能保证该实例保持正常运行,如果实例丢失,数据也会丢失。为此,引入了 EBS。它创建了一个具有持久性保证的已安装存储,您可以从 EC2 实例访问该存储。理论上你可以在那里安装 MySQL 并用它来存储闪存文件。如果您只想通过 HTTP 协议提供文件服务,那么使用 EBS 没有问题。

然而,CloudFront 具有一些优势:

  • 用户会自动路由到最近的边缘站点,以高性能地交付内容。
  • 您还可以使用它通过 RTMP 协议传输内容。
  • 您不必担心存储空间的大小。使用 EBS,您可以创建具有特定大小的存储。如果您后来发现需要更多存储空间,这可能会成为问题。使用 CloudFront,文件安装在 S3 中,您无需担心它们的大小。
  • 您不会浪费网络服务器的容量。如果您使用 EBS,文件将由 EC2 中的服务器提供服务。

您还可以使用 S3,但无法使用 RTMP 协议,并且需要手动创建文件的链接。此外,也无法将您的域名用于这些文件。

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

  • 自动数据库备份
  • 您可以使用 Amazon CloudWatch(免费服务)监控您的数据库

其他提示

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

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

这些回复中没有提到的一件事是您的文件访问可能需要(也可能不需要)的安全性。云网络非常适合公开访问数据,但我还没有看到能够为每个用户提供细粒度文件访问的云网络。虽然您可以混淆访问文件的 url,以便不容易连续猜测音频文件 ID,但如果人们保留私人音频,这可能还不够。不是说不做,而是谨慎做决定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top