6

如果我注册多个不同大小的实例,任何人都知道如何ELB分发请求。EC2说一m1.medium,一m1.large,一m1.xlarge

EC2如果我注册相同大小的实例会有所不同吗?如果是,那怎么办?

4

2 回答 2

6

这是一个相当复杂的话题,主要是由于Amazon ELB路由文档不存在,因此需要组装一些部分来得出结论 - 请参阅我对相关问题的回答Can Elastic Load Balancers Correctly Distribution Traffic to different size详细分析的实例,包括我知道的所有参考资料。

对于手头的问题,我认为这归结为 AWS 团队从 2009 年对ELB 策略的反应有些模糊:

ELB 松散地跟踪每个实例有多少未完成的请求(或 TCP 的连接)。 它不会监控每个实例的资源使用情况(例如 CPU 或内存)。ELB 目前将在它认为具有最少未完成请求的实例中进行循环。[强调我的]

根据您的应用程序架构和请求种类,较大的Amazon EC2 实例类型可能能够更快地处理请求,因此未处理的请求更少并相应地接收更多流量,但无论哪种方式,ELB 都应该平均分配适当的流量,即应该隐含地考虑在某种程度上不均匀的实例特征 - 虽然我自己没有尝试过,但我会推荐两者,使用 CloudWatch 监控您的负载均衡器以及监控您的各个 EC2 实例并将结果关联起来,以获得各自的洞察力和信心。最终设置。

于 2013-04-03T15:54:45.887 回答
1

嗨,我同意 Steffen Opel 的观点,我最近也遇到了 AWS 的解决方案架构师之一,他对弹性负载平衡提出了一些建议,以通过 ELB 实现更好的性能。

1) 确保在所有可用区上运行的实例数量相等。例如,在 ap-southeast 的情况下,我们必须使用可用区 1a 和 1b,因此请确保您从两个区域连接到 ELB 的实例数量相等。

2)确保您的应用程序是无状态的,这是云强制执行并建议开发人员的。

3)不要使用粘性会话。

5)将 TTL(生存时间)减少到最大可能水平,例如 10 秒或其他时间。

6) 不健康检查 TTL 应该是最小的,这样 ELB 就不会保留不健康的实例。

7)如果您排除了 ELB 的大量流量,请确保您对 ELB 本身进行负载测试,它的扩展速度不如您的 ec2 实例。

8)如果你正在缓存,那么想一千次你从哪一点开始选择要缓存的数据。

最重要的提示只是为了帮助您更好地做到这一点。最好有相同大小的实例。

于 2013-04-04T11:50:45.363 回答