vik*_*kas 5 amazon-ec2 amazon-ebs java-ee amazon-web-services amazon-rds
在我的工作中,我需要将一些现有的Enterprise Java应用程序移动到AWS.我在aws.amazon.com上浏览了很多页面,并且还搜索了足够的内容.另外,我试图在stackoverflow上查看所有相关问题.所有这些都使许多事情变得清晰,但是,我仍然有些困惑.这是我们的应用程序结构:
因此,应用程序架构非常简单.但是,问题是我们需要部署此应用程序的许多实例.此计数目前为15,可以超过30.还有一点是所有这些实例共享一个公共数据库.
现在,我们需要通过迁移到AWS来实现:
至于我现在能够理解AWS基础设施,以下是我们在AWS中需要的设置:
现在我的问题是:
我是否真的需要为每个主服务器实例提供额外的服务器实例(用于容错),考虑到AWS自动备份EBS的面孔,他们会在硬件出现故障的情况下为新EBS提供相同的数据?
在上述场景中,如何在所有服务器实例(4x2)之间共享数据库?我看到的一个选项是在那些服务器实例中实现MySQL集群.可以说,MySQL集群将包含1个管理节点,3个SQL节点和4个数据节点.但是,在这种情况下,维护集群对我们来说是一个额外的开销,这可能不被接受,因为我们希望摆脱基础架构管理.
我是否需要为数据库安装RDS并从所有服务器端口(4x2)中删除MySQL实例?如果是,我还需要购买除EC2实例之外的RDS实例(我认为,如果我需要为RDS购买单独的实例,那么总体基础设施的成本将至少增加75%.)或者RDS实例也提供计算单元用于应用程序开发,从而减少应用程序部署的实例总数?
在RDS实施的情况下,是否真的需要基于EBS的EC2实例?如果我们可以了解如何从具有RDS实例的EC2实例中删除EBS要求,我们可以降低总成本.
任何帮助将不胜感激,如果我不清楚指出我的问题需要更多的澄清,请告诉我.
我不是基础设施专家,但我在 AWS 上有一些经验,希望我至少能帮助解决您的一些问题。我的背景不允许我为您提供有关基础设施规模的任何建议,但我可以帮助您就基础设施的类型提供建议。
首先,我肯定会选择EBS。除了在物理上与应用程序服务器分离之外,它还具有高可靠性和高可用性。我可以告诉你它救了我几次。虽然我说过我不会告诉您任何有关大小的信息,但我认为您不需要额外的 4 个“容错”实例,但也许您可以保留一些 2 个实例来准备好减少流量,以防万一。
关于您的数据库,您绝对应该继续使用 RDS for MySQL (http://aws.amazon.com/rds/mysql/)。它们以(恕我直言)低廉的价格为您提供预配置的节点、自动修补、自动备份、自动复制和一键扩展。所有这些功能对于 MySQL 来说都是现成的、开箱即用的。您还可以使用指标和监控,这一切都包括在内。RDS 不为您提供计算单元,但在 AWS 中将它们分开是一个很好的做法。您还可以设置 4 个 EC2 Tomcat 节点 + 2 个 RDS 节点。这只是尺寸的问题:)
如果您已经了解过 Amazon Elastic Load Balancing,那么它看起来非常适合您的解决方案。您可以将一些 EC2 节点附加到每个 ELB 节点,而无需考虑负载平衡。它可以正常工作,如果需要,您还可以配置粘性会话。不过,我不知道您应该选择多少个 ELB 节点,但请注意一个问题:您只能将来自同一地理区域(例如美国东海岸)的 EC2 节点添加到同一个 ELB。例如,不可能平衡西海岸的一台 Tomcat 和东海岸的另一台 Tomcat 之间的流量。如果您选择将节点分布在多个区域,则需要在 Amazon 之外使用另一个 LB 解决方案。
我的最后建议:继续使用 ELB + 基于 EBS 的 EC2 + RDS。它将大大简化您的监控、部署和维护,并且成本往往要低得多。您可能更清楚需要多少种节点,但不要害怕错过,因为在 AWS 上升级或缩小基础设施非常容易。
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |