【问题标题】:How Amazon ELB will distribute requests to Amazon EC2 instances of different instance types?Amazon ELB 将如何将请求分发到不同实例类型的 Amazon EC2 实例?
【发布时间】:2017-03-20 09:04:29
【问题描述】:

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

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

【问题讨论】:

    标签: amazon-ec2 amazon-elb


    【解决方案1】:

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

    对于手头的问题,我认为这可以归结为 AWS 团队从 2009 年对ELB Strategy 的回复有些模糊:

    ELB 松散地跟踪有多少请求(或 TCP 的情况)在每个实例中都未完成。 它不监控 每个实例的资源使用情况(例如 CPU 或内存)。电子负载均衡器 目前将在它认为的那些实例中循环 具有最少的未完成请求。 [强调我的]

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

    【讨论】:

      【解决方案2】:

      您好,我同意 Steffen Opel 的观点,最近我还遇到了一位 AWS 的解决方案架构师,他就弹性负载均衡提出了几个建议,以通过 ELB 实现更好的性能。

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

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

      3)不要使用粘性会话。

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

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

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

      8) 如果您正在缓存,那么请思考一千次您从哪个点选择要缓存的数据。

      以上所有提示只是为了帮助您做得更好。最好有相同大小的实例。

      【讨论】:

        猜你喜欢
        • 2018-03-26
        • 1970-01-01
        • 2019-04-03
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 2011-05-31
        • 2016-10-17
        • 1970-01-01
        相关资源
        最近更新 更多