假设价格相同,我应该垂直扩展还是水平扩展?

假设价格相同,我应该垂直扩展还是水平扩展?

AWS 实例通常具有线性定价模型:

例如, 2 个小型实例的价格与 1 个中型实例(其性能规格恰好是 2 倍)的价格相同。

那么哪个是更好的选择呢?将机器性能提高一倍,还是将机器数量提高一倍。请忽略使用两台小型机器所获得的冗余优势。

答案1

水平扩展。它拆分了争用点(GC、网络、内存单例),使您能够更好地扩展(可以水平扩展的应用程序可以比垂直扩展得更大),并且节点故障不会影响整个应用程序。

AWS 能够根据某些触发器添加更多节点。它无法向正在运行的实例添加更多 CPU/内存。

更多的机器也将迫使您考虑正确的部署/监控机制,而不是拥有一个您害怕丢失的特殊雪花。

答案2

我的方法是先垂直扩展,然后水平扩展。水平扩展会带来维护开销,因此我通常从两个实例开始,在合理的情况下垂直扩展它们,然后开始添加更多实例。但是,这不是通用规则,可能不适用于您的情况。

相关内容