2016-10-26 2 views

答えて

0

いいえ、これはできません。インスタンスの正常性状態を変更できるAWS API呼び出しはありません。 (自動スケーリングにはこの機能がありますが、負荷分散はありません)。

deregister_instances() API呼び出しを使用すると、効果的に同じ結果が得られます。

Register or Deregister EC2 Instances for Your Classic Load Balancerドキュメントは言う:EC2インスタンスの登録解除

は、あなたのロードバランサから削除します。ロードバランサは、登録解除するとすぐにインスタンスへのルーティング要求を停止します。需要が減少した場合、またはインスタンスにサービスを提供する必要がある場合は、インスタンスをロードバランサーから登録解除できます。登録解除されたインスタンスは実行されたままですが、はロードバランサーからトラフィックを受信しなくなり、準備ができたら再度ロードバランサーに登録することができます。

インスタンスを登録解除、を排出接続が有効になっている場合は、飛行中の要求が完了するまで待機バランシング弾性荷重。

+0

ちょっと疑問が残っています。 ELBに登録されているインスタンスが10個あるとします。 ELBからインスタンスを削除するとどうなりますか? つまり、そのインスタンスによってアクティブに処理されるリクエストにはどうなりますか。 – roshan

+0

詳細と解答を更新しました。 –

0

ええ、私たちは以下のシナリオでこれを行うことができます。 loadblancer(myloadbalancer)、それにインスタンスが添付され、PingPathの設定が以下のようになっているとします。

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

boto3コードを追加すると、以下のようにヘルスチェックの設定を編集するだけで、魔法(Instance OutOfService)が表示されます。

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

0

他の二つのオプション: 1.一時的に健康診断への対応のWebサーバー/プロセスを無効にします。私たちの場合は、Java Webアプリケーションをnginxプロキシを使用して実行していました。 nginxプロキシをシャットダウンすると、Javaアプリケーションが実行中にヘルスチェックが失敗しました。 2. ELBがヘルスチェックを実行するために使用するポートを一時的にファイアウォールします。これは、AWS APIの呼び出しを介して行うことができます。

関連する問題