【发布时间】:2015-07-08 18:54:03
【问题描述】:
我正在查看 Amazon 用于管理基于云的应用程序的各种产品,简而言之,我不确定是否最好尝试使用简单的 EC2 和 EBS、Beanstalk 或 OpsWorks 甚至 CloudFormation 来完成我所需要的。
详细说明,我想在注册时为我们基于 Web/Tomcat 的应用程序的客户提供基于云的试用版,该试用版在自定义域(通过 Route53)上运行,其数据存储在 EBS 卷上。文件系统上的某些目录需要在创建实例时创建。
我的意图是在成功注册后使用 Java AWS 开发工具包进行适当的调用,以便为用户配置系统,然后将通知用户访问其自定义站点的 URL。
我不考虑多重缩放,因为并发用户的数量永远不会很高,但每个客户版本都应该独立运行。
所以我正在查看 beanstalk API.. 但后来看到了 OpsWorks Api,然后是 CloudFormation 模板。
如果我要使用 Beanstalk API,我可以为每个客户启动一个“环境”,这意味着所有客户都将成为同一个 beanstalk“应用程序”的一部分,这意味着如果我更新应用程序版本......每个人都会收到听起来很积极的更新,但是为每个客户做一个环境似乎是错误的,因为通常环境用于测试、生产等......
所以我回到开头想知道这种基于 AWS 的 SAAS 系统的典型部署策略是什么。
为清楚起见,该应用不需要 RDS,并且每个客户只需要一个实例。
【问题讨论】:
-
您需要单个 ec2 实例还是多个实例?
-
每个客户只有一个实例(更新问题以反映)
-
您的应用程序的单次安装是否需要单个实例的全部资源?除非系统确实需要,否则为每台服务器安装一个客户似乎既浪费又昂贵。大多数 SaaS 使用由软件应用程序的所有租户共享的服务器集群。这对您来说更经济,意味着每个人都可以共享相同的最新版本的软件。
-
补充。您能否将您的“试用”客户放在大型共享服务器上。然后,当您升级出试用版时,您会将它们迁移到自己的单独实例(如果您需要的话)
-
很遗憾,每个客户都需要自己的服务器。也许为了节省成本,我们可以保留他们的 EBS 支持的数据,当他们不使用它时.. 即会话全部关闭,我们终止实例,然后仅根据需要再次启动实例,重新附加 EBS 卷.. .
标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk amazon-cloudformation aws-opsworks