我计划在Amazon EC2上部署我的Web应用程序(基于ASP.Net)以及在Amazon RDS上部署持久性。我有一种'直觉',至少我的会话存储(再次在RDS上)应该与应用程序数据库的其余部分分开。这是因为我期待会话商店的高活动。 RDS支持在单个实例上创建多个数据库的功能。但是,我想知道采用单独的实例或单独的数据库是否足够好是明智的。我知道期望这样的可伸缩性需求有点早熟,但这更多来自规划角度,因为稍后为正在运行的应用程序切换会话状态服务器可能会造成破坏。此外,还有一点值得注意的是,有2个小实例看起来更便宜,将小实例扩展为大(实际上是4倍)。要完成,是否有任何可用于规划的推荐做法(适用于云数据库)?
答案 0 :(得分:1)
我会研究会话存储的其他可能性,例如。 memcached或类似类型的内存存储。但是,如果您绝对必须在真实数据库中存储会话,那么在同一实例上拥有两个数据库与在数据旁边放置会话表完全不同。数据库存储的问题是每个页面视图(检索然后存储会话)的网络请求成本很高,而不是表格的位置。
对于较大的实例,它们不仅更好,因为它们有更多的内存来容纳更大的数据集,但重要的是,它们具有更好的网络和磁盘I / O.因此,即使是十个小实例也不会使您免于其中一个I / O瓶颈。