2016-10-26 1 views

Antwort

0

Nein, das ist nicht möglich. Es gibt keinen AWS-API-Aufruf, der den Integritätsstatus einer Instanz ändern kann. (Auto Scaling verfügt über diese Funktion, jedoch nicht über Load Balancing).

Sie könnten den deregister_instances() API-Aufruf verwenden, der effektiv das gleiche Ergebnis erzielen würde.

Die Register or Deregister EC2 Instances for Your Classic Load Balancer Dokumentation sagt:

Löschen der Registrierung eine EC2-Instanz aus Ihrem Load Balancer entfernt. Der Load Balancer stoppt die Weiterleitung von Anforderungen an eine Instanz, sobald die Registrierung aufgehoben wird. Wenn die Nachfrage nachlässt oder Sie Ihre Instanzen warten müssen, können Sie Instanzen aus dem Lastenausgleich entfernen. Eine abgemeldete Instanz wird weiterhin ausgeführt, aber empfängt vom Lastenausgleich nicht mehr den Datenverkehr, und Sie können sie erneut beim Lastenausgleich registrieren, wenn Sie bereit sind.

Wenn Sie eine Instanz deregistrieren, Elastic Load Balancing wartet bis in-flight-Anforderungen abgeschlossen haben, wenn Verbindung Entleerung aktiviert ist.

+0

Hatte nur noch einen Zweifel. Angenommen, es sind 10 Instanzen in ELB registriert. Wenn ich eine Instanz aus einem ELB entferne, was passiert dann? Ich meine, was mit Anfragen passiert, die von dieser Instanz aktiv bedient werden. – roshan

+0

Aktualisierte Antwort mit Details. –

0

Ja, das können wir im folgenden Szenario tun. Nehmen wir an, Sie haben einen loadblancer (myloadbalancer), eine Instanz, die damit verbunden ist, und eine PingPath-Konfiguration als solche.

Ping Protocol: HTTP 
Ping Port: 80 
Ping Path:/

Fügen Sie einfach boto3 Code, um die Gesundheits-Check-Konfiguration, wie unten zu bearbeiten und Sie können die Magie (Instance OutOfService) sehen.

client.configure_health_check(
LoadBalancerName='myloadbalancer', 
HealthCheck={ 
    'Target': 'HTTP:80/hjkx', 
    'Interval': 30, 
    'Timeout': 5, 
    'UnhealthyThreshold': 5, 
    'HealthyThreshold': 3 
} 

)

0

Zwei weitere Optionen: 1. vorübergehend den Web-Server/Prozess deaktivieren, die auf den Gesundheitscheck hat reagiert. In unserem Fall haben wir Java-Webapps mit und Nginx-Proxy davor ausgeführt. Durch das Herunterfahren des Nginx-Proxys ist die Integritätsprüfung fehlgeschlagen, während die Java-App weiterhin ausgeführt wurde. 2. Vorübergehend den Port sperren, an dem der ELB die Integritätsprüfung durchführt. Sie können dies über einen Anruf an die AWS API tun.

Verwandte Themen