0Pricing
Network+ Academy · レッスン

サーバー間のロードバランシング

サービスの応答性を保つために、トラフィックを分散する仕組みを確認します。

「サーバー間のロードバランシング」はCoddyKit上の無料Network+ Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはNetwork+ Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Network+ Academyコースには全4レッスンが含まれています。

ロードバランシングとは

ロードバランシングは、受信トラフィックを複数のサーバーに分散し、1台のサーバーに負荷が集中しないようにする仕組みです。1台のサーバーに負荷が集中して速度が低下する代わりに、複数のサーバーで処理を分担することで、性能と信頼性が向上します。サーバーの前段に置かれたロードバランサーと呼ばれる装置やサービスが、リクエストをサーバー間に分散し、サーバープール全体を1つの高速なサービスのように見せます。

負荷分散の目的

ロードバランシングには、スケーラビリティと可用性という2つの大きなメリットがあります。ロードバランサーの背後にサーバーを追加すると、増加する負荷に対応する容量が増えます。また、いずれかのサーバーに障害が発生した場合、ロードバランサーはそのサーバーへのトラフィック送信を停止するため、ユーザーはサービスを利用し続けられます。これにより、障害に弱い単一サーバーが、回復力と拡張性を備えたサーバープールになります。

ロードバランサーの役割

ロードバランサーは、単一のフロントエンド仮想IP(VIP)でクライアントからのリクエストを受け取り、それぞれをバックエンドサーバーの1台へ転送します。クライアントが通信する相手は常にVIPだけで、その背後に何台のサーバーがあるかを意識する必要はありません。ロードバランサーには専用のハードウェアアプライアンスやソフトウェアを使用でき、SPOF(単一障害点)になるのを避けるため、ロードバランサー自体も冗長化されることが多いです。

分散アルゴリズム

ロードバランサーは、サーバーを選択するためにアルゴリズムを使用します。ラウンドロビンは、サーバーを順番に切り替えて選択します。最小接続数は、アクティブなセッション数が最も少ないサーバーを選択します。重み付け方式では、より高性能なサーバーが優先されます。適切なアルゴリズムを選ぶことで、トラフィックをサーバーの処理能力に合わせ、サーバープール全体を均等かつ効率的に稼働させられます。

ヘルスチェック

ロードバランサーは常にヘルスチェックを実行し、各サーバーに応答できるかどうかを確認します。サーバーがチェックに失敗すると、復旧するまでそのサーバーへのリクエスト送信を停止します。これにより、ロードバランシングは高可用性のための機能にもなります。障害が発生したサーバーは自動的に振り分け対象から外れるため、ユーザーが停止中のサーバーにアクセスすることはありません。

セッション維持

アプリケーションによっては、ユーザーのリクエストを同じサーバーに送り続ける必要があります。たとえば、そのサーバーのメモリ上に保存されたショッピングカートの内容を維持する場合です。セッション維持(または「スティッキーセッション」)を使うと、セッション中はクライアントを1台のサーバーに固定できます。これがないと、ユーザーがサーバー間を行き来した際に、作業途中で状態が失われる可能性があります。

Layer 4とLayer 7

ロードバランサーは、異なるレイヤーで動作します。Layer 4ロードバランサーは、IPアドレスとTCP/UDPポートに基づいて分散するため高速ですが、コンテンツは認識しません。Layer 7ロードバランサーは、HTTP URLなどのアプリケーションデータを読み取り、インテリジェントなルーティングを実行できます。たとえば、/imagesを一方のプールに、/apiを別のプールに送信できます。Layer 7は高機能である一方、リクエストごとにより多くの処理を行います。

SSL/TLSオフロード

ロードバランサーは、SSL/TLSオフロード(終端)を実行することがよくあります。つまり、クライアントとの暗号化処理をロードバランサーが担当し、トラフィックを復号することで、バックエンドサーバーがその処理を行わずに済むようにします。これにより、サーバーのCPUをアプリケーション処理に使えるほか、ロードバランサー上で証明書を一元管理できます。Webサーバーの前に高機能なLayer 7ロードバランサーを配置する一般的な理由の1つです。

冗長ロードバランサー

すべてのトラフィックが1台のロードバランサーを経由すると、そのロードバランサーが単一障害点になります。そのため、ロードバランサーはペアで配置し、アクティブ-アクティブまたはアクティブ-パッシブ構成にして、相互にフェイルオーバーできるようにします。可用性を提供するツール自体も、高可用性でなければなりません。冗長化されたロードバランサーのペアにより、フロントエンド全体の回復力が保たれます。

クラウドでのロードバランシング

クラウドプロバイダーは、需要に応じて自動的にスケールするマネージドサービスとしてロードバランシングを提供しています。オートスケーリングするサーバーグループと組み合わせると、クラウドは負荷に基づいてロードバランサーの背後にあるサーバーを追加・削除し、その時点で稼働しているサーバーにトラフィックを分散できます。この伸縮自在なモデルは、クラウドアプリケーションが変動の大きい膨大なトラフィックにも柔軟に対応できる大きな理由です。

ロードバランシングとHAの連携

ロードバランシングと冗長化は、パフォーマンスと高可用性のために連携して機能します。冗長化は予備の容量やコンポーネントを提供し、ロードバランシングはその容量を実際に活用して、処理を分散しながら障害をリアルタイムで回避します。両者を組み合わせることで、個々のサーバーに障害が発生しても、サービスは高負荷時の速度と稼働状態を維持できます。これは、回復力のある設計の基本です。

クイックチェック

ロードバランシングの知識を確認しましょう。

まとめ

ロードバランシングについて学びました。重要なポイント:

  • サーバー間でトラフィックを分散し、スケーラビリティと可用性を高めます。
  • クライアントは仮想IPにアクセスし、ロードバランサーがバックエンドサーバーを選択します。
  • アルゴリズムには、ラウンドロビン、最小接続数、重み付けなどがあります。
  • ヘルスチェックで障害サーバーを除外し、セッション維持でセッションを固定します。
  • Layer 4とLayer 7があり、ロードバランサー自体も冗長化されます。

よくある質問

「サーバー間のロードバランシング」レッスンは無料ですか?

はい。「サーバー間のロードバランシング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Network+ Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Network+ Academyコースには全4レッスンが含まれています。

「サーバー間のロードバランシング」で何を学びますか?

サービスの応答性を保つために、トラフィックを分散する仕組みを確認します。 ブラウザで直接実行するハンズオンコードでNetwork+ Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Network+ Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのNetwork+ Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「サーバー間のロードバランシング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このNetwork+ Academyレッスンでコードを書いて実行できますか?

はい。すべてのNetwork+ Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 冗長化とフェイルオーバーの設計
  2. サーバー間のロードバランシング
  3. 重要なトラフィックのQoS
  4. 試験に向けた総仕上げ
← Network+ Academyに戻る