Jak*_*olý 14 java cloud jboss amazon-ec2 java-ee
向周围所有聪明人致以问候!
我想问一下将Java企业Web应用程序部署到Amazon EC2这样的云是否可行或者是个好主意.更确切地说,我正在寻找一个应用程序的基础架构选项,该应用程序将处理数百个用户,但是CPU和内存密集型会话都很长.我正在考虑专用服务器,虚拟专用服务器(VPS)和EC2.我注意到有一个名为JBoss Cloud的项目,所以人们正致力于实现这样的部署,另一方面它似乎还没有成熟,我不确定云是否已经准备就绪应用程序,与Twitter等典型的基于云的应用程序不同.您会建议将其部署到云端吗?优缺点都有什么?
该应用程序是一个Java EE 5 Web应用程序,其主要功能是使用户能够通过组合可用的部件来组成他们自己的定制产品.它使用无状态和有状态会话bean和JPA将实体持久化到RDBMS,并通过Web服务从公司的库存系统中获取有关Parts的信息.除了外部用户之外,它还被少数内部用户使用,他们通过公司的LDAP进行身份验证.该应用程序应该处理大约300-400个并发用户构建他们的产品,并且应该具有合理的可扩展性和可用性,尽管这些质量在这个阶段仅具有中等重要性.
我提出了一个由防火墙(FW)和负载平衡器组成的架构,支持粘性会话和https(在云端,这将被EC2的Elastic Load Balancing服务和应用服务器上的FW取代,在物理架构中,负载 - 平衡器将是一个硬件),然后两个物理集群应用程序服务器与Web服务器结合(如果一个失败,用户不会丢失他/她的长期构建产品),最后是数据库服务器.数据库服务器需要一个从备份实例,如果失败则可以替换主实例.这应该提供合理的可用性和容错性,并且只要单个RDBMS可以与负载保持一致就可以提供良好的可伸缩性,这应该可以使用很长一段时间,因为大多数操作都是使用有状态bean在内存中完成的,并且只是偶尔存储或从数据库检索,数据量也很低.一个有问题的部分可能是对远程库存系统webservice的依赖,但是在应用程序中对其输出的良好缓存也应该没问题.
不幸的是,对于几百个用户所需的"普通Java EE应用程序",我只是模糊地了解系统资源(内存大小,CPU /内核的数量和速度).基于实际亚马逊产品的粗略且毫无根据的估计是1.7GB和单核,2核"现代CPU",速度大约2.5GHz(高CPU中型实例)应该足够用于两个应用服务器中的任何一个(因为我们可以通过提供更多的负载来处理更高的负载.或者,我会考虑使用大型实例(64b,7.5GB RAM,2GHz,1GHz)
所以我的问题是,这种云部署是否在技术和财务上是可行的,或者专用/ VPS服务器是否是更好的选择,以及是否有类似的实际经验.
非常感谢你!/ Jakub Holy
PS:我在云案例研究中发现了JBoss EAP,它表明可以将真实的Java EE应用程序部署到EC2云,但遗憾的是没有关于拓扑,实例类型或任何内容的详细信息: - (
sfu*_*ger 13
我从单个EC2高CPU中等实例服务"几百个用户".没有负载平衡,没有专用的数据库服务器,根本没什么特别的.只需一个盒子.另外我正在使用一些服务:
正如我所说,没有什么特别的 - 至少在亚马逊的云环境中.一切都不到200美元/月.关于定价,你应该小心.亚马逊在混淆主要成本方面做得很好.例如,看看CloudFront定价,您可能会看到每GB 0,15美元,但忽略每10,000美元0,01美元 - 对于很多请求来说这是一个非常小的价格,不是吗?大惊喜:我们的CloudFront成本的2/3用于请求(每个请求大约3 KB).EBS的I/O请求也是类似的故事.
因为它非常容易扩展(使用更大的实例,在关系数据库服务上移动数据库)我建议你从相同的设置开始.正如你所说,抛出更多的盒子非常简单(假设你的设置支持动态添加/删除节点).这使得通过试验和错误选择适当的设置变得容易实现 - 一些全面的负载测试应该可以完成这项工作.选择适合您预期负载的东西(加上一些额外的功率),并在有生产数据后立即增长/缩小.
得出结论:是的,在EC2上托管Java EE应用程序肯定是可能的:)
编辑:作为旁注:比较EC2与传统托管的价格比较苹果和橙子 - 至少只要你没有为你的网络获得SLA,几乎无限的可扩展性,没有硬件问题,几乎无限和冗余存储,不同的可用区域和一堆额外的服务.如果有人告诉你传统的托管更便宜,他可能是一个系统管理员对他的工作感到焦虑;)不要误会我的意思,它会更便宜 - 但你会少花一点钱.
顺便说一句,我与亚马逊没有任何联系...但我觉得我应该因为成为一名优秀的发言人而获得奖励,不是吗?:d
| 归档时间: |
|
| 查看次数: |
2908 次 |
| 最近记录: |