web-dev-qa-db-ja.com

バックエンドの展開中にELBヘルスチェックを一時的に無効にする

SSLターミネーションにELBを使用しており、バックエンドは1つだけです。

展開中に、バックエンドを再起動する必要があり、通常、起動には数分かかります。

私の質問:

  • バックエンドが1つしかないため、ELBから削除できないため、ELBヘルスチェックをオフにして、サーバーの再起動時にトラフィックがすぐにバックエンドに送られるようにしたいのですが、可能ですか?
2
Ryan

チェック時間を短くするか、大幅に長くする必要があります。

ヘルスチェックを5分に1回まで高く設定し、異常なしきい値を10に設定できます。これにより、インスタンスが使用不可と見なされるまでに50分かかります。

また、最小値0.1分、しきい値2に設定することもできます。これにより、ヘルスチェックURLが再び機能するようになると、わずか12秒でサーバーがバックアップされていることが検出されます。これにより、ELBがインスタンスに異常のフラグを立てるのを防ぐことはできませんが、可能な限り迅速に復旧することができます。

2番目のオプションを使用するので、ユーザーは、サイトの読み込みに時間がかかるのはなぜかと考えるのではなく、503を取得します。

5
ceejayoz

これを回避する正当な方法は、APIを使用してELBヘルスチェックのタイムアウトを変更することです。無効にしたり一時停止したりすることはできませんが、パスを変更することはできますORタイムアウトと間隔。

Ansibleを使用している場合は、デプロイの前後にタスクを使用できます。

ELBおよびALBに対して(ターゲットグループを介して)これを行うためのモジュールは次のとおりです。

https://docs.ansible.com/ansible/latest/modules/ec2_elb_lb_module.htmlhttps://docs.ansible.com/ansible/latest/modules/elb_target_group_module.html

この答えには例が必要です。このルートに行く場合は、私たちの答えで更新します。

0
Elijah Lynn

もう1つの簡単な方法は、ヘルスチェックのpingポートを他のポートに変更します。たとえば、元のポートは443で、リッスンされていないポートに変更します1234。すぐにoutofserviceに移動します。

変更を行った後、確認してから、忘れずに元に戻してください。

0
BMW