在 EC2 上部署网站 + DB 哪个更好:2 个小型 VM 还是 1 个大型 VM?

在 EC2 上部署网站 + DB 哪个更好:2 个小型 VM 还是 1 个大型 VM?

我计划部署一个带有 SQL Server 标准数据库的中型网站。我选择了 Amazon EC2 来部署它。现在我必须在以下两个选项之间进行选择:

1) 获取 2 个小实例(每个 1 个核心,每个 1.7 GB 内存):一个用于 IIS 前端,一个用于运行数据库。注意:这些“小实例”只能运行 32 位版本的 Win2008 Server

2) 一个大型实例(4 核,7.5 GB 内存),我将在其中安装 IIS 和 SQL Server。注意:这个大型实例只能运行 64 位版本的 Win2008 Server

在性能、可扩展性、易于管理(在我备份主实例的同时启动新实例)等方面有哪些更好的选择?

欢迎所有建议和观点!

答案1

这两个图像可能在可扩展性、管理和总体管理方面会更好。

单个图像可能会更便宜,特别是如果您不需要扩展这个站点的话。

性能在很大程度上取决于您的实施,但在两种设置下可能相似。单个图像具有更多 RAM 和处理核心;这对您的实施来说可能非常重要(或者可能没有丝毫区别)。

答案2

这似乎有点像预算决定。

我会选择大型实例,因为您有更多的储备,无论是内存还是 CPU。我还读到过小型 EC2 实例变得缓慢的消息。多一点空间不会有什么坏处。

还有额外的核心,因此运行备份的 CPU 负载可能会对性能产生更小的影响。

此外,您还节省了一个 Win2008 server 2008 实例,这是两次运行操作系统的成本以及相关的 CPU 和内存开销。我不得不承认,我不知道 Win2008 Server 的定价模型。(每个 CPU、线程或插槽的成本或...)

如果遇到大型虚拟机饱和的情况,那么小型虚拟机很快就会出现这种情况,因为它们的规格甚至还不到大型虚拟机的一半。

最后但同样重要的一点是,如果您确实必须启动另一个实例进行备份,则只需启动一个实例。

因此,对于使用 Windows 操作系统的人来说,我并不认为将工作负载分散到两个微型隔离的虚拟机上有什么好处。

答案3

正如您刚才提到的,您可以投入资金来解决问题,并且您预计会有所扩展,因此请使用 2 个实例。这样,您可以获得服务分离的经验,并为您的服务分析和基准测试提供更好的起点。

您甚至可能希望稍后将您的数据库迁移到 OSS,这样更容易。

(信息丰富:可以在 EC2 中克隆和复制实例。本文适用于 Linux,但也许它可以为您提供有关如何制作安装的可运行副本的提示。)

答案4

一位我非常尊重的聪明的网络架构师曾经告诉我,要让每台机器尽可能简单。永远如此!

因此,我会分别选择小型实例 - 一旦它们变得太小,就考虑升级它们或生成额外的实例。

因为您从一开始就将它们分开,所以更容易在需要的地方投入额外的电力,而不是为错误的设置付出过多的费用。

维护和备份更多图像变得有点困难,但我认为您也可以获得更多可扩展性的好处。

我们已经使用类似的设置运行了好几年,在 VMware 上运行,并且 SQL 服务器与 2 台 IIS 机器分开。

我们现在甚至有辅助 SQL,这是可能的,因为我们还可以将它们链接起来以达到同步目的。

相关内容