我正在计划部署一个带有SQL Server Standard DB的中型网站。 我select了Amazon EC2来部署它。 我现在必须在这两个选项之间进行select:
1)获得2个小实例(每个1个核心,每个1.7M的ram):一个用于IIS前端,一个用于运行数据库。 注意:这些“小实例”只能运行32位版本的Win2008服务器
2)一个单一的大型实例(4核心,7.5千兆RAM),我会安装IIS和SQL Server。 注意:这个大型实例只能运行Win2008 Server的64位版本
在性能,可伸缩性,易pipe理性(在备份主体实例时启动一个新实例)等方面更好
所有的build议和观点是值得欢迎的!
这两个图像对于可伸缩性,pipe理和一般pipe理可能会更好。
单幅图像可能会更便宜,特别是如果你不需要扩大这个网站。
性能将在很大程度上取决于您的实施,但两个设置可能会相似。 单幅图像具有更多的RAM和处理内核; 这对你的实现可能是非常重要的(也许这丝毫不会影响)。
这似乎是一个预算决定的一点点。
我会采取大实例,因为你有更多的储备,记忆智慧以及CPU明智。 另外,我也读了一些关于EC2实例变慢的小例子。 有一点空间不能伤害。
还有额外的核心,所以运行备份的CPU负载可能会有更小的性能影响。
此外,您还可以保存Win2008 Server 2008的一个实例,该实例的成本以及运行该操作系统两次的相关CPU和内存开销。 我不得不承认,我不知道Win2008服务器的定价模式。 (每个CPU,线程或套接字的成本…)
如果你遇到了大型虚拟机的饱和,那么这个小型虚拟机就会发生得更早,因为它们甚至不是大型虚拟机的一半。
最后但并非最不重要,如果您确实需要启动另一个备份实例,则只需启动一个实例即可。
因此,以windows作为操作系统,我并不认为将工作负载分散在两个小型的独立虚拟机上是一个好处。
正如你刚刚提到的,你可以把钱扔在问题上,你预计一些缩放,去2个实例。 这样你可以获得服务分离的经验,并有一个更好的起点,分析和基准您的服务。
您甚至可能希望稍后将您的数据库迁移到OSS,这样更容易。
(资料性的:克隆和复制EC2中的实例是可能的。 这篇文章是针对linux的,但是它可能会给你一个关于如何制作一个正在运行的安装副本的提示。)
之前的两个答案给出了一些很好的决策点,但是有一点没有提到的是您的站点可用性要求 – 如果您使用任何一种您build议的架构,在重新启动崩溃的EC2实例时能否容忍您的站点停机? (Windows实例的启动时间特别长,我已经看到它需要长达30分钟)
无论如何,我build议将数据库存储在单独的Elastic Block Store卷上,以便在出现故障时轻松地将其重新附加到新实例。 EBS卷也可以使用AWS提供的快照工具轻松备份。
我曾经被一位非常尊重的非常聪明的networkingdevise师告诉我,让每台机器尽可能简单。 总是!
所以,我会单独去做一些小的事情 – 一旦它们变得太小,考虑升级它们或产生额外的事例。
因为你从一开始就把它们分开,所以在需要的地方更容易投入额外的电力,而不是为错误的设置付出太多的代价。
维护和备份更多图像变得有点困难,但是您也会从我认为的更大的可扩展性中获益。
我们已经运行了相似的设置了很多年,现在运行在VMware上,SQL服务器与2台IIS机器是分开的。
我们甚至有一个辅助SQL现在,这是可能的,因为我们也可以链接他们的同步目的。