OCIロードバランサの基本構造、作成手順をわかりやすく解説!

 2021.10.25  株式会社システムエグゼ オラクルクラウドチーム

不特定多数のユーザが日々アクセスするWebサイトには、サーバダウンのリスクが常に潜んでいます。ユーザからのリクエストが短時間に集中すると、1台のサーバでは処理しきれない恐れまであるのです。

サーバを安定的に稼働させてユーザからの信頼を維持するうえで、サーバの負荷分散が鍵となります。それを可能にするのが「ロードバランサ」です。Oracle Cloud Infrastructure(OCI)を始めとしたクラウドサービスをお使いの方は、ロードバランサについて理解しておく必要があります。そこで今回はこのロードバランサについて、基礎知識から作成手順まで紹介します。

ロードバランサとは

Webサイトの稼働に欠かせないサーバは、不特定多数のユーザから受け取ったリクエストを常に処理する必要があります。リクエストにより生じるトラフィック量は流動的なため、1台のサーバにリクエストが集中することもあるでしょう。

サーバの処理能力を超えたリクエストが発生すると、レスポンス速度の低下は避けられません。最悪の場合、サーバがダウンし、ユーザが利用できなくなる恐れもあります。こうしたリスクを低減するための仕組みが「ロードバランサ」です。

ロードバランサはクライアントからのリクエストを集約し、処理負荷の少ないサーバへ振り分けます。そうすることで複数サーバによる処理負荷の分散が可能となり、リクエストの集中を防止できるのです。つまり「複数のサーバをバランスよく稼働させる」ことが、ロードバランサの端的な機能と言えます。

ロードバランサの特長

ロードバランサは、Webサイトのトラフィック量に応じて自動で帯域幅(周波数の範囲)を拡張できます。その結果、1度に通信できるデータ容量が増加し、サーバ1台の処理能力を超えたリクエストの処理が可能となるのです。サーバを追加することでWebサイトの需要拡大にも対応しやすくなり、拡張性の向上につながります。

また、ロードバランサには、サーバの稼働状況を監視する機能もあります。あるサーバで障害を検出した場合、リクエスト送信を停止し、正常稼働しているサーバへ振り分けることが可能です。結果としてWebサイト自体が稼働停止するリスクを低減し、信頼性・可用性の向上につながります。

カタログ:nikuQ
LINEと顧客情報を絡めたプロモーションで求められるクラウドの要件とセキュリティ

OCIロードバランサの基本構造

ここでは、OCIにおけるロードバランサの基本構造について解説します。

OCIにより構成されるシステムは、冗長化された複数の「可用性ドメイン」を持ちます。各可用性ドメインは、複数のサーバを含む内部コンポーネントを統合したものです。ロードバランサが振り分ける可用性ドメインやサーバの特定は、それぞれに割り当てられた「LBサブネット」「Webサブネット」により行われます。

OCIロードバランサに割り当てられるIPアドレスは単一のもので、システムの起動から終了まで変わりません。Webサイトへのトラフィックは、すべてOCIロードバランサに集約されます。OCIロードバランサが各可用性ドメイン・サーバの稼働状態を判断し、リクエストを適切に振り分けます。そのため、サーバの障害時やメンテナンス時でも、Webサイトの稼働を継続できるのです。

FLBとNLBの機能比較

OCIロードバランサには、「フレキシブル・ロードバランサ(FLB)」と「ネットワーク・ロードバランサ(NLB)」の2種類が存在します。

FLBはOCIリリース初期から存在する有償サービスで、一般的なロードバランサと同様の仕組みです。まず、クライアントからのリクエストをロードバランサが受信。そして、新たなTCPコネクションを確立したうえで、適切なサーバへ送信します。FLBがクライアントとサーバを仲介することで、高精度かつ自由度の高い振り分けが可能となります。

一方のNLBは、2021年3月にリリースされた無償サービスです。ユーザからのリクエストを異なる接続に切り替えることなく、適切なサーバへそのまま送信します。FLBとは違い、接続の切り替えが発生しない分、リクエストをよりスピーディーに処理することが可能です。ただし、バランシング機能に関してはFLBの方が多彩で優れています。

FLBとNLBには、ほかにも対応プロトコルなど多くの相違点があります。詳しくは、下記の表をご覧ください。

 

対応プロトコル

レイヤー3/4バランシング機能

レイヤー7バランシング機能

リスナーの最大数
FLB TCP、HTTPS、TCP あり あり 16
NLB TCP、UDP、ICMP あり なし 50

ロードバランサの作成手順

ロードバランサの作成手順は、クラウドサービスにより異なります。ここでは一例として、OCIロードバランサにおける作成手順を整理して紹介します。

手順①

まずは「VCN(仮想クラウド・ネットワーク)」を作成します。VCNはOCIユーザが個別で作成する専用ネットワークで、仮想的なネットワークシステムを構成するために必要不可欠です。

次に、VCN内の全サーバを配置するための「リージョナルサブネット」を作成します。リージョナルサブネットは、物理的に同じ領域(リージョン)にある可用性ドメインであれば、すべて共通で利用できるサブネットです。

このリージョナルサブネットには、実際に利用するサーバの数だけ「インスタンス」を作成します。OCIにおけるインスタンスとは、サーバなどのコンポーネントを抽象化して管理するための概念です。各サーバが物理的に所属する可用性ドメイン内に、正しくインスタンスを作成する必要があります。

手順②

ロードバランサが参照する「ルートテーブル」と「セキュリティリスト」を作成します。作成したルートテーブルには、ロードバランサから各サーバへの接続経路を一通り列挙しなければなりません。

一方のセキュリティリストは、VCN内の通信におけるセキュリティルールを列挙するために使います。ただし、セキュリティルールはOCIのシステムにより自動で追加されるため、ここで定義する必要はありません。

手順③

ロードバランサが外部からのリクエストを受け取るための「リージョナルパブリックサブネット」を作成します。インターネットと通信するために、パブリック属性のサブネットとする必要があります。手順①で作成したサーバ用のサブネットと同様に、同一リージョン内の全可用性ドメインが共通で利用可能です。

手順④-1

手順③で作成したリージョナルパブリックサブネット内に「パブリックロードバランサ」を作成します。VCN内に存在するすべての可用性ドメインに対して、それぞれ1つずつ必要です。

手順④-2

「バックエンドセット」を作成します。バックエンドセットとは、VCN内の全サーバをまとめるグループのことです。バックエンドセットには、下記の4パラメータを設定します。

  • Name
  • Policy
  • SSL
  • Health Check(サーバの状態を監視するためにロードバランサが送信するテストデータ)

また、作成したバックエンドセットには、VCN内に存在する全サーバ情報の登録が必要です。具体的には、下記の3パラメータをサーバごとに設定します。

  • Instance
  • Port
  • Weight(リクエストを振り分ける割合の重み付け)

なお、このとき設定した情報を基に、手順②で作成したセキュリティリストに、必要なセキュリティルールが自動で追加されます。

手順④-3

ロードバランサが受信するトラフィックをチェックするための「リスナー」を追加します。TCP、HTTPS(またはHTTP)といったトラフィックの通信プロトコルごとに、最低1つ以上のリスナーが必要です。各リスナーには、下記の5パラメータを設定します。

  • Name
  • Protocol
  • Port
  • SSL
  • Backend Set(手順④-2で作成したもの)

手順⑤

手順④-2で自動追加されたセキュリティルールには、リスナーによるトラフィックの受け入れ設定があります。この設定を許可することで、リスナーがトラフィックを受信できるようになります。

まとめ

今回はロードバランサについて、基礎知識から作成手順まで紹介しました。ロードバランサを作成し、Webサイトの信頼性・可用性の向上に取り組む際には、ぜひ参考にしてください。

Webサイトのユーザ数が増加すればするほど、サーバにはより大きな負荷がかかりやすくなります。こうした状況でもWebサイトを安定的に稼働させるためには、ロードバランサによりサーバの負荷を分散することが重要です。これからクラウドサービスの導入・移行をお考えの方には、Oracle Cloud Infrastructureがおすすめです。世界トップシェアのデータベース管理システムであるOracle Databaseを、スピーディーにクラウド化できます。

システムエグゼは多数のOracle Cloud Infrastructure導入実績がございます。お気軽にご相談ください。


RECENT POST「OCI基礎知識」の最新記事


OCI基礎知識

Oracle CloudのSLAとは?業界初のSLAを分かりやすく解説

OCI基礎知識

Oracle Container Engine for Kubernetes(OKE)とは?

OCI基礎知識

Oracle Real Applications Clusters(RAC)とは?特徴や基本構造をわかりやすく解説!

OCI基礎知識

MySQL Database Serviceにおけるデータセキュリティ機能紹介

OCIロードバランサの基本構造、作成手順をわかりやすく解説!