LinuCレベル2 システムアーキテクチャの設計 問23
システムアーキテクチャの設計/キャパシティプランニングとスケーラビリティの確保ロードバランサの配下に置いたWebサーバー4台のうち、アクセスが減った夜間に1台を減らしてスケールインする。利用者への影響を抑える手順として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムアーキテクチャの設計」に対応。実際の試験問題ではありません)
- Aサーバーを先に停止し、ロードバランサのヘルスチェックが異常を検知して振り分け対象から外すのを待つ
- B減らすサーバーを停止する前に、残る3台のうち1台をスケールアップして同じ性能になるよう補っておく
- C減らすサーバーのセッション情報を消去してから停止し、利用者が別のサーバーで再ログインするよう促す
- D振り分け対象から外して新しい要求を止め、処理中の要求が終わるのを待ってからサーバーを停止する
正解:D
解説
スケールインで台数を減らすときは、まずロードバランサの振り分け対象から外して新しい要求が届かないようにし、処理中の要求や接続が終わるのを待ってから停止します。この処理はコネクションドレイニングなどと呼ばれ、多くのロードバランサやクラウドのサービスに機能として用意されています。先にサーバーを止めると、ヘルスチェックが異常を検知するまでの間の要求や処理中の要求がエラーになります。セッションを外部の共有領域に置くステートレスな構成にしておくと、台数の増減が利用者に与える影響を小さくできます。
選択肢ごとの解説
- A誤り。先に停止すると、処理中の要求や、ヘルスチェックが異常を検知するまでの間に振り分けられた要求がエラーになります。
- B誤り。スケールインはアクセスが減って余裕がある時に台数を減らすもので、残りのサーバーを増強する手順は必要ありません。
- C誤り。セッションを消去すると利用者のログイン状態などが失われ、影響がかえって大きくなります。
- D正しい。新しい要求を止めてから、処理中の要求が終わるのを待って停止します。