当一个弹性负载均衡器(ELB)与一个自动扩展组相关联时,可以指定一个宽限期,在这个宽限期内新的EC2实例即使被ELB标记为不健康,也不会被终止。 是否有可能指定一个类似的宽限期,在此期间,即使运行任务的ECS实例已被ELB标记为不健康,新的ECS任务也不会被其关联的ECS服务终止并重新启动? 更新: 在我们当前的用例中,作为ECS任务运行的docker容器包含一个JBoss实例,在启动时加载一些caching。 这些caching可能需要几分钟才能加载。 但是,一旦容器启动,ECS服务就会使用ELB注册容器实例。 这意味着stream量可以在准备好接受之前路由到新的容器。 我们可以增加ELB的健康检查间隔和“健康/不健康的阈值”,以防止ELB将stream量路由到实例,并且ECS服务重新启动容器,直到caching被加载。 但是,增加健康检查间隔和阈值是不可取的,因为如果一个实例在加载caching后被标记为不健康,ECS服务应该尽快重启容器(这需要较短的健康检查间隔和较小的阈值)。 因此,是否可以应用一个宽限期,在这个宽限期间ELB不会将stream量路由到新的容器,并且ECS服务不会重新启动容器(即使它没有通过健康检查)? 否则,对于我们的用例的解决scheme有什么build议吗?
我有两个c3.2xlarge的EC2机器在Ubuntu-us-west-2a-AZ。 两者都包含与AWS RDS(db.r3.2xlarge)中的mySQL数据库相同的代码。 这两个实例都被添加到ELB。 两个都有一个计划,一天运行两次。 一旦阈值超过5.0,ELB被configuration为提高警报。 这两个实例的CPU利用率平均为30-50。在高峰时段,一两分钟内达到100%,然后恢复正常。 但ELB每天不断提高警报三次。 在这个时候,这两个实例 CPU – ~50% Memory – total – 14979 used – ~6000 free – ~9000 RDS CPU – ~30% Connections – 200 to 300 /5,000 根据这个https://aws.amazon.com/premiumsupport/knowledge-center/elb-latency-troubleshooting/我可以发现没有错的实例。 但是仍然有延迟达到峰值,两个实例都无法响应。 到目前为止,我只是从负载平衡器中删除一个实例,重新启动Apache,然后加载它,并为其他实例做同样的事情。 这样做完全没问题,ELB和ELB在接下来的6-10个小时内都能正常工作。 但这是不可接受的,因为每天有两三次需要照顾服务器,需要重启。 我需要知道,如果有任何错误或采取任何步骤来解决这个问题。 Apache服务器状态包含太多(〜200/250进程): 7-0 23176 1/2373/5118 C 30.95 3986 0 0.0 7.01 15.78 127.0.0.1 ip-xxx-xxx-xxx-xxx.us-west-2.comp OPTIONS * HTTP/1.0
警告:长。 很多信息在这里。 3年前有人问为什么iptables不能阻塞IP地址? 原因是因为服务器在CloudFlare的后面,这使得不可能按照他们想要的方式直接阻止IP地址,除非您以不同的方式使用它。 任何反向代理或负载平衡器都会导致同样的情况。 同样,我们已经build立了一个规则fail2ban来禁止任何试图暴力进入pipe理login或垃圾邮件xmlrpc的僵尸程序。 站点坐在负载平衡器后面,所以显然我们不能直接禁止IP地址,但是iptables应该接受与分组数据匹配的连接和模式以禁止特定的stream量。 这是fail2ban jail.confconfiguration: [wp-auth] enabled = true filter = wp-auth action = iptables-proxy[name = lb, port = http, protocol = tcp] sendmail-whois[name=LoginDetect, [email protected], [email protected], sendername="Fail2Ban"] logpath = /obfuscated/path/to/site/transfer_log bantime = 604800 maxretry = 4 findtime = 120 这是wp-login请求的简单模式匹配: [Definition] failregex = ^<HOST> .* "POST /wp-login.php ignoreip = # our […]
我目前正试图找出一个好的configuration,使堡垒主机高度可用。 我想要达到以下目标: 堡垒主机需要能够承受可用区域故障和EC2实例故障。 一个小的停机时间(几分钟)可能是可以接受的。 堡垒主机需要通过永久性的DNS入口访问。 不需要手动干预 我目前的设置如下:两个可用区域中的Auto Scaling Group中的堡垒主机,Auto Scaling Group前面的ELB。 这个设置有一些优点: 易于使用CloudFormation进行设置 可以使用两个AZ上的Auto Scaling组来保证可用性 不计入账户EIP限制 它也有一些缺点: 在ELB后面有两个或更多堡垒主机,SSH主机关键警告是常见的,我不希望我们的用户习惯忽略SSH警告。 ELB花钱,而不是EIP。 实际上和堡垒主人差不多。 这不是一个真正的问题,我只是为了完整性而添加了这一点。 另一个明显的解决scheme是使用ElasticIP,它具有 – 我所见 – 有一些缺点: 我可以(可以)不直接将EIP附加到Auto Scaling组 当不使用Auto Scaling组时,如果旧的EC2堡垒主机发生故障(例如使用AWS Lambda),则必须安装一些新的EC2堡垒主机。 这增加了复杂性。 当EIP手动连接到Auto Scaling组时,在可用区故障时,EIP将被取消连接,不会重新连接到新实例。 再次,可以通过运行将EIP重新附加到实例的程序(在实例或AWS Lambda上)来解决此问题。 这又增加了额外的复杂性。 什么是高可用性SSH实例的最佳实践,即堡垒主机?
这是我的情况。 我们已经从Thawte为我们在EC2上托pipe的网站生成了SSL证书。 我们使用Elastic Load Balancer负载均衡服务器。 Thawte给我们一个PKCS签名证书。 当我到亚马逊控制台生成新的负载平衡器,以便我可以附加证书时,它需要4个字段: Certificate Name Private Key Public Key Certificate Chain 我感到困惑的是,我们只有1个证书,但私钥和公钥却有所不同。 什么是完成这个过程?
我正在研究使用Amazon Elastic Load Balancing(ELB)来减less服务器故障时的停机时间。 基本上,我不想更改相关的DNSlogging,并等待整个世界的DNS传播,我只是想redirectstream量到另一台服务我的应用程序的机器。 但是,几乎我所有的服务器都不是EC2实例,它们是VPS或专用服务器,与公司没有任何关系。 是否有可能使用亚马逊的服务(特别是ELB)的一些组合,这将允许我在一个弹性负载平衡器中指向一个域名,并将请求转发到亚马逊networking之外的1-2台服务器? 如果平衡器的IP改变了,这显然不起作用(那么就不能指向根域名)。 但是,您可以为平衡器分配一个弹性IP, 然后将您的域名指向它并将其configuration为将请求转发到非Amazon-PrivateServer1和Non-Amazon-PrivateServer2?
我试图用ec2_elb模块将一个EC2实例添加到一个Elasitic负载平衡器,使用一个Ansible操作手册。 这是应该这样做的任务: – name: "Add host to load balancer {{ load_balancer_name }}" sudo: false local_action: module: ec2_elb state: present wait: true region: "{{ region }}" ec2_elbs: ['{{ load_balancer_name }}'] instance_id: "{{ ec2_id }}" 然而,它通常会失败,输出(冗长): TASK: [Add host to load balancer ApiELB-staging] ****************************** <127.0.0.1> REMOTE_MODULE ec2_elb region=us-east-1 state=present instance_id=i-eb7e0cc7 <127.0.0.1> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1409156786.81-113716163813868 […]
我们正在使用AWS ELB卸载SSL并对传入stream量进行负载平衡。 如果所有实例都处于closures/不健康的状态,则ELB只发送一个HTTP状态为空的空白页面503。 是否有可能发送一个静态页面,以指示维护,例如?
当我尝试加载testing在EC2上负载均衡的站点时,我收到以下消息: ab -n 20 -c 20 http://www.somesite.com/ Benchmarking www.somesite.com (be patient)…Send request failed! apr_socket_recv: Connection reset by peer (54) 在没有负载均衡器的情况下,在EC2上托pipe的任何站点都可以成功进行负载testing,所以我认为它与我configuration的安全组无关。 AWS EC2负载平衡器是否默认阻止这种types的请求? 如果是这样,它如何区分AB和普通浏览器的HTTP请求?
如果我了解Unicorn的权利(特别是他们的哲学文档 ),那么Unicorn似乎真的被devise成在像nginx这样的反向代理之后运行。 我的问题是:我可以从我的HTTP堆栈中删除nginx,考虑到我们顶部有一个ELB作为反向代理吗? 我在初始testing中没有发现任何问题,只是想知道有没有人在这方面有经验。