亚马逊网络服务架构和成本核算

Posted

技术标签:

【中文标题】亚马逊网络服务架构和成本核算【英文标题】:Amazon Web Services Arfchitecture and Costing 【发布时间】:2013-07-20 19:37:59 【问题描述】:

我对 Amazon Web Services 非常陌生。对于最终确定架构和制定成本计算计划的任何帮助,我将由衷地感谢。我正在为我们正在设计的动态网站设计一个基于 AWS 的解决方案。首先,我需要有 2 个高 CPU 中利用率 EC2 实例(两者都将充当 Web 服务器)、1 个用于我的数据库的高 CPU 中利用率 EC2 实例(它将是 Postgre SQL)和 1 个高 CPU 中利用率 EC2 实例作为我的数据库的只读副本。我还将拥有大量静态内容,例如图像、视频或我正在考虑使用 S3 存储桶的 .doc 文件。所以,我的网站将是一个动态+静态的网站。我期待用户从 0 快速指数级增长到每年 100 万。因此,我需要根据流量扩展我的 EC2 组合(如前所述)。我正在考虑使用 CloudFormation 堆栈来快速扩展我的部署。此外,为了有效地路由流量,我将使用单个 ELB 开始。另外,我想根据用户 ID 对我的数据库进行垂直分区。例如,一个 EC2 数据库实例上的用户 ID 1 - 2000 用户在第二个 EC2 数据库实例上的用户 ID 为 2001 到 4000 等等......我将仅自动扩展 Web 服务器 EC2 实例,而我的数据库 EC2 实例将有 100% 的正常运行时间

我的问题是:

    我的 Web 服务器 EC2 实例的自动扩展策略应该是什么?当扩展如此动态时,我如何知道每月的成本是多少。我的意思是有什么方法可以预测,以便我可以进行成本收支平衡分析? 是否所有 EC2 实例(Web 服务器和数据库)都必须需要 EBS 支持,还是临时存储就足够了?我相信对于数据库 EC2 实例,我需要 EBS 支持。 Web 服务器 Ec2 实例呢? 假设我最终扩展到 100 个 EC2 实例。只有一个 ELB 就足够了,还是我需要多个 ELB? 如何分析一个高 CPU 中利用率 EC2 实例在发生故障之前可以处理多少 HTTP 请求? CloudFront 可以用于托管这种动态 + 静态站点还是仅用于静态站点?

请帮助我解决这些问题,因为我对云解决方案架构一无所知...

谢谢... 维克拉姆。

【问题讨论】:

【参考方案1】:

这是一个white paper,我们 (RunSignUp) 写了关于我们如何在亚马逊上扩展的信息。我们的用例是处理在线比赛注册的开放,其中 50,000 名跑步者希望在 10 分钟内注册。这显示了我们如何配置所有内容,包括设置以及我们开发的一些代码。我们基本上遇到了与您相同的问题,并且没有找到任何具有如何构建可扩展应用程序以及亚马逊如何使用它来扩展的完整用例的任何内容。希望对您有所帮助。

【讨论】:

【参考方案2】:

快速尝试答案以帮助您入门;

#1 太大,不写书就无法回答,它与系统及其设计有太多关系,无法以通用方式回答。 #2 您肯定需要为您的数据库提供支持。另一方面,Web 服务器使用临时存储可能会更好,它们越无状态/免设置,动态创建/销毁实例就越容易。 #3 据我所知,“附加”到单个 ELB 的机器数量没有上限。在极端负载下,如果您将站点拆分到多个负载平衡器上,您可能会遇到稍小的延迟。您会发现更多信息可以映射到您的实际架构here。 #4 只有系统负载测试才能告诉您这一点。 #5 来自Cloudfront page;

Amazon CloudFront 可用于使用全球边缘站点网络交付您的整个网站,包括动态、静态和流内容。

换句话说,它的架构不会阻止您在网站上混合静态和动态内容。

【讨论】:

以上是关于亚马逊网络服务架构和成本核算的主要内容,如果未能解决你的问题,请参考以下文章

给还在犹豫选择的你,微服务架构与整体架构的各自优势

亚马逊如何变成 SOA(面向服务的架构)

融数微服务架构

亚马逊如何变成 SOA(面向服务的架构)?

架构实战篇:认识一下微服务架构

如果是希望深度学习液冷GPU服务器显存核算率为共享资源分配单位,如何实现GPU虚拟化技术?