botoを使用して意図的にELBに接続されたインスタンスを不健全にする方法はありますか?意図的にELBに接続されたインスタンスを不健全にする
これまでにいくつかの方法を試してみましたが、それ以外の方法は試していませんでした。
ありがとうございました!
botoを使用して意図的にELBに接続されたインスタンスを不健全にする方法はありますか?意図的にELBに接続されたインスタンスを不健全にする
これまでにいくつかの方法を試してみましたが、それ以外の方法は試していませんでした。
ありがとうございました!
いいえ、これはできません。インスタンスの正常性状態を変更できるAWS API呼び出しはありません。 (自動スケーリングにはこの機能がありますが、負荷分散はありません)。
deregister_instances()
API呼び出しを使用すると、効果的に同じ結果が得られます。
Register or Deregister EC2 Instances for Your Classic Load Balancerドキュメントは言う:EC2インスタンスの登録解除
は、あなたのロードバランサから削除します。ロードバランサは、登録解除するとすぐにインスタンスへのルーティング要求を停止します。需要が減少した場合、またはインスタンスにサービスを提供する必要がある場合は、インスタンスをロードバランサーから登録解除できます。登録解除されたインスタンスは実行されたままですが、はロードバランサーからトラフィックを受信しなくなり、準備ができたら再度ロードバランサーに登録することができます。
インスタンスを登録解除、を排出接続が有効になっている場合は、飛行中の要求が完了するまで待機バランシング弾性荷重。
ええ、私たちは以下のシナリオでこれを行うことができます。 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
}
)
他の二つのオプション: 1.一時的に健康診断への対応のWebサーバー/プロセスを無効にします。私たちの場合は、Java Webアプリケーションをnginxプロキシを使用して実行していました。 nginxプロキシをシャットダウンすると、Javaアプリケーションが実行中にヘルスチェックが失敗しました。 2. ELBがヘルスチェックを実行するために使用するポートを一時的にファイアウォールします。これは、AWS APIの呼び出しを介して行うことができます。
ちょっと疑問が残っています。 ELBに登録されているインスタンスが10個あるとします。 ELBからインスタンスを削除するとどうなりますか? つまり、そのインスタンスによってアクティブに処理されるリクエストにはどうなりますか。 – roshan
詳細と解答を更新しました。 –