有一个问题,我们的ELB健康检查在ELB页面上显示健康。 但在Scaling组实例页面上检查其显示为不健康。 导致autoscaler没有任何需要杀死它。 尽pipe盒子 a)罚款。 它的服务正在响应。 b)通过ELB健康检查(ping端口8080 / tcp) Box在0负载下。 不知道是什么原因造成的。 ELB如何通过 但缩放组检查失败。 只是为了确认。 缩放组健康检查设置为使用ELB的健康检查。
AWS CloudFormation(CFN)文档允许命名ElasticLoadBalancers(ELB)。 如果我命名ELB,则适用以下限制: 重要如果指定名称,则不能执行需要更换此资源的更新。 您仍然可以执行不需要或有一些中断的更新。 如果您必须replace资源,请指定一个新名称。 正如我所看到的,在CFN中命名ELB的原因之一是防止意外更换ELB,这将导致新的CNAMElogging被更改。 在我看来,我总是想命名一个ELB。 是否有额外的推理或最佳做法,我应该知道有关ELB的命名?
我们希望使用单个ELB来处理AWS通用SSL / TLS证书和通配符。 例如,我们有n台服务器app1.example.com app2.example.com … appn.example.com每个应用程序都有自己的服务器或服务器集合。 我们希望使用HAProxy来解决这个问题,因为AWS elb不能做到layer7子域平衡,我们希望利用aws ssl / tls免费证书。 像这样: 基础设施图 HAProxyconfiguration文件如下。 global daemon maxconn 15000 defaults mode http timeout connect 5000ms timeout client 5000ms timeout server 5000ms frontend http-in bind *:80 # Define hosts acl host_app1 hdr(host) -i app1.example.com acl host_app2 hdr(host) -i app2.example.com acl host_app3 hdr(host) -i app3.example.com ## figure […]
我有一个NAT后面的几千台设备与两台服务器通话。 每个设备都在本地路由器(思考调制解调器/路由器)的后面,在这个路由器上,这些路由器将NAT转换到拥有数千个这些设备的专用networking,并且在这个专用networking的网关上,来自这些设备的TCP会话获得NAT过载/dynamic地PAT到单个全局IP地址上的端口。 这意味着,设备1将与服务器通话,连接将来自global_ip_of_the_router:port_number_1。 一旦设备1完成通话,并且NAT关联被移除,则当设备2想要与同一服务器交谈时,远程路由器可以向设备2分配相同的全局端口,即服务器可以看到来自global_ip_of_the_router:port_number_1的新的TCP连接 这些设备本身启动一个TCP连接,做一个小文件的HTTP POST,断开TCP连接,为下一个文件build立一个新的连接等。这适用于〜20个文件,之后在SYN上,设备从服务器取回没有SYN的ACK。 ACK具有与SYN上的序列号完全不同的ACK号。 设备立即发送一个RST,在1秒后退出并从同一个源端口尝试一个SYN,仍然只是ACK,所以在放弃之前它会保持退后3,6,12,24,48秒。 在设备的RST上,似乎是使用ACK中的SEQ,试图closures旧的连接(从服务器的angular度来看) 远程主机是AWS ELB。 以下是我们所做的假设和我们所尝试的: 远程路由器必须处理TCP会话死亡,并且超时NAT,并且比目标服务器(ELB)更快地重新使用全局端口。 这可能会导致ELB处于TCP_TIME_WAIT状态,这就是为什么它使用ACK来响应SYN。 由于ELB的TCP TIME WAIT不是已知的,假设它是Linux内核默认的标准60秒,它将匹配远程路由器上的FIN / RST后NAT超时。 不过,我们在路由器上将其更改为70秒,以避免任何竞争条件。 这并没有使问题消失。 我们认为,如果远程路由器更快地杀死了NAT,则会在设备进行退避时为SYN重试分配新的NAT。 如果dest服务器上的问题与远程路由器上使用的全局端口号绑定,那么看到新的SYN来自路由器IP上的新的全局端口应该会导致它离开奇怪的状态。 现在,虽然我们可以看到这个工作,但是看起来新分配的NAT端口在服务器上也遇到了同样的问题,它返回了一个假ACK,但是又有一个不同的ACK号。 另一种假设是,这只是在SYN上的SEQ比在远程路由器上使用相同的全局端口的最后一次连接上的序列号低时发生的。 即伪ACK上的ACK编号将总是高于SYN上的SEQ。 (我们将Wireshark切换到绝对序列号来查看)。 然而事实certificate,我们看到SYN SEQ比假ACK上的ACK号更多的情况。 所以这个理论走到了一边。 我们现在对这里可能发生的事情感到不知所措。 我们的怀疑是在新连接获得与旧连接相同的全局端口,但是,如果是这样的话,(a)通过使路由器保持更长的NAT,应该阻止它,并且(b)通过使路由器先closuresNAT,然后为同一连接尝试分配一个不同的NAT,这应该避开这个问题。 在这里理解行为的任何帮助将非常非常感激。 Wireshark跟踪: http : //www.filedropper.com/traffictrace-anonymizedandpacketswithpayloadremoved 请注意,跟踪已被匿名(IP和MAC被replace),所有带有有效载荷的TCP数据包已被删除。 问题的第一个实例始于分组129,第二实例分组382,然后是463,699,816,1120,1278,1323等 查看跟踪中最后一个实例,这是我们缩短了路由器上NAT后FIN / RST超时的地方。 你可以看到,前四次,ACK的AKC号码是2899295595.但是在第5号,ACK是3102149417.在第6号,它是4158039292.这是因为在这里,路由器被设置为超时的NAT所以这些尝试来自路由器上不同的全局端口。 如果问题与全局端口和以前使用全局端口的连接有关,则应该停止它。 但问题依然存在,这导致我们认为这不是源端口相关的,而是由TCP SYN本身产生的。 昨天,我们尝试将NAT后FIN / RST定时器设置为300秒,这些断开的连接就消失了。 我的猜测是我们把端口重用延迟到了ELB丢弃了以前连接的某个点。 我们想知道,如果ELB上的空闲超时设置为295秒,那么TCP_TIME_WAIT的值也是相同的,即使在FIN之后,连接也是有效的。 虽然如果是这样的话,我们应该看到更多的连接失败,因为路由器上的端口复用非常猖獗。 很高兴知道到底发生了什么。
我是AWS的新手,并且在同一地区的每个实例上运行服务。 但是由于服务的稳定性,我需要为Message设置两个相同的实例,并把它们放在LB组之后。 我现在正在检查它,发现我所做的每个连接都以某种方式进入不同的实例。 我需要一个单一的域指向主要的消息服务器,然后当主要由于某种原因离开时切换到次要。 任何人都可以给我一个build议?
我目前在我的Ubuntu单实例上运行ELB(应用程序types),它被设置为侦听HTTP和HTTPS。 HTTP目标组运行状况检查没问题,但HTTPS目标组运行状况检查不是。 不幸的是,工具提示没有提供太多的帮助,只是给我回复了“健康检查失败”的消息。 所以当我尝试通过HTTPS协议上的域访问我的网站时,它返回了一个502错误的网关错误。 但是,访问HTTP协议的网站工作正常。 目前,该域名正指向我的ELB。 到目前为止,我已经尝试了以下,但还没有解决这个问题。 1)我确保了ELB的安全组,并且我的Ubuntu实例接受来自HTTP和HTTPS的入站stream量以及所有可用端口的出站stream量。 2)我已经向ELB HTTPS侦听器添加了ACM证书,并将其转发给位于HTTPS协议上的目标组。 3)在apache2 conf文件中添加了一个虚拟主机443条目,类似于端口80。 有没有办法让我debugging为什么HTTPS目标组运行状况检查失败? 或者我在这里错过了一些东西。
我正在使用AWS,并尝试将一个巨大的应用程序重新映射到小部分 – 总之:我将单核应用程序转换为基于微服务的应用程序。 所以我想使用一个面向公众的负载均衡器,我可以将一些path路由到其他环境。 例如: domain.com/service1到Elastic Beanstalk中的另一个负载平衡应用程序 domain.com/service2到Elastic Beanstalk中不同的负载均衡应用程序。 我能够将应用程序负载均衡器连接到另一个EC2实例。 但是我试图没有成功将它连接到由Elastic Beanstalk创build的另一个负载均衡器。 有没有人有如何做到这一点的想法?
我一直在阅读各种大型网站的架构栈,并遇到imgur的。 他们似乎拥有所有的子域名(api.imgur.com,cdn.imgur.com,imgur.com …)都指向一个HAProxy实例,然后将stream量划分为合适的ELB和相关实例。 这是他们的系统图: 更多信息在这里。 为什么不直接让DNS将每个子域直接parsing到相应的ELB IP? HAProxy有什么好处? 还是只是遗留系统的遗留物?
我正尝试将一些stream量从两个ELB(ALB)路由到一个目标组。 一个是外部的,另外一个是内部的。 我在外部ALB中有以下规则: IF path is /static/* THEN forward to frontends IF path is /media/* THEN forward to frontends 一个内部的ALB必须把它的stream量引导到同一个目标组的“前端”,但该组是灰色的,不能被select:( 作为一种解决方法,我创build了另一个目标组“frontends2”,并在内部ALB上选中它。 但是我们正在准备自动缩放,因此在同一组实例中有两个单独的目标组是不方便的。 我正在使用AWS Web控制台进行configuration。 是否可以通过它实现我的目标(相同的目标群体,不同的ALB)还是必须使用CLI? PS顺便说一句,自动缩放组是一样的吗? 我们打算根据像cpu load这样的参数来自动调整一组实例。 谢谢!
我有以下计划:互联网< – > elb1external < – >清漆< – > elb2internal < – > targetgroupofwebnodes 但是一些/ static / * / media / *会直接从elb1external路由到target组,因此我需要elb1和elb2指向同一个目标webNode组。 当我尝试从第二个ELB上的下拉列表中select它时,亚马逊networking控制台显示该组为灰色,但是我确实看到在networking上提及该scheme是可能的。 作为解决方法,我创build了targetgroupofwebnodes2,其中包含相同的服务器,但我只需要1个,下一个任务是自动调节,所以将会有一个自动调节组而不是目标组。 我必须使用CLI或通过Web控制台的方式吗? 谢谢!