Closed yamamoto-febc closed 2 years ago
案: ELB/GSLBだと実サーバのステータス(UP or DOWN)が参照可能なので、有効にする前にステータスがUPになっていることを確認できないか?
-> 実サーバを無効にするとステータスが参照できなくなるため不可能
現状だと完全な対応は困難。上流リソースからヘルスチェックの設定内容を読み取り、自前でチェックを実装すれば対応できるかもしれないが、AutoScalerを稼働させているホストからの疎通が必要になるといった制約も出てくる。 また実装ボリュームも小さくない。
このためドキュメントでサービス停止が発生する可能性についての言及や3台以上の構成を推奨することを追記して対応とする。
ドキュメント側で対応する。 https://github.com/sacloud/docs.usacloud.jp/issues/110
from #253 related?: #192
サーバの垂直スケール時に上流リソースからサーバをアタッチ/デタッチするタイミングを改善する。
問題
現在の処理ではサーバ2台構成の時に503エラーが発生する可能性がある。
サーバの垂直スケールは以下の手順で行われる。
無効
に有効
にELBの実サーバ設定を無効にしている間にサーバを更新、その後有効に戻しているが、 有効に戻すタイミングは「APIで取得したサーバの状態が
起動
となった後」となっている。 APIで取得したサーバの状態はIaaS上でサーバの電源投入をした直後から起動
となるため、サーバ上のWebサーバ(など)が起動していないタイミング(電源投入直後〜OS起動〜サーバ起動)が存在することになる。これにより、実サーバが2台以下で垂直スケールを行うとタイミング次第で全ての実サーバへのアクセスができず503エラーが返されることになる。 これを防ぐオプションはv0.2時点では提供していない。
対応
調査中