我一直在尝试收集所有信息,以便在 EC2 上设置一个由三台服务器(2 台用于 Web 节点,1 台用于 MySQL)组成的负载平衡集群作为 LAMP 堆栈。这只是为了在应用程序上运行性能测试,我需要收集适当的信息,以便估算所需的时间。我想知道是否有人可以为我填写以下空白:
计算单元到底是什么?我需要 RightScale 的 AWS CentOS 的三个镜像实例,两个作为 Web 节点,一个带有数据库。那么我需要三个小实例吗?
如果我使用 Apache 作为 Web 服务器,mod_proxy 是否是 Amazon EC2 上负载平衡的最佳方式?我看到 Amazon 有一个负载平衡器,可以配置为与 Amazon CloudWatch 配合使用以提供指标。这是更好的方法吗?
对于应用程序缓存,我想使用 memcache。在 Amazon 的 EC2 上,这有什么问题吗?我正在考虑使用 Siege (http://www.joedog.org/index/siege-faq) 来进行压力测试。亚马逊是否已经提供了一些工具来进行压力测试,或者这是一个合适的工具吗?
对于像我这样没有使用这项服务经验的人来说,除了在两个 Web 节点上安装我们的应用程序之外,我们在这里要考虑多少时间?我最熟悉的是在服务器实例上部署应用程序,并且在服务器配置和性能调优方面有一些经验,但我是一名程序员。我认为设置需要 30 个小时,然后可能还需要 15-20 个小时进行测试。这听起来大概是这样的吗?
答案1
如上所述,计算单元大约是一个较旧的 1.0-1.2 ghz 服务器级处理器,您可能需要考虑亚马逊的弹性负载平衡。
对于简单的负载平衡 LAMP 堆栈,您应该从小型实例类型开始,然后根据测试和基准测试从那里开始进行。
memcached 在 EC2 上运行良好,但您需要考虑 EC2 的易变性(实例有时可能会毫无警告地宕机)。
从头开始,没有配置管理(您没有提到任何内容,所以我假设没有,但我喜欢 Chef),您大概需要 2 个工作周。总是估计过高,因为 EC2 可能... 很难使用。
我还建议使用 EC2 API 工具(更好的是您最喜欢的编程语言的库),这样您就可以以编程方式控制您的实例。
答案2
答案3
如果您只打算运行机器一小段时间,那么您可以简化很多事情并避免使用亚马逊的弹性块存储。这意味着您的文件在关闭或崩溃时不会保留。如果您不关闭实例,它们不太可能崩溃,或者您会丢失数据。您不会想在生产中这样做,但对于测试来说应该没问题。
对于负载均衡器,只需使用亚马逊的弹性负载平衡。如果您计划在生产设置中使用硬件负载均衡器,请使用 Amazon 的。如果您计划在生产中使用软件负载均衡器 - 那么是的,请在 EC2 上使用相同的负载均衡器。
对于测试,我喜欢使用以下方法进行低级 http 测试httperf对于应用程序级测试,我喜欢使用 JMeter。通常,我会反过来进行测试。我在 EC2 上运行 JMeter,并将测试负载放在我的非 EC2 数据中心上。这样,我就可以进行完整的端到端测试。但是,我猜你进行测试是因为你在本地没有额外的硬件来运行模拟生产设置。