サービスが処理できる量を考える
一台が処理できる量を測り、利用の増加や故障にも対応できる台数を考えます。
このレッスンのメニュー
普段はすぐに開くWebサイトでも、多くの利用者が同時にアクセスすると表示が遅くなることがあります。 サーバーが新しいリクエストを受け取る速さに処理が追いつかず、待っているリクエストが増えるためです。
一台のサーバーが一定時間に処理できる仕事の量を、そのサーバーの処理能力と呼びます。 必要な台数を考えるには、利用者数だけでなく、一台の処理能力と同時に届くリクエスト数を確かめます。
一件のリクエストを処理するときに使う資源
Webサーバーは、リクエストを処理するときにCPUで計算し、メモリへ一時的なデータを置きます。 必要に応じてディスク、データベース、ほかのサービスともデータをやり取りします。
CPU、メモリ、ディスク、ネットワークなど、処理に使えるものをまとめて資源と呼びます。 どの資源を多く使うかは、画像を返す、計算する、データを検索するといった仕事の内容によって変わります。
仕事が処理能力を超えると待ち時間が増える
資源がどれだけ使われているかを割合で表した値が使用率です。 処理したい仕事が資源の空きを待っている状態を飽和と呼びます。
CPUに空きがあっても、ディスクの読み書きやデータベースへの接続数が上限に達すれば、リクエストの待ち時間は増えます。 CPU使用率だけで判断せず、処理を順にたどって待ちが生じている場所を探します。
一台で処理できる量を測る
負荷試験では、試験用の環境へ送るリクエスト数を少しずつ増やし、成功した割合と応答までの時間を測ります。 エラーや待ち時間がサービスの許容値を超える手前を、その条件で一台が処理できる量の目安にします。
本番では、一台が故障したあとも残りのサーバーで処理を続けられる台数を用意します。 新しいサーバーが起動するまでの時間や、アクセスが一部のサーバーへ偏る場合も考えます。
一台を大きくするか、台数を増やすか
一台のCPUやメモリを増やす方法を垂直スケーリングと呼びます。 構成を変える場所は少なく済みますが、一台で選べる大きさには上限があります。
同じ役割のサーバーを増やす方法を水平スケーリングと呼びます。 一台が停止しても残りで処理を続けられますが、届いたリクエストを複数台へ振り分ける仕組みが必要です。
まず一台の処理能力を測り、通常時のリクエスト数、急な増加、故障後に残る台数を使って構成を決めます。
このレッスンは完了
このページで扱った流れを確認したら、次の内容へ進みます。