如何确定将我的站点迁移到云解决方案是否具有成本效益?

Eri*_*ric 23 cloud azure amazon-web-services google-cloud-platform

我有一个大而繁忙的网站;它目前完全在我每个月租用约 700 美元的专用服务器上运行。

它包含三个部分,我认为我可以将其划分为云解决方案:

  • 媒体(图像/视频)文件托管。目前我有类似 236 GB 的静态图像,目前都只是停在我的服务器上。如果我将这些移动到云中,我可能会与 CDN 结合使用(以最小化每个图像请求从云服务传输数据的成本)。

  • 数据库。目前在我的服务器上运行 MySQL,大约有 3 GB 的数据。

  • 网络服务器。同一台服务器运行 nginx 服务静态文件和 PHP。

我现在没有任何生产问题,但我希望我的网站明年的流量/服务器负载翻一番。所以我现在想考虑可扩展性。

我的问题是:我如何确定将任何/所有这些移动到云平台上是否具有成本效益,而不是将它们保留在我当前的服务器上?

(我已经知道其他一些因素:使用云进行备份会更容易,我不会像现在使用单台服务器那样出现单点故障等。但我不知道有多少拆分其中一项服务的成本更多/更少。我该如何计算?)


编辑 - 谢谢大家这些惊人的答案和评论。一些人要求提供更多信息,因此我总结了以下所有内容并添加了更多数据:

已使用数据传输(“带宽”) - 该站点每月发送约 17 TB 的出站数据(!),我计划明年将这个数字增加一倍(!!)。几乎所有这些出站都是静态媒体(图片和视频剪辑),所以也许 CDN 是个好主意,不仅可以提高可发现性,而且可以将所有数据传输到 CDN 网络的负担转移到 CDN 网络,因此媒体存储服务器没有那么多的数据直接传输。--编辑:对于这么多数据传输来说,CDN 似乎非常昂贵。所以也许静态媒体留在一个简单的服务器上,这给了我一个非常高的带宽上限(你好 OVH!),如果我能找到一种经济有效的方法将 CDN 放在它前面,那就太棒了。

流量不尖- 我的流量相当稳定;我转向更基于云的解决方案的目标是能够轻松扩展。即我当前的设置在一个硬盘驱动器上包含所有内容,并且驱动器已满 60%;这个基础设施实际上无法处理双倍的数据量(而且我不确定它是否有足够的计算能力以双倍的流量运行 Web 服务器和数据库服务器)。

静态媒体- 正如我上面提到的,我有大约 236 GB 的静态媒体,主要是所有图像和视频剪辑。这似乎是最明显的(也许是最简单的?)首先切割并放入云中的部分。

数据库- 虽然数据库现在运行良好,但我很快就会有一些更复杂的查询,并且喜欢那里更强大的东西的想法。因此,虽然我不认为我当前的需求(功率和数据量)决定我应该将数据库服务器移到云中,但这一切都是为了能够扩展。

繁忙时间- 我的网站上总是有至少1,000 名用户 24/7,贪婪地消费媒体。服务器从不空闲。

目前专用服务器- 我之前说错了,说它是 colo(暗示我拥有硬件)。那是错误的。我有一个我每个月租用的专用服务器(由我的托管公司所有)。区别不大,只是想提一下。

Tim*_*Tim 16

更新

对于 35TB 的出站带宽,AWS 每月收费 3300 美元。五个最大的 Lightsail 实例的成本将超过 800 美元,并且包含 35GB 的流量。如果您使用负载均衡器,我假设您可以使用实例带宽。他们的 CDN 定价将使您每月达到 2300 美元。您可能需要另一台服务器作为 Web 服务器,因此每月 1000 美元的大部分。

鉴于您的带宽需求,我会排除 EC2/CloudFront。在验证负载均衡器有效使用实例带宽后,您可以考虑使用 Lightsail 和负载均衡器。但是,与 co-lo 一起住可能更容易,但灵活性较差。

上一篇

MLu 为您提供了一个不错的选择,但重新构建网站可能很困难。简单地使用 CloudFront(或 CloudFlare)将图像托管移动到 S3 可能相当简单,并且比自己托管它更便宜、更快。

基本建议

如果您只想要一个 VPS,请根据 CPU / RAM / 磁盘计算出所需的规格并将其放入AWS 计算器中。忽略使用新计算器的警告,新计算器不是很好。

LightSail是进入 AWS 的一种廉价方式——带宽特别便宜。您可以获得 8 核、32GB RAM 和 7TB 传输,每月 160 美元,服务器费用约为 330 美元,带宽费用为 600 美元。将其中几个(或较小的实例)与一个 16 美元的Lightsail 负载均衡器相结合,您可以花不多的钱获得很多功能。Lightsail是很多比全AWS简单。

架构建议

您的架构的最佳选择是:

  • 运行 Nginx/PHP 的 EC2 实例
  • 适用于 MySQL 的 AWS RDS
  • 用于负载平衡的 AWS ALB

这里的困难部分是调整资源的大小。如果您愿意,您可以在观看“top”时根据 CPU 使用情况进行猜测。

RDS

您需要根据峰值负载调整 RDS。假设您现在有一个 4 核服务器并且 MySQL 看起来在高峰期使用两个核心,那么您可能需要一个两核 RDS MySQL 服务器。

将其映射到实例类型取决于您的非高峰使用情况。T2 / T3 实例为您提供 CPU 的一小部分,有时会使用更多的突发平衡。如果您有很多时间网站不忙,它可以在非高峰期积累 CPU 积分,请在高峰期使用它们。db.t2.medium 为您提供两个内核和 4GB RAM,db.t3.medium 为您提供 2 个内核、8GB RAM 和更多 CPU 积分。如果网站大部分时间都相当繁忙,您将需要专用 CPU,db.m5.large 会为您提供两个内核。您可以相当轻松地更改数据库类型,但如果您没有多 az 实例(谷歌该术语以了解更多信息),则会有一些停机时间。

EC2

EC2 可以更加灵活,因为您可以根据负载扩展实例数量。您可以选择 m5.large(或 m5a 用于 AMD,或 m6g 用于 ARM)作为您的基本服务器,具有 2 个内核和 8GB RAM。一旦达到阈值,比如 60% 的 CPU 使用率,A​​WS 可以启动尽可能多的实例来帮助应对负载,然后在不需要时将它们关闭。您通常不会在负载均衡器中使用 t2 / t3 实例,因为它们可能会耗尽 CPU 积分,这让事情变得棘手。

尺寸和价格

一旦您确定了您的架构和规模,您就可以将其插入 AWS 计算器中。您将需要 RDS 实例、EC2 实例、用于服务器出口带宽的帐户、用于图像和图像带宽的 S3 存储的帐户、用于备份的 EBS 磁盘空间和快照,以及用于自动扩展的 AMI 图像的空间。然后,您可能需要像 Guard Duty 这样的服务来监控您的帐户(便宜),CloudTrail 日志作为审计日志,这只是存储价格,以及其他零碎的东西。它可以开始累积。

AWS 带宽可能非常昂贵。在深入计算细节之前,粗略地猜测一下可能有一个 db.m5.large RDS 数据库、几个 m5.large EC2 实例、300GB EBS 磁盘和您的输出带宽。如果您使用的带宽可能比您当前的 co-lo 成本更高。如果您的大部分带宽是静态资源,如果您正确设置缓存标头,像 CloudFlare 这样的外部 CDN 可以显着降低您的成本。我不知道他们会缓存多少你的 236GB,但他们会缓存所有经常使用的东西。不过,他们所有 100 多个数据中心都会从您的服务器下载资源,因此您仍将使用相当多的带宽。

我故意没有解释我使用的每个术语。AWS 很复杂,很难安全地做好。在开始使用 AWS 之前,您确实希望进行一些培训以了解 AWS。一旦您了解了 AWS,它就非常强大,但可能很耗时。或者只是使用上面提到的 Lightsail。

  • @Brian 这足以告诉我 T2/T3 不是候选人。第一句中的“我有一个大而繁忙的站点”。随着观点 - “我希望我的网站明年的流量/服务器负载翻一番。” (2认同)

小智 9

根据经验,使用云总是比使用专用服务器更昂贵。例如,对于我的私人项目,我有一个相当强大的服务器(金属),每月花费我 40 欧元,而在 AWS 上我每月要花费超过 100 欧元。

如果您是一家企业,那么这不是您的实际成本计算。对于我自己的服务器,我必须这样做:

  • linux发行版更新
  • 软件更新
  • 一般维护
  • VPN配置
  • 负载均衡器配置
  • SSL证书
  • 可能反映在其他大陆
  • 所有其他配置的东西
  • ...

作为一个私人,这些东西本质上是免费的。我在业余时间做这些,弄清楚如何去做会很有趣。结果,我每月为我的服务器支付 40 欧元,这是我的全部费用。

作为一家公司,所有这些都需要花钱。有人——最有可能获得报酬——必须做这一切。您可能需要聘请服务器管理员或 DevOps,他们希望每年至少获得 5 位数的报酬,甚至可能高达 6 位数,具体取决于地点。如果您自己做这些事情,它们将花费您可以花在实际开发或推广应用程序上的时间。时间就是金钱。

云可以为您节省所有这些,特别是如果您使用容器化之类的东西,则无需担心实际服务器,只需维护您正在使用的实际软件。

要说它是否具有成本效益,需要考虑管理时间。与专用服务器相比,您在云基础架构上花费的资金很可能是其 4-5 倍,而且您获得的用户越多,成本就会越高。这是否会超过您自己或聘请系统管理员管理当前基础架构的费用,这是无法确定的。

作为一个私人,我总是会选择一个专用服务器。
作为一家公司,它变得难以计算,通常趋向于云计算。


mat*_*ati 8

当您考虑价格时,这里只有一个问题:公共云以具有许多不同代 CPU的虚拟CPU(基本上是超线程)销售。

因此,不要考虑:1 个本地核心 = 1 个云 cpu。这是错误的

最多考虑:1 个本地超线程 = 1 个云 cpu。这几乎正确的

这里的“几乎”是因为不同代的 CPU 具有不同的超线程性能。

另一方面,考虑到本地规格通常过大。因此,在比较 CPU 之前,请务必评估您的电源需求。

那么在线计算器是您粗略估计的朋友。


MLu*_*MLu 6

天真的方法是将您当前的服务器规格与大约 1:1 的云实例产品之一匹配并提高价格。例如,如果您的服务器是 4 CPU / 16 GB RAM,那么在 AWS 中,您可以查看m5.xlarge,其成本为 0.192 美元/小时,大约为 140 美元/月。一旦您确信实例大小适合您的需求,您就可以承诺 1 年或 3 年的预留实例期限,最多可节省 60%。最重要的是,您需要一些磁盘空间(每月 0.10 美元/GB/月)和出口流量成本。这是一种简单但可能更昂贵的方法。

另一种选择是重新构建网站。将图像存储在例如 S3 存储桶中(每 GB 更具可扩展性且更便宜),这意味着您可能可以使用更小更便宜的实例,因为它不会因提供静态图像而过载。同样,您可以将数据库卸载到托管数据库服务(例如 AWS RDS)或使用 NoSQL 数据库(如 AWS DynamoDB)。但所有这些都可能需要更改代码。

如果您乐于重新构建网站并使用更便宜的云原生服务,您可以节省很多。多少?这取决于,在您决定要使用哪些服务之前,没有简单的答案。

另一方面,如果您只想从您的 colo 服务器迁移到一个非常容易计算的云服务器。看上面。

希望有帮助:)


Mat*_*ert 6

由于没有人提到 Azure,但我在这方面只花了两分钱。

总的来说,我建议尽可能将它们拆散并转移到 PaaS 服务。这将使您的解决方案为增长做好准备,并带来许多其他好处,例如您已经提到的内置备份,以及扩展和附加安全功能。

适用于 MySQL 的 Azure 数据库

此 DBaaS 解决方案将花费您大约 100 美元。存储空间会很便宜(0.69 美元/月 = 5 GB * 0.138 美元),并且还包括另外 5 GB 的存储空间用于备份。如果需要更长的备份保留期,则可能需要支付额外的备份费用。对于计算部分,一年预留实例的成本约为 99 美元(通用,2 vCores Intel E5-2673 v4 2.3 GHz)

Azure 应用服务

根据您的 PHP 站点所需的存储量、CPU 和 RAM 量,您将花费 73 美元 - 292 美元。我至少会选择一个标准层,因为这将允许自动缩放和 VNet 连接,以便您的 Web 应用程序可以通过服务端点直接与 MySQL 数据库对话(数据保留在 Microsoft 主干上,有利于延迟和安全性)。

Azure CDN

来自区域 1(北美、欧洲、中东和非洲)的出站流量将为 (10'000 * 0.081 美元) + (7'000 * 0.075) = 1'335 美元/每月。加上在 CDN 静态区域 1 中存储 250 GB 数据的月费约为 21 美元。

还需要一个存储帐户(见下文)。但是,如果对象不在边缘位置,则存储帐户和 Azure CDN(仅限 Microsoft,而不是 Akamai/Verizon)之间的传输不收取任何费用。

Azure 存储帐户

此成本因素的估计需要更多信息,因为每月价格取决于 a) 每月存储的数据量 b) 执行的操作的数量和类型(以及任何数据传输成本) c) 数据冗余选项。

因此,对于具有最低冗余 (LRS) 的 500 GB 热块 blob 存储量,我们必须每月支付 10.40 美元。现在缺少的是操作和数据传输附带的价格标签。有关更多详细信息,请查看此处:https : //azure.microsoft.com/en-us/pricing/details/storage/blobs/

总结一下:

  • MySQL 的 Azure 数据库:约 100 美元
  • Azure 应用服务:~73-292 美元
  • Azure CDN(微软):~1,356 美元
  • Azure 存储帐户:约 50 美元(估计)

这将导致每月总费用在1,579 美元1,798 美元之间。


Wit*_*292 5

我基本上和你处于相同的情况,但发现所有提供的虚拟服务在计算成本时都非常混乱且完全不可预测。所以我租了一台专用服务器,它保证了一个真正的 CPU 每月的固定成本,并提供了最大的 RAM、磁盘和吞吐量。与使用虚拟服务提供的“计算器”相比,预测最终成本是微不足道的。由于您已经在使用我假设您拥有的共置服务器,因此找到等效或更大的专用服务器应该很简单。

700 美元对于您的需求来说听起来非常高,您应该能够以更低的价格找到所需的容量和速度。I/O 将成为你的瓶颈。

曾几何时,我从 quickpacket、serverhub 和 Needaserver 租用了专用服务器(因为应用程序需要冗余的地理位置分散的数据中心)。这三个供应商在价格、可用性、性能、支持等方面或多或少具有可比性。