gpt4 book ai didi

c# - 在Amazon Web Services上扩展SQL Server

转载 作者:太空狗 更新时间:2023-10-30 00:34:27 24 4
gpt4 key购买 nike

我目前有一个网络应用程序,我想扩大使用亚马逊网络服务。
我的Web应用程序规范:
C ASP.NET SQL服务器
我为我的用户提供了一个文件存储,并为我的所有数据提供了一个sql server数据库。我想使用s3在amazon web服务上进行扩展。我不确定如何在amazon web服务上使用sql server进行扩展?amazon关系数据库服务看起来不像它的for sql server。我可以在windows实例上运行它吗?我该如何衡量。

最佳答案

应用程序中有两个不同的元素。有一个应用服务器,它是保存ASP.NET应用程序的服务器,还有一个数据库服务器。
web应用服务器本质上是无状态的,因此扩展应用服务器将非常容易。只需在多个实例上部署应用程序,然后在它们前面放置一个负载平衡器。
对于数据库服务器来说,事情要复杂得多。关系数据库由于其事务性和关系性,很难向外扩展,这通常需要在应用程序级别编写自定义代码来支持向外扩展方案。这实际上是一个重要的方面,因为可伸缩性不仅仅是通过添加更多的硬件(更多的机器)来透明地实现的,而且还必须投资于编码。使用sql server扩展的两种最流行的方法可能是镜像和分区。当sql server部署在云中时,云本身并没有提供任何帮助,它仍然基于内置选项。
除了在一定程度上涉及到非自由DB解决方案的复杂性之外,水平缩放可能比垂直缩放更昂贵。例如,考虑以下场景:
1 x 10000$机器+1 x 8000$SQL Server专业许可证=18000$
10 x 1000$机器+10 x 8000$SQL Server专业许可证=90000$
因为它只需要一个sql server许可证,所以一台昂贵的机器最终将比使用10台拥有10个许可证的廉价机器便宜得多。
现在我已经到了在云中扩展的程度,事情变得复杂了一些。云提供商提供的基本上是虚拟机。虚拟机在划分cpu和ram内存方面非常好,如果有必要,可以通过添加更多的cpu功率和内存来为机器添加更多的功率。这很好,但数据库高度依赖于I/O(硬盘)速度,这是虚拟机不太好的一个方面。
关于amazon云服务和sql server,我可以推荐一篇非常好的文章(我是通过@marc_s提供的链接获得的)。为了在扩展场景时获得良好的i/o速度,作者使用this卷。这种方法的问题在于,ebs卷不是部署db的服务器内的硬盘,而是可以通过网络访问的存储卷,这会大大降低它们的效率。
如果您没有绑定到amazon,那么您可以尝试在其基础设施中也提供物理机(专用服务器)的云提供商。据我所知,EBS正在这样做,但也可能有其他人。其思想是将数据库部署在专用服务器上(良好的I/O性能),将应用服务器部署在虚拟机上(可水平扩展)。
微软还有一个云服务,叫做windows azure,它可能是目前最有趣的服务之一,但在我看来,他们的关系数据库服务让它失望了。他们有专门的服务,叫做gogrid。它的一个主要优点是比普通数据库更容易管理,但缺点是它的扩展性非常有限。唯一的扩展选项是数据库大小,它最多只能扩展到50GB。他们没有提到DB所提供的性能,也不能做任何与此相关的配置。可能性能低于廉价的专用服务器(事实上,stackoverflow上有人抱怨与物理机器相比,sql azure的速度更快)。您可以使用分片进行扩展,但如上所述,这会影响并限制数据库结构及其在代码中的使用方式。
总之:
如果您正在构建一个对关系数据有很大需求的业务应用程序,那么云提供商可能不是您的最佳选择。您可以考虑使用自己的硬件,也可以使用提供程序来选择使用专用服务器。
您可以考虑使用nosql数据库解决方案构建应用程序。它们的可伸缩性要高得多,但缺点是它们有一些特性限制(没有事务、没有连接、索引有限)。如果您对这种方法感兴趣,可以从sql表存储开始。您还可以考虑一种混合方法,其中包括将数据的一部分保存在关系数据库中,将数据的一部分保存在nosql数据库中。
在缩放数据库之前,请检查是否没有任何其他选项可供您首先尝试。例如,检查是否存在效率低下的查询或构建缓存层,这取决于应用程序,可能会给数据库带来很大的压力。

关于c# - 在Amazon Web Services上扩展SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com