我的客户计划在云上托管他们的应用程序。他们让我建议需要购买哪些东西。面对这么多名称/产品,我感到很迷茫。根据我的经验,以下是正常托管所需的东西。
- RDS(MSSQL DB)是否需要备份/故障转移 - (单元 01)
- Windows 实例(托管 .net 应用程序。我们也应该托管数据库吗)-(单位 01)
- Linux 实例(托管 php 应用程序)-(单元 01)
- 负载均衡器 - 是必需的吗?
- 弹性 IP(我猜这是静态 IP)-(单位 01)
2 和 3 都是 Web 服务/API 和管理 Web 应用程序。传统上,我在负载平衡器后面部署 2 个 Windows 实例和 2 个 Linux 实例,以解决任何故障转移/瓶颈问题。
数据传输 - 我希望在一个区域(欧盟-爱尔兰或欧盟-法兰克福)内托管所有内容。那么会收费吗?
这是我得出的计算结果AWS 计算器。
附言:如果这个问题似乎太宽泛,请原谅。
答案1
这完全取决于您的应用程序负载和可用性要求。AWS 就像任何其他虚拟服务器环境一样。
您需要 Windows 服务器来托管 Windows 应用程序,以及 Linux 服务器来托管 Linux 应用程序,这只是 EC2 上的不同类型的实例,其规格取决于您的预算和/或性能/扩展要求。
亚马逊还提供数据库即服务,它基本上是一个预配置的数据库服务器,MS SQL 就是其中之一。您可以选择机器的规格,也可以为 IOPS 付费。他们还提供多站点配置选项,该选项在不同区域运行副本实例,以便在主实例发生故障时接管。
看这里:https://aws.amazon.com/rds/sqlserver/
或者,您可以自行启动几个 Windows 实例,并在集群配置中自行安装/配置 SQL Server。如果规模足够大,您甚至可以在运行应用程序的同一台 VM 上安装 SQL Server(不建议用于事务数较高的 DB)。
可以使用 Amazon 的 Elastic 负载均衡器实现负载均衡,但我认为它的工作方式可能受到限制:
https://aws.amazon.com/elasticloadbalancing/
或者,您可以像您提到的那样自行启动实例并进行负载平衡。
区域本质上是您可以在其中运行服务的不同地理数据中心。我认为每个区域的成本略有不同。数据传输在任何地方都需要花钱,总是如此。
最后,弹性 IP 确实是您必须分配给实例的公共 IP,就像 1:1 NAT 一样。任何您想要直接面向公众的东西都必须有一个弹性 IP,否则当您重新启动实例时,它附带的默认公共 IP 将会改变。
希望这会有所帮助,但是您需要自己做很多尺寸/规格调整。