はじめての方へ

「インフィニットLB」を活用したWebサーバーの負荷分散

IDCFクラウドには、負荷分散サービスとして仮想ルーターのロードバランサー機能と、高機能ロードバランサーサービス「インフィニットLB(Infinite Load Balancer)」があります。
ポート単位で簡易的に負荷分散を行いたい場合は、仮想ルーターを使用することで容易に負荷分散環境を構築することができます。仮想ルーターを使用して負荷分散を行う場合は「ロードバランサーを活用してWebサーバーを負荷分散する」の「1. Webサーバーと仮想ルーターによる負荷分散環境の構築」をご確認ください。

インフィニットLBは仮想ルーターとは独立して稼働しているサービスです。また、インフィニットLBにはSSL証明書を設置することができます。
本ページではインフィニットLBを使用した負荷分散環境の構築を紹介します。

今回はWebサーバー2台とインフィニットLBでの負荷分散環境を構築します。
また、アクセスを制御するためのFirewallの設定を紹介します。
本ガイドの中では2台のWebサーバーをそれぞれ「Web01」、「Web02」と記載しています。バックエンドに使用するサーバーの作成は、「Webサイトの本番環境を構築したい(Web1台構成)」を参照し、「1. 仮想マシンの作成」をご確認ください。
本ガイドではWebサーバーにApacheを設定し簡易的なWebページを表示させています。また、ゾーンをaugustaで設定しています。

※本ガイドではFirewallグループの設定で別環境(IPアドレスが異なる環境)からの確認手順が含まれています。別環境からアクセスできる準備をしてください。スマートフォンなどによる携帯キャリアの通信や、IDCFクラウド内の別ゾーンでも問題ありません。
なお、本ガイドではDNSの設定は割愛しています。

1. インフィニットLBの作成

インフィニットLBにて負荷分散環境を構築します。ロードバランサーを作成後、Firewallグループの設定を確認します。

1. コントロールパネルのトップ画面より「インフィニットLB」をクリックします。
※アクティブになっていない場合は、規約の同意画面に遷移します。

コントロールパネルのトップ画面より「インフィニットLB」をクリックします。

2. インフィニットLBの一覧画面が表示されます。ロードバランサーを作成するため、「ILB作成」ボタンをクリックします。

3. ロードバランサー作成の画面が表示されます。
ネットワークを選択し、FQDNを任意で設定します。(FQDNはサーバーにアクセスするためのURLになります。)
ロードバランサーでプロトコル、ポート番号を設定し、「+」ボタンをクリックします。
項目
設定内容
ネットワーク
作成するゾーンのネットワークを選択(今回はaugusta)
FQDN
任意の文字列
ロードバランサー
プロトコル[HTTP] / ポート番号[80]
オプション
なし

4. ロードバランサーにHTTPの項目が追加されます。右の矢印をクリックしてバックエンド設定を表示します。
バックエンド設定項目の「/*(デフォルト)」パスパターン項目のインスタンスでIPアドレスと表示されている入力欄をクリックし、VM(今回はWeb01)を指定し「+」ボタンで追加します。

次に「/*(デフォルト)」パスパターン項目右の鉛筆マークをクリックし編集を開始します。IPアドレスと表示されている入力欄をクリックし、分散するもう1台のVM(今回はWeb02)を指定し「+」ボタンで追加します。右端のチェックボタンをクリックし編集を終了します。
その他の詳細設定は、今回はすべてデフォルトで構いません。

5. オートスケールプランニング項目でスケールの最小台数と最大台数を変更します。
スケールをさせない場合は台数固定にチェックを入れ、最小台数項目で固定する台数を指定します。スケールの基準はインフィニットLBサービスの仕様書(PDF)をご確認ください。
開発用プランでインフィニットLBを利用する場合は、開発用プランを選択してください。(1台固定のシングル構成となります)
※インフィニットLB作成後、開発用プランからスタンダードプランへの変更は可能ですが、スタンダードプランから開発用プランへの変更はできません。

インフィニットLB作成後も台数を変更できますので、今回はスタンダードプランのデフォルトの台数のままにします。

6. 各オプションについては以下の通りです。各オプションはインフィニットLB作成後も追加可能です。
今回はすべてのオプションを設定せず作成します。

  • FirewallグループFirewallグループの詳細については「2. Firewallグループの設定」から説明します。
    設定しない場合はすべてのアクセスを許可します。
    後ほど設定するので今回はチェックせずに作成します。
  • リソース監視インフィニットLBサービスは、はてな社のサーバー監視サービス「Mackerel」に対応しています。
    作成したインフィニットLBのリソース監視を設定する場合は、リソース監視項目にチェックを入れMackerel API Keyを入力します。
    MackerelのAPIキーの確認方法はこちらのFAQでご確認ください。
    API Keyを取得していない場合は、MackerelでAPI Keyを取得してください。
  • リダイレクトリクエストをHTTPからHTTPSにリダイレクトする場合は、オプション項目でリダイレクトを設定してください。
    詳しくはインフィニットLBご利用ガイド手順項目の「SSL証明書をアップロードしてHTTPS通信を行う」をご確認ください。
  • 固定パブリックIPアドレスインフィニットLBに固定パブリックIPアドレスを割り当てる場合は、固定パブリックIPアドレスの項目にチェックを入れます。
    作成後、インターネット側で利用する8個のIPアドレスがインフィニットLBに割り当てられます。

7. すべての設定項目を入力したら、ページ下部の「確認画面へ」ボタンをクリックします。確認画面が表示されるので内容が正しければ「作成」をクリックします。

8. インフィニットLBのダッシュボードで作成したロードバランサーのステータスがRunningになったことを確認します。

9. 作成したロードバランサーのFQDNをURLに指定してブラウザでアクセスできることを確認します。(http://ロードバランサーのFQDN)
またバランシングの確認として、ブラウザの更新を数回行い、Web01、Web02の両方が表示できることを確認します。(アルゴリズムはデフォルトでRound Robinとなっています)

以上でインフィニットLBの作成は完了です。
外部からの不要なアクセスを制限する場合は「2. Firewallグループの設定」をご確認ください。

2. Firewallグループの設定

本項目では自身の環境のみアクセスできるルールと、自身の環境のみアクセスできないルールの2種類を作成し、Firewallグループの動きを確認します。
Firewallグループの設定は外部からロードバランサーへの通信制御が必要な場合に設定してください。
※MyIPの設定が必要になるため、コンピュートサービスのIPアドレスのファイアウォール設定よりMyIPのアドレスを確認しておくことをお勧めいたします。詳しくは「ファイアウォールの設定方法」を参照ください。

1. 左部ナビメニューよりFirewallグループをクリックし、Firewallグループ一覧画面を表示します。「Firewallグループ作成」ボタンをクリックします。

2. Firewallグループ作成画面が表示されます。
まずはMyIPからのみアクセスを許可するFirewallグループを作成します。グループ名は任意(ここではallow)で指定します。
許可のテキストボックスに自身のIPを入力し、「+」ボタンをクリックしてルールを追加します。最後に「作成」ボタンをクリックして作成します。

3. 確認のメッセージが表示されるので、「はい」をクリックしてFirewallグループを作成します

4. 同じようにFirewallグループ作成ボタンからFirewallグループ作成画面を表示します。今度はMyIPからのアクセスのみ拒否するFirewallグループを作成します。
グループ名は任意(ここではdeny)で指定します。
拒否のテキストボックスにMyIPを入力、「+」ボタンをクリックしてルールを追加します。許可のテキストボックスには0.0.0.0/0を入力し、「+」ボタンをクリックしてルールを追加します。

最後に「作成」ボタンをクリックして作成します。確認のメッセージが表示されるので「はい」をクリックします。

5. 作成したFirewallグループをロードバランサーに適用します。
メニューから「ILB」をクリックし、ロードバランサーの一覧画面を表示します。ロードバランサー一覧から作成したロードバランサー名をクリックします。

6. 自身の環境からのみ確認できるルール(allow)を適用します。設定ページ下部のオプションのFirewallグループのチェックボックスをクリックし、ルール選択ボックスを表示します。
プルダウンから許可設定(今回はallow)を選択し、「確認画面へ」をクリックします。
確認画面が表示されるので「更新」をクリックし、ルールを更新します。

7. ロードバランサーのFQDNをURLに指定してブラウザから確認します。自身の環境からはページが表示されることを確認します。それ以外の環境(別のIPアドレスを所持している環境)からは、アクセスしても表示できないことを確認します。

8. 次に拒否のルールを確認します。手順6を参照し、Firewallグループを変更します。
Firewallグループには自身の環境からのみ拒否するルール(deny)を選択してルールを確認のメッセージが表示されますので、「更新」をクリックしてFirewallグループを変更します。

9. 手順7と同様に確認を行います。自身の環境からはページが表示できないことを確認します。それ以外の環境(別のIPアドレスを所持している環境)からは、表示できることを確認します。

10. Firewallグループの適用を解除します。
Firewallグループチェックを外すかグループ項目のプルダウンから「なし」を選択し、「確認画面へ」ボタンをクリックします。確認画面が表示されるので「更新」をクリックし、ルールを更新します。

Firewallグループの確認は完了です。

Firewallグループは今回設定をしたallowのように、許可の設定のみを行うと、許可した環境からのみアクセスが可能となります。
Firewallグループのルールには設定を行わなくても暗黙のdeny(0.0.0.0/0の拒否)が含まれており、特定の環境のみを許可したい場合(ホワイトリスト)は、allowのように許可設定のみを設定することで実現できます。
今回設定をしたdenyのように、特定の環境のみを拒否したい場合(ブラックリスト)は、すべて許可(0.0.0.0/0の許可)の設定を追加しておく必要があります。
なお、インフィニットLBでは許可のルールよりも拒否のルールの方が優先されます。


以上でインフィニットLBによるWebサーバーの負荷分散環境を構築できました。

インフィニットLBは、仮想ルーターよりも細かくロードバランサーとしての設定をすることが可能です。
今回は詳細設定を割愛していますが、ロードバランサーの設定を細かく指定することで、ロードバランシングアルゴリズムの変更や、コネクションタイムアウトの設定、セッション維持の設定、またヘルスチェックの指定が可能です。
また、SSL証明書をアップロードしてロードバランサー側でSSLの処理を行うことで、サーバーの負荷を軽減することも可能です。設定をする場合はインフィニットLBご利用ガイド手順項目の「SSL証明書をアップロードしてHTTPS通信を行う」をご確認ください。
Firewallグループと併用することで、仮想ルーターのロードバランサー機能より細かいアクセスコントロールが可能になります。
さらに、インフィニットLBは仮想ルーターから独立して動いており、自動的にロードバランサーがスケールするため、高負荷な環境でもほかのサービスに影響なく使用することができます。

すでに仮想ルーターを使用している環境でインフィニットLBへ移行する際には、「ロードバランサーを活用してWebサーバーを負荷分散する」を参照し、仮想ルーターとインフィニットLBを並行稼働させ、DNSの向き先を仮想ルーターからインフィニットLBのFQDNに変更することで簡単に移行することができます。
簡易的に負荷分散環境を構築する場合は仮想ルーターを使用し、本番サービスや高負荷が予測される場合、また規模が比較的大きい場合にはインフィニットLBを使用することをおすすめいたします。

インフィニットLBをご活用いただき、より便利にIDCFクラウドをご利用ください。

このページの先頭へ このページの先頭へ