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