如果我注册了多个不同大小的ELB
个实例,任何人都知道EC2
将如何分发请求。假设一个m1.medium
,一个m1.large
和一个m1.xlarge
。
如果我注册相同大小的EC2
个实例会有所不同吗?如果是,那怎么样?
答案 0 :(得分:6)
这是一个相当复杂的话题,主要是由于Amazon ELB路由文档不存在,所以需要汇总一些内容来得出结论 - 请参阅我对相关问题的回答{{3}详细分析包括我所知道的所有参考文献。
对于手头的问题,我认为可归结为AWS团队从2009年到Can Elastic Load Balancers correctly distribute traffic to different size instances的回应有点模糊:
ELB松散地跟踪多少请求(或连接中的请求) TCP的情况在每个实例都很突出。它没有监控 每个实例的资源使用(例如CPU或内存)。 ELB 目前将在其认为的那些实例中进行循环 有最少的要求。 [强调我的]
根据您的应用程序架构和请求的多样性,较大的ELB Strategy可能能够更快地为请求提供服务,从而减少了未完成的请求并相应地获得了更多流量,但无论哪种方式,ELB 都应该平均分配流量,即应该在一定程度上隐含地考虑不均匀的实例特征 - 我自己并没有尝试过这个,并且会推荐两者,Amazon EC2 instance types以及监控你的个人EC2实例并将结果关联起来为了最终获得对这种设置的洞察力和信心。
答案 1 :(得分:1)
您好我同意Steffen Opel,我最近遇到了AWS的解决方案架构师之一,他在Elastic Load平衡方面提出了几个问题,以通过ELB实现更好的性能。
1)确保在所有可用区域上运行的实例数相同。例如,在东南方向的情况下,我们必须使用可用区1a和1b,因此请确保从两个区域连接到ELB的实例数相同。
2)确保您的应用程序是无状态的,即云强制执行并建议开发人员。
3)不要使用粘性会话。
5)将TTL(生存时间)降低到最大可能水平,如10秒或其他。
6)不健康的检查TTL应该是最小的,这样ELB就不会保留不健康的实例。
7)如果你的ELB流量很大,请确保你对ELB本身进行负载测试,它的扩展速度不如你的ec2实例那么快。
8)如果你正在缓存,那么想想你要从中选择要缓存的数据的数千次。
以上所有提示只是为了帮助您改善这一点。你拥有相同大小的实例会更好。