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導入実績がございます。お気軽にご相談ください。

まずはここから始めよう!Oracle Cloud 入門ガイド

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


OCI基礎知識

Oracle Container Engine for Kubernetes(OKE)とは?

OCI基礎知識

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

OCI基礎知識

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

OCI基礎知識

Oracle Cloudの基本サービス(compute、storage、network)を理解しよう

OCIロードバランサの基本構造、作成手順をわかりやすく解説!
ブログ無料購読のご案内

RECENT POST 最新記事

RANKING人気記事ランキング