ILUKA〜OSSでロードバランサを設定する方法〜
ILUKAは、デージーネットが開発したオープンソースソフトウェアです。keepalivedでは、ロードバランサや仮想サーバ、実サーバを管理する際、Linuxサーバ上で直接ファイルを編集して、コマンド入力で設定を反映する必要があります。そのため、管理のハードルが高く、また設定を失敗すると、負荷分散の処理を止めてしまうリスクがあります。ILUKAは、このような問題に対応するために作成されたソフトウェアです。仮想サーバやバックエンドサーバの管理をWebインターフェース上で簡単に行うことができます。ここでは、ILUKAについて解説します。
ロードバランサの問題点
アクセス数が多く負荷が高いサービスや停止させられないサービスでは、システム構成にロードバランサを使うことで、サーバーの持つ処理能力の維持を実現しています。しかし、ほとんどのクラウド業者は、ロードバランサの利用料を非常に高く設定しています。そこで、オープンソースソフトウェアのLinuxによる負荷分散システムを構築することで、ロードバランサの利用料を削減し、システムの運用コストを低減することができます。
Linuxサーバで負荷分散システムを構築する際は、同じくオープンソースで、サービスの稼働状態を監視するKeepalivedを利用すると便利です。しかし、Keepalivedの設定を変更するときには、Linuxサーバ上で直接ファイルを編集して、コマンドで設定を反映する必要があります。このような操作を行うには、オペレータにLinuxのスキルが必要です。
ILUKA(Interface for Lvs Under KeepAlived)を使うことで、Keepalivedの設定変更をwebインタフェース上で行うことができ、負荷分散(ロードバランシング)を行うシステムの管理における負担を軽減できます。
Keepalivedとは
Keepalivedとは、サービスの稼働状態を監視するオープンソースソフトウェアです。LVS (Linux Virtual Server)の設定を変更したり、冗長化機能を提供したりすることができます。
LVSは、指定したルールに基づいてリクエストを複数台のサーバへ振り分け、ロードバランサの機能を提供しています。ロードバランサとは、ロード(負 荷)+バランサ(バランスを保つためのもの)で、リクエストを複数のサーバへ振り分けることで負荷分散を行っています。また同時に、同じクライアントからの通信を常に同じサーバに転送するよう、送信元IPアドレスを見て転送しています。この仕組みにより、サイト等アクセス中の利用者に安定したサービスの提供を可能にします。LVS単体ではサーバのサービス提供状態を把握することはできないため、Keepalived等のソフトウェアと組み合わせるのが一般的です。そうすることで、Linuxサーバで負荷分散システムを構築できます。
なお、負荷分散の手法にはDNSラウンドロビンという方式もあります。利用するサーバをDNSの仕組みを使って動的に切り替えることで、リクエストを複数のサーバに転送し、負荷分散を実現します。機器の用意が必要なロードバランサに比べて導入のハードルは低いですが、非効率な負荷分散になりがちであったり、サーバの故障を検知できないというデメリットもあります。
ILUKAの特徴
ILUKAでは、Keepalivedが管理するバーチャルサーバやそれに紐づくリアルサーバの追加・削除等をWebインターフェース上で行うことができます。ILUKAは、postLDAPadminのフレームワークを使用して動作します。
ILUKA導入のメリット
ILUKAを導入することで次のようなメリットがあります。
管理者の負担削減
通常、Keepalivedの設定はテキストベースとなります。しかし、ILUKAはWebインターフェースからクリック操作で設定変更が可能なので、コマンド操作は不要です。都度サーバにログインする必要がなく、Linuxの知識が無い人でも負荷分散設定を簡単に行うことができます。
サーバメンテナンスの操作が簡単
ILUKAでは、Keepalivedの現在の設定をwebから参照したり、バーチャルサーバやリアルサーバの有効・無効設定を行うことができます。そのため、メンテナンスが必要なサーバを一時的にサービスから切り離すといった操作も、Web上で簡単に行うことができます。
負荷分散システム構築のコスト削減
ほとんどのロードバランサは利用料が非常に高価ですが、オープンソースソフトウェアであるLVS、Keepalived、ILUKAによる負荷分散システムを構築する事で、利用料を削減することができます。安全で便利な負荷分散システムを低コストで構築することが可能です。
サービスの耐障害性を強化できる
Keepalivedには、ロードバランサー自体の稼働状態を監視し、万が一停止した際に自動でバックアップ用の他のロードバランサーに切り替える機能もあります。 サーバだけでなくLVS自体の冗長化も行うことで、より障害に強いシステムを構築することができます。
ILUKAの機能
ILUKAでは、Keepalivedの設定をWebインターフェース上で行うことができます。設定できる機能は以下の通りです。
- バーチャルサーバの設定
バーチャルサーバの一覧表示、新規追加、更新、有効・無効等の設定が可能です。バーチャルサーバに紐づくリアルサーバの監視間隔、バーチャルサーバ名、Sorryサーバポート番号なども設定・登録できます。
- リアルサーバの設定
バーチャルサーバが接続するリアルサーバの一覧表示、新規追加、更新、有効・無効、ヘルスチェックの選択等の設定が可能です。ヘルスチェックとは定期的にサーバ側にリクエストを送信し、返されたステータスやレスポンスを確認することで、サーバの稼動状況のチェックを実行することです。
- グローバル設定
Keepalivedは、監視するリアルサーバに障害を検知して負荷分散対象から外す時、また、そのサーバが復旧して負荷分散対象に戻す時に通知メールを送信することができます。グローバル設定では、通知メール送信に使うSMTPサーバの指定と通知先アドレス、送信元アドレスの設定が可能です。
デージーネットの取り組み
デージーネットでは、ILUKAを使った負荷分散システムの構築サービスを行っています。弊社で構築を行ったシステムは、Open Smart Assistanceという保守サービスに加入することができます。保守サービスでは、Q&Aやセキュリティ情報提供、障害調査、回避を行います。
「情報の一覧」
ILUKA マニュアル
ILUKA (Interface for Lvs Under KeepAlived) とは、keepalivedの操作を行うためのウェブインタフェースです。 視覚的な操作で負荷分散設定を行うことができます。インストールの手順や使い方、機能の説明などそれぞれの詳細を掲載しています。目次から必要なガイドを参照できます。
Keepalived/LVSで冗長化した負荷分散システム構築事例
新たな携帯コンテンツサービスを開始するために、クラウド上にWWWサーバ、メールサーバ、DBサーバを構築しました。さらにKeepalived/LVSで冗長化した負荷分散システムを構築し、Webとメールのアクセスを分散、アクセス数が多くても耐えられるシステムを構築しました。
無料で使えるプロキシサーバ/ロードバランサおすすめ20選
プロキシやロードバランサは、クライアントとサーバの間に配置して、サーバや回線のリソースを活用し、システムの性能を最大限引き出したり、セキュリティを高めるために使われます。OSSのプロキシとロードバランサーの種類、メリットなどを比較します。