如何正确构建Amazon AWS生态系统以用作公共应用程序服务提供商(ASP)?

时间:2013-09-25 13:40:27

标签: networking architecture amazon-web-services

我有一个可以移植到类似WordPress插件的应用程序,但是出现了一些问题。允许系统完成其工作的算法将被完全暴露,并且可供所有人复制等。然而,社区的修改和改进很简单。

另一方面,插件(在下载时)可以链接到中央服务器,而不是将所有现有功能添加到插件中,在中央服务器中将创建帐户,用户管理和数据传播将从基于每个帐户的中央服务器。

这对网络架构提出了更高的要求,并确保了适当的扩展方案。

当前的.Net应用程序在运行一个SQL Server和IIS以及Windows Server的情况下运行,目前每月在单个Amazon AWS m1.large实例上生成大约50,000个页面查看,并且需要提升到更多强大的实例。显然,我计划将其分成两个服务器,因为收入增加

所有数据访问都是通过单一数据访问服务执行的,并且针对1 .. *情况进行了很好的架构 - 数据访问不限于一个网站。

我的问题是:为了向大众提供数据访问服务,我需要实施哪些AWS难题?

1 个答案:

答案 0 :(得分:0)

您应该使用的AWS组件最有可能:

  • Route53
  • Elastic Load Balancer
  • 自动缩放组
  • Cloud Watch
  • 虚拟私有云(VPC)
  • EC2
  • 亚马逊机器映像+自举
  • Dynamo DB
  • 弹性块存储(EBS)
  • EBS快照到S3可能会有规则将它们移动到Glacier
  • 身份和访问管理(IAM)角色
  • SNS(我在考虑基于成本的警报)

这里有一个关于解决方案的大脑转储:

Route53可以处理您的DNS。使用Elastic Load Balancer将流量定向到EC2 Web服务器。将Web服务器放置在具有多个可用区中的子网的虚拟私有云中。使用Auto-Scaling可根据需求变化扩展容量。可能有一些“指示灯”保留的EC2实例,并考虑使用按需或轻/中保留实例来满足需求高峰(取决于您的具体情况)。创建您自己的亚马逊机器映像,它能够使用您应用程序的最新副本自行引导。配置IIS以将Dynamo DB用于会话状态(这将允许您扩展Web服务器层,而不会丢失用户会话丢失)。对Dynamo DB(以及任何其他AWS基础结构)的身份验证应通过您在配置EC2实例时提供的IAM角色进行。

对于DB来说它变得复杂,大纲将是多个EBS卷 - 操作系统,数据库,数据库备份。您可能需要考虑对数据库卷使用预配置IOPS。使用镜像在另一个可用区中具有其他SQL DB。 Web服务器连接字符串还包括有关故障转移数据库服务器的信息。专门为此目的执行数据库备份到EBS卷。在执行数据库备份到文件后,使用powershell脚本启动EBS快照。配置S3存储桶以在x个时间到Glacier之后存档快照。关于如何管理增量快照,可能还需要一些额外的想法。

总会有更多,这是相当高的水平,但它希望为你提供正确方向的一些指示。 :)