用途将是从 S3 上的数据中提供动态内容。你可以对“正常”做出任何你认为正常的定义。
小型、中型和大型实例呢?
好的。人们希望使用一些数据,所以在这里:
Web 服务在启动时大约 100kb,并且使用 AJAX,因此它不必重新加载整个页面(如果有的话)。当它加载页面时,它将向数据库 (S3) 发送 20 到 30 个请求以获取小块文本(如评论)。普通用户将在页面上停留 10 分钟,在偏移处转换为大约 100kb,通过请求转换为大约 400kb。假设晚上和白天的命中量相同。
用途将是从 S3 上的数据中提供动态内容。你可以对“正常”做出任何你认为正常的定义。
小型、中型和大型实例呢?
好的。人们希望使用一些数据,所以在这里:
Web 服务在启动时大约 100kb,并且使用 AJAX,因此它不必重新加载整个页面(如果有的话)。当它加载页面时,它将向数据库 (S3) 发送 20 到 30 个请求以获取小块文本(如评论)。普通用户将在页面上停留 10 分钟,在偏移处转换为大约 100kb,通过请求转换为大约 400kb。假设晚上和白天的命中量相同。
取决于您提供内容的内容和方式,更不用说这些用户访问它的频率、内容的大小和类型等。基本上,您提供的任何信息都无法让我们以任何有意义的方式回答您的问题。
正如其他人所说,这可能需要在您的确切条件下进行测试。幸运的是,如果您愿意设置服务器设置的测试版本,您可以生成模拟用户的实例。创建一堆这样的测试实例,并在它们上运行 Apache 的 ab 基准测试工具,将它们引导到您的测试站点。如果实例与您的测试站点位于同一可用区内,则您无需为带宽付费,只需按小时为正在运行的实例付费。运行一个不到一个小时的测试,然后关闭测试实例,组织这个压力测试的成本很低。
作为一个数据点,在我的小型实例上本地运行 Apache ab 工具,该实例为数据库密集型 Drupal 站点提供服务,它报告了服务器每秒处理 45-60 个请求的能力。我假设 ab 是一个合理的基准测试工具,我可能错了,但这就是我所看到的。
作为一个建议,我不太了解您的特定情况,我会将您的数据库移动到弹性块存储 (EBS) 卷。S3 并非真正用于托管数据库,它的延迟可能会影响您的性能。如果您担心的话,可以轻松地将 EBS 卷快照到 S3 以进行备份。
有人可能会争辩说,如果设计得当,一个实例可以支持多少用户并不重要。理想情况下,当您的实例饱和时,您可以启动一个新实例来管理流量。
显然,这使部署和设计变得非常复杂。
但除此之外,EC2 实例实际上是一个低端 Linux 机器(取决于您选择的模型)。
让我们换个说法,你想支持多少用户?