Irf*_*fan 2 scalability django amazon-ec2
可能的重复:
你能帮助我进行容量规划吗?
我的团队创建了一个不错的 django 应用程序,现在它将部署在 EC2 实例上。现在有几个问题我正在寻找答案:
我知道这些问题的答案是非常主观的,而且大多数事情都取决于应用程序设计和架构。因此,我更有兴趣了解做出此类决定所涉及的过程。
小智 5
在问题的最后,您已经为自己指出,除了“视情况而定”之外,不可能对您的问题给出直接、客观的答案,因此我将尝试根据我的(不是很大)提供帮助使用 AWS 的经验。
我如何确定哪个实例适合我的应用程序(微型、小型、中型、大型等)。换句话说,我怎么知道这个应用程序需要多少内存/处理能力。
通过测试、基准测试、试验。有几篇文章指出与其他提供商的“等效”硬件规范相比,EC2 的性能如何(这是一篇很好的文章)。我的建议是根据您的最佳猜测设置一个环境,并监控、负载测试、对您的实例进行基准测试、试用新实例并决定哪一个最适合您的应用程序要求。如果没有关于您的架构的更多详细信息,这是您可能拥有的最佳答案。
如何量化服务器上的最大并发用户数。这对这个应用程序很重要,我需要知道微型/小型/中型或大型实例将支持多少用户。
同样,这在很大程度上取决于您的系统架构和交易配置文件。它们是 I/O 密集型、cpu 密集型、内存密集型吗?最好的提示是你应该尝试。
我应该将所有东西都安装在单个实例上,还是应该为数据库、备份和应用程序提供单独的实例。
我建议您的应用程序的每一层都有单独的实例。AWS 上的典型设置包括用于您的应用程序的 EC2 实例(是否在弹性负载均衡器之后)(或 Elastic Beanstalk)、用于数据库的另一组 EC2 实例或 RDS、用于持久化文件和备份的 S3 等. 如果你不期望一个巨大的(甚至不是中等的)负载,一个单一的,medium
实例可能完全符合您的需求。分离的主要理由是您可以在未来独立扩展它们。恕我直言,这是 AWS 的最大优势:灵活性。您可以通过单击鼠标(几乎是字面意思)来扩展您的 RDS 系统。您还可以毫不费力地在您的 Web 层前添加一个 Elastic Load Balancer,然后向您的生态系统添加 2 或 3 个额外的 Web 服务器。因此,我会将事情分开,以最大化和利用这种灵活性。
我如何估计添加每个用户所需的额外资源(我认为这不是线性的)
试验、基准测试等。很抱歉重复,但是当您开始部署资源时,您会意识到事情真的不是线性的,并且在使用 AWS 时,您的期望可能并不总是正确的。通过遵循一些简单的提示(如我对上一个项目符号的回答),并不能保证您的系统会根据您的负载轻松扩展,但只要您需要扩展,事情就会变得不那么痛苦。
希望能帮助到你。
归档时间: |
|
查看次数: |
3240 次 |
最近记录: |